ecspresso advent calendar 2020 day 9 - wait

Amazon ECS의 개발 도구ecspresso 활용법ecspresso Advent calendar을 요약한 지 9일째.

-- no-wait에서 수행된 작업이 완료될 때까지 기다리는wait 명령


앞서 deploy,rollback,refresh 명령항에서 설명한 바와 같이ecspresso는 ECS 서비스 상태를 바꾸는 작업을 실행한 후 기본적으로 ECS 서비스의 상태가 안정될 때까지 대기한다.설정 파일(config.yaml)에서 지정한 시간 초과 전에 대기하고 불안정하면 명령 실행에 실패(exit1)합니다.
ECS 서비스 상태가 불안정한 것을 방지하기 위해 ECS 서비스 상태를 변경하는 작업을 수행하고 즉시 종료하기 위해 각 명령은 --no-wait 옵션을 실시하였다.CI/CD 환경 등에서 자동 디버깅을 수행하는 등 작업 프로세스를 장시간 차단하지 않으려는 요구 사항에 해당합니다.--no-wait에서 실행한 뒤 ECS 서비스의 또 다른 안정된 상태를 기다리기 위해 ecspresso wait 명령을 준비했다.

wait 명령 옵션


$ ecspresso wait --help
usage: ecspresso wait

wait until service stable

Flags:
  --help           Show context-sensitive help (also try --help-long and --help-man).
  --config=CONFIG  config file
  --debug          enable debug log
wait 명령에는 특정한 옵션이 없습니다.

wait 명령 설치

wait 명령의 실현은 ECS 서비스의 실행 방법에 따라 다르다.

스크롤 프로그램(기본값)


서비스 정의deploymentController.typeECS의 경우입니다.특별한 처리 방법을 지정하지 않으면 ECS 기본 스크롤 처리가 수행됩니다.
aws-sdk-go의 ecs.WaitUntilServicesStable를 호출하여 wait를 실현하였다.

AWS CodeDeploy를 통한 디버깅의 경우


서비스 정의deploymentController.typeCODE_DEPLOY의 경우입니다.AWS Code Deploy를 통해 depro를 진행하는 방법에 대해서는 17일째 설명돼 있다.
aws-sdk-gocodedeploy.WaitUntilDeploymentSuccessful를 호출하여 실현합니다.

deployment Controller는 EXTERNAL의 경우입니다.


외부 프로그램 집필 기간(2020년-12년)에는 지원하지 않는다.wait뿐만 아니라 deploy 명령도 지원되지 않습니다.
10일째에는 파일의 서비스/퀘스트 정의를 설정하고 실행 중인 서비스/퀘스트 정의 상태 차이를 표시하는 방법을 설명합니다.
https://zenn.dev/fujiwara/articles/ecspresso-20201210

좋은 웹페이지 즐겨찾기