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.