AWS CodeDeploy 속도를 높일 수있는 방법이 있습니까


15

AWS CodeDeploy를 사용하여 사이트를 배포하고 있는데 속도가 일정하지 않은 것으로 나타났습니다. 때로는 속도가 빠르지 만 배포의 각 단계마다 몇 분이 걸릴 수 있습니다. 버그 나 정전이 발생한 경우 배포를 빠르게 수행해야하는 경우 매우 성가신 일입니다.

CodeDeploy의 속도에 대한 문서를 찾을 수 없으며 느리거나 빠를 때 논리를 찾을 수없는 것 같습니다. 속도를 높일 수있는 방법이 있고 시간이 오래 걸리는 것을 알 수있는 방법이 있습니까?

답변:


10

CodeDeploy는 기본적으로 거의 작업을 수행하지 않습니다. S3 또는 Github에서 코드를 가져온 다음 파일의 지침에 따라 스크립트 를 실행 합니다appspec.yml .

배포에서 S3에서 기가 바이트의 데이터를 가져 오는 경우 데이터 전송에 시간이 걸리지 만 (특히 대역폭이 제한된 소규모 EC2 인스턴스에서) 배포 지연이 아닌 경우 배포 지연이 발생할 수 있습니다. 배포 스크립트에서 수행 중입니다.

CodeDeploy 배포 단계는 다음과 같습니다.

  • ApplicationStop-이 후크를 제어합니다
  • 번들-CodeDeploy가 S3 / Github에서 코드를 가져옵니다.
  • BeforeInstall-이 후크를 제어합니다
  • 설치-CodeDeploy는 임시 위치에서 최종 목적지로 코드를 복사합니다.
  • AfterInstall-이 후크를 제어합니다
  • ApplicationStart-이 후크를 제어합니다
  • ValidateService-이 후크를 제어합니다

굵게 표시된 것은 CodeDeploy에 달려 있고, 다른 것은 귀하에게 달려 있습니다. 굵은 글씨가 지연되는 경우 AWS 지원에 문의하십시오. 그렇지 않으면 후크를 조사해야 할 가능성이 있습니다.


예, 제 자신의 스크립트는 간단하고 빠릅니다. 다운로드 번들 단계는 종종 실행하는 데 몇 분이 걸리며 프로젝트는 그다지 크지 않습니다. 몇 초 밖에 걸리지 않습니다. 나는 개발 지원 계획이 없으며 이것을 위해 기꺼이 지불하지 않을 것이므로 지금 당장 내버려 두겠다.
— 재스퍼 케니스

다시 확인하면 문제는 대역폭이어야합니다. 스테이징 서버에는 작은 인스턴스 유형을 사용하고 프로덕션에는 한 번 더 큰 인스턴스를 사용하고 있으며 항상 느린 스테이징입니다.
— 재스퍼 케니스

@JasperKennis 예, 특히 노이즈가 많은 이웃이있는 호스트의 경우 더 작은 인스턴스 유형의 대역폭이 상당히 제한 될 수 있습니다. 말이 되겠네요
— ceejayoz 2019

21

BlockTraffic 및 AllowTraffic

대상 그룹의 상태 확인 설정을 조정하면 몇 분 정도 단축 될 수 있습니다.

전에

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

후

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

설명

이는 작동 BlockTraffic하고 AllowTraffic성공적인 건강 검진 모두 대기. 기본 상태 점검 간격은 30 초마다 1 회의 점검이며 성공적인 상태 점검에는 5 번의 연속 200 회 응답이 필요합니다. 따라서 기본적으로 2 분 30 초 이상이 걸립니다. 그리고 그것은 모든 EC2 인스턴스를위한 것입니다. 상태 확인 간격을 줄이고 필요한 확인 횟수를 제한하면 배포 시간이 향상됩니다.


이 변경을 한 후 Script at specified location: ... failed to complete in 5 seconds. (그것은 appspec.yml-> 후크에서 설정 -> BeforeInstall : (말씀 해주십시오 이유)
— 예브게니 Afanasyev

BeforeInstall 구성에 시간 초과가 설정되어 있습니까? docs.aws.amazon.com/codedeploy/latest/userguide/…
— 피터 타오

감사합니다. 이제는 관련이 아니라 우연의 일치입니다.
— Yevgeniy Afanasyev

2

확인할 다른 설정은 대상 그룹의 "등록 취소 지연"입니다. 내 건강 점검 설정은 이미 낮았으며 이것이 내 병목 현상이었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.