AWS

Cheoly·2024년 1월 22일

인스턴스 생성하는 방법

  1. Quick Start에서 사용할 운영체제 선택
  2. 아키텍처는 윈도우 -> x86, 맥 -> arm으로 선택
  3. 다음으로는 인스턴스 유형을 선택 (예: t2.medium 사용)
  4. 키페어(Key Pair) 생성: Windows라면 ppk, 맥이라면 pem을 생성
  5. Putty를 사용하여 접속: Putty에 인스턴스의 public IP를 입력하고, Connection -> SSH -> Auth -> Credentials에 ppk 파일을 등록
    • 사용자 이름은 ubuntu (운영체제에 따라 다를 수 있음)

Git, Web, WAS 만들기

  1. 인스턴스를 총 3개 생성
  2. 생성할 때 키페어(Key Pair)는 기존에 있는 것을 선택
  3. 보안 그룹(Security Group)은 한 개만 생성하고, 나머지 2개는 첫 번째에서 생성한 보안 그룹을 선택
  4. 보안 그룹에서 ICMP를 허용하고, authorized_keys를 통합하고, /etc/hosts에서 IP 설정
    • 서로간의 통신이 원활하게 이루어지도록 설정

Git 설정

  1. mkdir ~/repos: Git 저장소 폴더 생성
  2. cd ~/repos: 저장소 위치로 이동
  3. git init --bare .: Bare 저장소 생성 (--bare 옵션은 순수한 Git 저장소를 생성)
  4. 로컬 개발용 컴퓨터(Windows)에서 Git을 이용해 저장소에 코드를 올림:
git init
git remote add origin ssh://ubuntu@<인스턴스IP>:/home/ubuntu/repos
git add .
git commit -m 'first'
git push origin master

Web, WAS 서버에서 Git 설정

  1. git clone ssh://ubuntu@<인스턴스IP>:/home/ubuntu/repos: Git 저장소 복제
  2. 개발용 PC에서 작업 후:
    • git add .
    • git commit -m 'any'
    • git push origin master
  3. Web, WAS 서버에서는 git pull origin master로 업데이트

nginx 설정

이론

WEB과 WAS

NGINX

Nginx 개요:

Nginx (엔진엑스라고 발음)는 강력하고 널리 사용되는 오픈 소스 웹 서버 소프트웨어입니다. 또한 역방향 프록시 서버, 로드 밸런서 및 HTTP 캐시로 작동합니다. 원래 C10k 문제(10,000개 이상의 동시 연결 처리)를 해결하기 위해 만들어진 Nginx는 높은 성능, 효율성 및 낮은 자원 소비로 알려져 있습니다.

주요 기능 및 사용 사례:

  1. 웹 서버:

    • Nginx는 주로 HTML, CSS 및 이미지와 같은 정적 콘텐츠를 제공하는 데 사용되는 웹 서버로 사용됩니다.
    • 이름 기반 및 IP 기반 가상 서버를 지원하여 단일 서버에서 여러 도메인을 호스팅할 수 있습니다.
  2. 역방향 프록시:

    • 역방향 프록시로 Nginx는 클라이언트 요청을 백엔드 서버로 전송하여 로드 밸런싱, SSL 종료 및 캐싱과 같은 추가 기능을 제공합니다.
    • 클라이언트와 응용 프로그램 서버 간의 중개자로 작동하여 보안을 강화합니다.
  3. 로드 밸런서:

    • Nginx는 들어오는 트래픽을 여러 백엔드 서버에 분산하여 최적의 리소스 활용 및 단일 서버에 대한 과부하를 방지할 수 있습니다.
    • 다양한 로드 밸런싱 알고리즘을 지원합니다.
  4. HTTP 캐시:

    • Nginx에는 메모리에서 직접 정적 콘텐츠를 저장하고 제공하는 내장 캐싱 메커니즘이 포함되어 있습니다. 이는 백엔드 서버의 부하를 줄이고 성능과 응답 시간을 향상시킵니다.
  5. SSL/TLS 종료:

    • Nginx는 SSL/TLS 종료를 처리하여 백엔드 서버에서 암호화 및 해독 프로세스를 오프로드하고 전반적인 성능을 향상시킬 수 있습니다.
    • 현대적인 암호화 프로토콜을 지원합니다.
  6. 응용 프로그램 서버를 위한 역방향 프록시:

    • Nginx는 역방향 프록시로 사용되어 응용 프로그램 서버 (예: Node.js, Django, Flask) 앞에서 로드 밸런싱, 캐싱 및 정적 파일 제공과 같은 작업을 처리합니다.

구성:

  • Nginx는 구성 파일에서 선언적 구성 구문을 사용합니다. 주요 구성 파일에는 nginx.conf 및 다양한 사이트별 구성 파일이 포함됩니다.

  • 구성에는 서버 블록, 위치 지시문, SSL 인증서 등이 포함됩니다.

장점:

  • 성능: Nginx는 뛰어난 성능과 낮은 메모리 사용량으로 알려져 있어 대규모 동시 연결을 처리하기에 적합합니다.

  • 확장성: 높은 확장성을 가지고 있으며 분산 및 마이크로서비스 아키텍처에서 잘 수행됩니다.

  • 다용도: Nginx의 다양성은 정적 콘텐츠 제공, 응용 프로그램 서버에 프록시, 로드 밸런싱 등에 적합합니다.

  • 구성의 용이성: 구성 구문은 간단하며 유연한 설정을 가능하게 합니다.

커뮤니티 및 지원:

  • Nginx에는 방대하고 활발한 커뮤니티가 있어 포괄적인 문서, 자습서 및 모듈을 제공합니다.

  • Nginx, Inc., Nginx 뒤의 기업은 상업적인 지원과 고급 기능이 포함된 Nginx Plus를 제공합니다.

요약하면 Nginx는 웹 서버 및 역방향 프록시 서버로서 높은 성능, 보안 및 확장성을 갖춘 프로덕션 환경에서 널리 사용되는 소프트웨어입니다.

profile
데이터 엔지니어

0개의 댓글