AWS 인프라 구축 가이드 ( ~ 24p)

01. 운영 서버와 AWS 소개

  • 운영 서버 : 개발/테스트 목적이 아닌 실제 사용자들을 대상으로 서비스하는 서버

  • 운영 서버 관리의 세 단계
    • 환경 구성
    • 코드 배포
    • 모니터링
  • region(리전) : 지역
    • 서비스하려는 지역에 가장 가까운 리전을 선택하는 것이 네트워크 지연을 줄인다
    • 한국에는 서울 리전이 있다
    • 이걸 오사카인가 했더니 인스턴스들이 안보였던 기억이 있다
  • 가용 영역 : 하나의 리전 안에 여러 격리된 데이터 센터
    • 보통 가용 영역의 수를 보여준다

02. 운영 서버 환경 구성

  • 단일 서버

    단일서버

    • 제일 기본적인 구성
    • Request 하나 할 수 있는 클라이언트 1개
    • 서버 1개, 같은 서버에 WAS랑 DB가 있으므로, 별도의 네트워크 설정 필요 없이 로컬호스트 대상으로 하면 됨
    • 왜 안할까?
      • 전체 서비스 장애 위험
      • WAS와 DB에 걸맞는(최적화하기위한) 설정이 다르기 때문
      • 보안성 취약
      • Scale out(서버 수를 늘려 자원 확장하는 거) 이 힘들다.
  • 애플리케이션/데이터베이스 서버 분리

    db분리

    • 단일서버에서 db분리한 구성
    • 다 좋아지는데 두 대를 관리해야 되므로 구성이 복잡
    • 서버와 디비 사이의 지연과 네트워크 보안을 고려해야함
    • 클라이언트는 여전히 하나의 서버를 바라보고 있으므로 sacle out 은 여전한 숙제
  • 서버 단위의 로드 밸런서

    로드밸런서

    • 클라이언트는 서버와 통신 X, 로드 밸런서 서버와 통신
    • 뒤에 여러 대의 애플리케이션 서버를 둔다
    • lb가 서버들에게 적절히 나눠줌
    • 가장 큰 장점 드디어 스케일 아웃 이 가능
      • 또, 일부 서버 장애 시 헬스체크 하고 헬시한 서버에만 요청을 주면 되니까 장애대응도 가능
    • 가장 큰 문제는 로드밸런서한테 모든 요청이가는데, LB가 뻗으면 망
      • 흔히 OSI 7 Layer L4 스위치 라고 하는게 LB 역할을 하는 장비
      • 우리는 요거를 AWS ALB로 쓰고 있음
  • 서버 내 앱 단위의 로드 밸런서

    로드밸런서들

    • 여러 서버에게 요청을 분산하는 서버 단위의 LB 외에도
    • 여러 애플리 케이션 프로세스들에게 요청을 분산시키는 앱 단위의 로드 밸런서 추가
    • 애플리케이션 서버 내에서 똑같은 애플리케이션을 여러 프로세스로 실행, 외부에서 들어온 요청을 프로세스 중 하나로 보내주는 역할
    • 이처럼 구성하면, 하나의 서버에 멀티 프로세스
      • 1개 서버가 여러 개의 요청을 동시 처리 할 수 있단 것
      • 우리는 요거를 AWS ELB로 쓰고 있음

2.2 AWS EC2를 이용한 서버 인스턴스 생성과 관리

  • EC2
    • 가상 서버
    • OS 고를 수 있음
  • EC2 를 생성하려면 꼭 알아야 하는 개념이 있다.
    • AMI
      • 생성할 EC2의 기반이 되는 이미지
      • 원하는 OS, 원하는 환경의 이미지
    • 보안 그룹
      • IP 와 포트번호를 이용한 서버 접속 규칙
    • 키 페어
      • 서버에는 공개키, 사용자는 개인키로 접속
  • 부록, 윈도우에서 PuTTY 설치, SSH 접속키 설정, 접속하기
    • putty download
    • puttyGen 으로 Type RSA 라디오버튼 클릭, Load 클릭해서 AllFiles, pem 파일 선택
      • Save private key 클릭해서 저장
    • putty.exe
      • Host Name : ec2-user@{EC2 주소}, Port : 22
      • 왼쪽 Connection > Auth 에서 Private key … 아래 Browse 클릭, 아까 저장한 ppk 파일 로드 > Open 클릭 > 예 클릭