CircleCI를 사용한 Terraform CI/CD 스테이징 파이프라인
CD가 연속 배포를 나타내는 Terraform CI/CD 스테이징 파이프라인을 사용하면 Terraform을 사용하여 인프라를 안전하고 지속적으로 개발할 수 있습니다. 일반적으로 메인 브랜치의 커밋은 파이프라인을 시작하고 원하는 변경 사항은 먼저 DEV 단계에서 실행됩니다. 수동 승인을 통해 변경 사항을 QA 단계로 롤아웃한 다음 파이프라인을 통해 PROD 단계로 롤아웃할 수 있습니다.
여기에서 AWS를 클라우드 공급자로 사용하는 그러한 Terraform CI/CD 준비 파이프라인이 어떤 모습일 수 있는지 제시하고 싶습니다.
CI/CD 스테이징 파이프라인이 필요한 이유는 무엇입니까?
고객과 함께 Hasura, RDS, ECS 및 기타 여러 AWS 서비스를 사용하여 복잡한 AWS 설정을 계획하고 개발합니다. 무엇보다도 이 설정은 Salesforce의 기존 프로덕션 환경과도 상호 작용해야 합니다. 따라서 DEV 및 QA 환경에서 새로운 기능을 테스트하는 것이 가장 중요합니다.
이러한 환경 DEV 및 QA는 가능한 한 PROD 환경과 유사하게 작동해야 합니다. 또한 가능한 한 적은 수동 단계로 PROD 환경에서 변경 사항을 신속하게 실행할 수 있어야 합니다. 정확히 이러한 요구 사항에 대해 CI/CD 스테이징 파이프라인이 적합합니다.
다중 계정 설정
CI/CD 준비 파이프라인을 생성하려면 DEV, QA 또는 PROD와 같은 각 단계에 별도의 AWS 계정을 사용하는 것이 가장 좋습니다. 따라서 파이프라인 설정은 Terraform으로 이러한 계정을 부트스트랩하거나 초기화한 다음 변경 사항을 롤아웃할 수 있어야 합니다.
다중 계정 설정의 경우 기사Terraform AWS Multi-Account Setup를 모델로 사용했으며 여기서 accounts/dev/backend.conf 및 accounts/dev/terraform.tfvars과 같은 구성 파일을 사용하여 각 단계를 구성했습니다. 이제 매우 멋진 점은 이것이 모든 스테이징 환경에 대해 동일한main.tf을 사용할 수 있다는 것입니다.
너무 자주 고객이 Terraform을 사용하여 각 스테이징 환경에 대해 별도의 TF 파일을 만들고 리소스를 앞뒤로 복사하는 것을 봅니다. 이를 중지해야 하며 여기에 설명된 접근 방식이 도움이 될 수 있습니다!
CircleCI 스테이징 파이프라인
CircleCI는 DevOps 기능을 위한 지속적 통합 및 지속적 제공 플랫폼입니다. Travis 또는 GitHub Actions와 같은 다른 DevOps 플랫폼과 마찬가지로 파이프라인 yaml 정의는 config.yml이라는 .circleci 폴더에 생성됩니다. 내가 매우 좋아하는 점은 CircleCI가 수동 승인을 지원하고 다음과 쉽게 통합할 수 있다는 것입니다.
workflows:
version: 2
plan_approve_apply:
jobs:
- dev-plan-apply
- dev-hold-apply:
type: approval
requires:
- dev-plan-apply
...
이렇게 하면 계획된 인프라 변경을 먼저 검토한 다음 구현할 수 있습니다. 전체 코드here를 볼 수 있습니다.
시야
다음으로 TypeScript로 인프라를 정의할 수 있도록 CDKTF을 소개하겠습니다. AWS CDK의 경우와 유사하게 Terraform을 사용하여 개발 속도를 높일 것으로 기대합니다. 유형 지원을 통해 누락된 Terraform 속성을 조기에 식별할 수 있습니다. 또한 속성에 대한 문서는 매우 편리하며 Terraform 문서를 거의 볼 필요가 없습니다.
그 후 Aurora, ECS, VPC 등과 같은 AWS 리소스가 Terraform과 통합되는 방식을 보게 되어 매우 기쁩니다. 이 모든 것이 AWS에서 멋진 것을 구축할 수 있는 도구 세트를 확장합니다.
결론
CI/CD 스테이징 파이프라인은 AWS에서 안정적인 인프라를 구축하기 위한 중요한 도구입니다. 이 기사에서는 AWS에서 Terraform을 사용하여 수행하는 방법을 설명했습니다. 저는 아직 Terraform 초보자이기 때문에 작은 실수를 저질렀을 수 있습니다. 개선을 위한 제안이 있거나 저와 함께 간단하고 멋진 프로젝트에 대해 논의하고 싶다면 언제든지 저에게 편지를 보내주세요 :)!
영어로 번역하는 데 도움을 주고 많은 시간을 절약해 준 DeepL translater (free version)에게 감사합니다 :).
저는 오픈 소스 프로젝트 작업을 좋아합니다. 이미 https://github.com/mmuller88에서 사용할 수 있는 많은 것들이 있습니다. 내 작업과 내 블로그 게시물이 마음에 들면 다음에서 나를 지원하는 것을 고려하십시오.
또는
그리고 내 사이트를 방문하는 것을 잊지 마세요
Reference
이 문제에 관하여(CircleCI를 사용한 Terraform CI/CD 스테이징 파이프라인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/terraform-cicd-staging-pipeline-with-circleci-gdf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)