기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CI/CD 파이프라인 모범 사례
다음은 전체 CI/CD 파이프라인의 모범 사례입니다.
-
프로덕션 환경 보호 - IaC를 사용하여 계정 및 환경 유지 관리에 필요한 거의 모든 것을 수행할 수 있으므로 콘솔 및 프로그래밍 방식 액세스를 제한하여 프로덕션 환경을 보호하기 위해 모든 노력을 기울이는 것이 중요합니다. 액세스를 소수 또는 0명의 사용자로만 제한하는 것이 좋습니다. 를 통해 IaC AWS CloudFormation를 배포하는 경우 사용자에게 제한된 권한이 필요합니다. 대부분의 권한은 서비스 역할을 통해 CloudFormation 서비스에 할당됩니다. 자세한 내용은 CloudFormation 설명서의 서비스 역할 및에 대한 최소 권한에 대한 정책 구현을 참조하세요 AWS CloudFormation.
-
각 환경에 대해 별도의 계정 생성 - 각 환경에 별도의 계정을 전용하여 배포 프로세스를 간소화하고 계정 수준에서 세분화된 액세스 제어를 생성할 수 있습니다. 여러 환경이 리소스를 공유하면 격리된 단위로 환경의 무결성이 감소합니다. 환경을 동기화하고 구분하는 것이 가장 좋습니다. 이는 프로덕션 환경에 더 중요합니다. 해당 계정의 모든 것을 프로덕션 리소스로 취급해야 하기 때문입니다.
-
개인 식별 정보(PII)를 프로덕션 환경으로 제한 - 보안 및 책임 위험으로부터 보호하기 위해 PII를 최대한 보호합니다. 낮은 환경에서 가능하면 프로덕션 환경에서 잠재적으로 민감한 데이터를 복사하는 대신 익명화된 데이터 또는 샘플 데이터를 사용합니다.
-
리포지토리의 코드 검토 - 전체 CI/CD 프로세스는 파이프라인의 진입점을 단일 지점으로 줄이고 해당 단일 지점을 보호해야 합니다. 따라서 기능 브랜치를 기본 브랜치에 병합하기 전에 여러 코드 검토를 요구하는 것이 좋습니다. 이러한 코드 검토는 자격을 갖춘 모든 팀원이 수행할 수 있지만 한 명 이상의 고위 멤버가 검토해야 합니다. 코드는 검토자가 엄격하게 테스트해야 합니다. 결국 파이프라인에서 문제를 해결하는 가장 좋은 방법은 문제가 파이프라인에 유입되지 않도록 하는 것입니다. 또한 병합하기 전에 검토자의 모든 의견을 해결하는 것이 중요합니다. 이 해결 방법은 변경이 필요하지 않은 이유에 대한 설명일 뿐이지만, 모든 의견을 해결하는 것은 파이프라인에 문제가 유입되는 것을 방지하는 데 도움이 되는 중요한 추가 점검입니다.
-
작고 빈번한 병합 수행 - 지속적인 통합을 최대한 활용하려면 로컬 변경 사항도 파이프라인에 지속적으로 푸시하는 것이 좋습니다. 결국 로컬 환경도 동기화를 유지하는 경우 개발 환경이 동기화를 유지하는 것이 훨씬 더 유용합니다.
CI/CD 파이프라인에 대한 자세한 모범 사례는 지속적인 통합 및 지속적 전송 실행의 모범 사례 요약을 참조하세요. AWS