EB 정복하기 - 1

EB 정복하기 - 2

EB 정복하기 - 3

EB 정복하기 - 4

 

모니터링

 

 

인스턴스와 환경에 대한 모니터링을 제공한다. 해당 모니터링을 통해서 알람을 구성하거나 추가적인 작업을 할 수 있다. 

 

기본: CPU, 디스크 I/O, 네트워크 I/O등 기본적인 지표로 5분마다 수집함

강화됨: 운영체제, 시스템 수준의 세부 정보를 수집할 수 있고, 1분마다 수집함

 

향상된(강화됨) 모니터링이 세부적인 지표를 수집할 수 있어 좋긴 하지만, 많은 양을 수집하기에 비용이 더 발생할 수 있다.

 

향상된을 선택했을 경우 애플리케이션과 로드밸런서의 4xx 지표를 무시할 수 있도록 옵션을 제공함

 

모든 모니터링 로그를 CloudWatch로 스트리밍 할 수 있는데, 보존 기간을 설정할 수 있다. 

 

보존: 최소 1일 ~ 10년까지 가능

수명 주기: 환경이 종료되면 삭제, 그대로 유지

 

보존의 경우 CloudWatch에 저장하는 로그는 가격이 비싸므로 적정한 기간과 S3로 보내는 방법이 필요하다.

 

관리형 플랫폼 업데이트

 

 

AMI를 사용하므로, 지속적인 패치가 존재한다. 이때 주기적으로 업데이트를 진행한다.

 

업데이트 수준에는 마이너 및 패치, 패치가 있다.

 

패치:  일반적으로 버그 수정이나 보안 업데이트와 같은 비교적 작은 변경사항을 포함

마이너 및 패치: 마이너 버전 업데이트는 새로운 기능 추가 및 일부 기능 변경이 포함

 

인스턴스 대체 옵션은 업데이트 후 인스턴스 교체를 예약하는 옵션이다. 

 

이메일 알림

 

 

환경에 이벤트가 있을 때 해당 이메일에 알림을 보내준다. 해당 옵션보다는 SNS를 만들어서 구독하는 것이 커스터마이징 하기 편하다.

 

배포

 

 

애플리케이션 배포 방식을 결정하는 것으로 다양한 배포 방식을 제공하는 EB의 강력한 장점 중 하나다.

 

총 5가지가 있다.

 

1. 한 번에 배포

 

출처: https://webmobilez.com/awsmaterial/elastic-beanstalk-deployment/

 

모든 인스턴스를 한 번에 교체하는 방법으로 잠깐의 다운 타임이 존재하므로 사용하는 것을 권장하지 않는다. 

 

 

2. 롤링

 

 

출처: https://webmobilez.com/awsmaterial/elastic-beanstalk-deployment/

 

롤링은 정해진 비율만큼 인스턴스를 교체하는 방식으로 동작한다. 교체할 때 기존보다 적은 인스턴스가 있기 때문에 서비스 가용성에 문제가 생길 수 있다. 

 

3. 추가 배치를 활용한 롤링

 

출처: https://webmobilez.com/awsmaterial/elastic-beanstalk-deployment/

 

추가 배치를 활용한 롤링은 롤링 방식의 한계를 극복한 방법으로 별도의 인스턴스를 추가로 가동시키고, 이전 것을 대체하는 방식으로 동작한다. 서비스를 제공하는 인스턴스의 크기를 일관성 있게 유지할 수 있다. 

 

4. 변경 불가

 

출처: https://webmobilez.com/awsmaterial/elastic-beanstalk-deployment/

 

위에서 알아본 배포 방식은 v1,v2가 동시에 존재할 수 있었지만, 변경 불가의 경우 별도의 오토스케일링 그룹을 만들고 모두 배포가 완료되면 기존 오토스케일링 그룹에 포함시키는 방식이다. v1, v2 API 스펙이 많이 다를 경우에 사용할 수 있다.

 

5. 트래픽 분할

 

위의 변경 불가 방식과 동일하게 오토스케일링 그룹을 만들어서 진행하지만, 다른 점은 일정한 트래픽을 새로운 버전의 오토스케일링 그룹에 보내서, 카나리 배포가 가능하다는 점이다. 

 

6. 배포 옵션

 

롤링과 같은 배포를 할 때 배치 크기를 조절할 수 있다.

 

백분율: 한 번에 퍼센트에 해당하는 인스턴스 배포를 지정함

절대크기: 1,2와 같이 크기를 절대값으로 지정가능

 

트래픽 분할: 트래픽 분할 배포를 선택했을 때 몇%의 트래픽을 새로운 버전에 보낼지 선택

트래픽 분할 평가 시간: 일정 시간동안 트래픽이 정상적으로 이뤄졌을 때 새로운 버전으로 트래픽을 전부 교체할지 선택

 

구성 업데이트

 

 

구성 업데이트는 VPC, 혹은 EB의 설정을 변경했을 경우 인스턴스를 어떻게 교체할지 명시하는 옵션이다. 4가지의 옵션이 있다.

 

1. 비활성화: 변경하지 않음

2. 상태 기반: 상태를 체크해서 바꿈

3. 시간 기반: 특정 시간 마다 차례차례 바꿈

4. 변경 불가: 배포에서 설명한 것과 동일 방식

 

비활성화는 권장하지 않고, 변경 불가나 상태 기반 옵션이 예상치 못한 서비스 중단을 최소화할 수 있는 옵션이다.

 

배포 기본 설정

 

 

배포 설정으로 새롭게 배포된 버전의 상태를 체크하는 방식이다. 

 

상태 확인 무시: 정상적인 상태인지 헬스체크를 했을 때 어떻게 대처할 것인지 (False로 둬야 배포가 정상적으로 이뤄지지 않았을 때 대처가 가능)

정상 임계값: 상태가 이것일 때 배포가 완료된 것으로 함

명령 제한 시간: 배포를 취소하기 전에 인스턴스가 정상 상태가 될 때까지 또는 상태 확인 무시(Ignore health check)가 설정된 경우 다음 배치로 진행하기까지 대기할 시간

 

롤링 배포 시 다음 인스턴스로 배포를 넘어가거나, 트래픽을 분할할 때 중요한 옵션으로 작용한다.

 

플랫폼 소프트웨어

 

 

Xray 기능 사용 여부와 인스턴스 로그, 환경 변수에 대한 설정이다. 

 

Xray는 분산 추적이 가능하며, 대몬 사용을 체크하면 사용이 가능하다. 

 

인스턴스의 로그는 S3, CloudWatch 스트리밍 중 선택이 가능하다.

 

CloudWatch 스트리밍을 선택할 경우 보존 기간과 수명주기를 적절하게 선택하는 것이 비용 절감에 유리하다.

 

환경 속성은 인스턴스에서 사용할 환경 변수이다. 

 

이제 다음으로 누르면, 모든 설정을 검토한 후 EB가 생성된다. 

 

다음으로

 

다음 포스팅들은 가장 처음에 말했듯이 고급 활용법에 대해서 소개한 후 다양한 CI/CD 방식, 테라폼으로 구성해 볼 예정이다.

 

1. Elastic Beanstalk 다양한 방법의 CD 방법

  - github action

  - codepipeline

2. Elastic Beanstalk 고급 활용법

3. 테라폼(토푸)로 구성해 보기