AWS CDK 종속성 지옥에서 영혼을 구하고 3명의 총사를 통해 DevEx를 개선하십시오.

3584 단어 cdk3musketeersiacaws
크로스 포스트: Medium | Arcadian

GitHub 저장소: https://github.com/chrishart0/aws-cdk-typescript-3-musketeers

이것은 삼총사 패턴을 따르는 컨테이너화된 AWS CDK의 예입니다.

어쨌든 이 삼총사는 무엇이며 AWS CDK를 컨테이너화하는 것과 같은 일을 하고 싶은 이유는 무엇입니까?



연결:
  • 장대한 개발자 경험을 위한 삼총사
  • 삼총사란?
  • AWS CDK란 무엇입니까

  • 주로 개발자 경험을 중심으로 하는 삼총사 패턴에는 많은 이점이 있습니다. 3 Musketeers는 모든 종속성을 하나의 컨테이너에 패키징하여 전체 팀이 최신 상태를 쉽게 유지할 수 있도록 합니다. 삼총사 패턴의 또 다른 실질적인 이점은 새 개발자를 설정하는 것이 얼마나 쉬운지 입니다. docker, docker-compose 및 make(Windows의 WSL도 포함)를 설치했는지 확인하기만 하면 됩니다. 이제 새 프로젝트를 위한 설정은 repo를 복제하고 make install을 실행하는 것만큼 간단합니다.

    여러 CDK 프로젝트에서 작업한 적이 있다면 종속성 관리에 문제가 생겼을 것이며 특히 Node.js를 처음 사용하는 개발자에게 이러한 문제가 얼마나 어려운지 알 것입니다. 이제 3 Musketeers가 이러한 문제를 완화할 수 있는 방법이 분명해집니다.

    시작하기



    이제 AWS CDK에서 3 Musketeers 패턴을 사용하는 것이 좋은 이유를 보았으므로 바로 시작하겠습니다.

    GitHub에서 이 리포지토리를 복제하여 시작합니다. https://github.com/chrishart0/aws-cdk-typescript-3-musketeers

    여기에는 컨테이너화된 AWS CDK를 사용하는 데 필요한 모든 것이 포함됩니다. 먼저 이 repo의 내용을 살펴보자.

    infrastructure 디렉토리는 cdk init sample-app — language typescript 명령을 실행한 결과입니다. 이렇게 하면 작업할 기본 샘플 앱이 제공됩니다. typescript의 AWS CDK에 익숙하지 않은 경우 infrastructure/lib/infrastructure-stack.ts 파일은 배포할 인프라가 있는 위치입니다. SQS 대기열과 SNS 주제가 SNS 주제를 구독하는 대기열로 정의되었음을 알 수 있습니다.

    이 저장소를 그대로 사용하거나 infrastructure의 내용을 작업으로 대체할 수 있습니다.

    이 리포지토리를 시작점으로 사용하는 방법



    참고: 로컬에서 테스트하기 위해 AWS 계정 설정이 필요하지 않습니다. 단순히 bootstrap 명령 실행을 건너뛰십시오.

    로컬로 복제한 저장소의 루트에 CLI를 엽니다.

    명령을 실행하십시오. 이것은 필요한 모든 설정을 수행하고 도커 컨테이너 내에서 cdk synth를 실행합니다.

    $ make
    


    구성된 AWS 계정에서 AWS CDK를 사용한 적이 없다면 CDK 부트스트래퍼를 실행해야 합니다. 이 리포지토리를 로컬에서 테스트하려는 경우 이 단계를 건너뛸 수 있습니다.

    $ make bootstrap
    


    이제 cdk diff , cdk deploycdk destroy와 같은 사용 가능한 다른 명령을 자유롭게 실행할 수 있습니다.

    Gif of make deploy running

    기존 프로젝트에서 사용



    기존 프로젝트가 있고 이 삼총사 패턴을 사용하려면 다음 단계를 따르세요.
  • Makefile , Dockerfiledocker-compose.yaml 파일을 프로젝트의 루트에 복사합니다
  • .
  • CDK_PATHthree_musketeers.env에서 Makefile 변수 업데이트
  • make를 실행하여 초기 설정을 수행하고 cdk synth를 출력하여 모든 것이 올바르게 구성되었는지 확인합니다.
    자세한 내용은 GitHub 리포지토리의 README을 참조하십시오. 아래 의견에서 생각, 의견 또는 비판을 듣고 싶습니다.
  • 좋은 웹페이지 즐겨찾기