[AWS] 탄력성 있는 구현

김아름·2022년 5월 21일
0

AWS 컴퓨트 영역의 탄력성

1. Elastic Load Balancing

  • 네트워크 부하 분배기

  • 높은 탄력성과 가용성으로 EC2 인스턴스 앞에서 트래픽을 효율적으로 분산

  • 여러 인스턴스 및 가용영역에서 트래픽을 자동으로 라우팅하여 어플리케이션의 내결함성을 높임

  • Auto Scaling과 함께 서비스를 탄력적으로 확장

## 활용 사례

(1) AWS 인스턴스 상태 감지를 통해 비정상적인 EC2를 제외한 정상적인 서버에 트래픽을 전달함으로써 내결함성을 향상시킴

(2) ELB가 통합인증서 관리 및 SSL 복호화를 제공하므로 중앙에서 인증서 관리를 수행하고 EC2 서비스 트래픽만 수용하여 자원 활용률을 높임

(3) 외부 서비스용이 아닌 내부 어플리케이션 레이어에 적용하여 구성요소 간의 트래픽 전달을 탄력적으로 수행


2. Auto Scaling

  • EC2용량을 사용자가 정의한 조건에 따라 자동으로 확장/축소하여 어플리케이션 품질을 유지하기 위한 서비스
  • 수요가 급증할 경우, Amazon EC2 인스턴스의 수를 자동으로 증가시키기 때문에 성능을 그대로 유지
  • 수요가 적을 경우, 자동으로 용량을 감소시켜 비용 낭비를 제거

구성요소



AWS 코드 레벨의 탄력성

1. Elastic Beantalk

  • Java, .Net, PHP, Node.js, Python, Ruby, Go, Docker를 사용하여
    Apache, NginX, Passenger, IIS와 같은 서버에서 개발된
    웹 애플리케이션 및 서비스를 간편하게 배포하고 확장할 수 있는 서비스

  • 소스 코드만 업로드 하면 EC2 용량 프로비저닝, 로드 밸런싱, Auto Scaling부터 시작하여 애플리케이션 상태 모니터링까지 자동으로 배포 처리


2. OpsWorks

  • Chef를 사용하여 어플리케이션의 구성을 자동화하고
    대규모 자원의 구성 정보를 관리 및 운영 해주는 서비스
  • 스택, 계층, 앱 같은 개념을 사용하여 애플리케이션을 모델링 및 시각화하고
    대시보드를 통해 애플리케이션 레이어 상태 관리

3. CodeDeploy

  • 실행 중인 모든 인스턴스에 대한 코드 배포를 자동화하여
    안전하고 신속하게 어플리케이션을 배포할 수 있는 서비스
  • Console 또는 CLI를 통해 손쉽게 배포 상태를 중앙에서 추적할 수 있음
  • 각 어플리케이션 수정 버전이 언제 어떤 인스턴스에 배포되었는지 관리



AWS 관리 영역의 탄력성

1. CloudWatch

  • 실시간 모니터링 및 장애 감지 수행
  • 대시보드, API를 통해 관리의 편의성 제공
  • Auto Scaling 그룹 설정 시,
    확장에 대한 임계값 요소에도 모니터링 값이 필수로 적용

2. CloudFormation

  • 인프라 리소스 묶음을 순서에 따라 쉽게 생성, 구성, 관리하는 서비스

  • 리소스 환경을 명시적으로 코드화하여 프로비저닝 및 업데이트를 탄력적으로 관리


학습정리



참고

profile
쿄쿄쿄

0개의 댓글