AWS에서 가장 기본적으로 사용되는 서비스는 EC2와 이와 같이 사용되는 ELB, Auto Scaling이 있다.

EC2(Elastic Compute Cloud)

하드웨어를 가상화하는 서비스. 가장 기본적인 클라우드 컴퓨터.

  • CPU, mem, storage, net capa를 고려하여 여러 종류의 HW를 선택할 수 있음. (Instance Family Type 참고)
    인스턴스를 추가하여 OS를 설치해서 사용.
  • AMI(Amazon Machine Image)를 사용하여 간단하고 빠르게 설치.
    인스턴스를 사용할 때 추가하고 사용하지 않을 때 중지/종료해야 함. (비용 문제)

요금제 구성은 아래와 같다.
온디맨드 - 사용한 만큼 낸다. 쓰지 않으면 종료.
예약 인스턴스 - 미리 예약하여 사용. 약정에 따라 할인받을 수 있음.
스팟 인스턴스 - 남는 서버를 싸게 줌. 쓰다가 남는게 없으면 스팟으로 동작하는게 제거될 수 있고 서비스 종료될 수 있음을 고려해야 함.

ELB(Elastic Load Balancing)

단일 end point로 클라이언트가 들어왔을 때 이를 매핑해주는 역할을 한다.
수신되는 트래픽을 EC2 인스턴스, 컨테이너 등에 자동으로 분산.
애플리케이션 트래픽의 로드를 처리할 수 있음.

인스턴스 상태 확인하는 역할도 한다.

  • 주기적으로 인스턴스 테스트를 하여 상태를 확인.
  • 이를통해 정상적인 인스턴스로만 라우팅을 함.

고정 세션 기능을 제공한다.

  • 여러 인스턴스를 사용하면 로드 밸런스 과정에서 다른 인스턴스를 사용할 때 세션이 유지되지 않는 것을 막기 위함.
  • 고정 세션 기능을 사용하면 사용자 세션을 특정 애플리케이션 인스턴스에 바인딩 할 수 있음.
  • 그치만, 로드 밸런싱 문제로 세션을 외부의 cache/db로 유지하는 방식이 권장됨.

Auto Scaling

적절한 수의 EC2 인스턴스를 유지하도록 자동으로 생성/종료하는 서비스.
사용자 수에 따라 확장/축소할 수 있음.

수동 조정 - 최대/최소 원하는 용량 들을 설정.
예약 조정 - 예측가능한 반복 이벤트에 따라 확장/축소가 발생해야하는 시간을 지정.
동적 조정 - 네트워크 대역폭 등 값을 가지고 더 상세하게 조정.