일반적으로 AWS CodeBuild에서는 VPC의 리소스에 액세스할 수 없습니다. 액세스를 활성화하려면 CodeBuild 프로젝트 구성에 추가적인 VPC별 구성 정보를 제공해야 합니다. 여기에는 VPC ID, VPC 서브넷 ID 및 VPC 보안 그룹 ID가 포함됩니다. 그러면 VPC 활성화 빌드가 VPC 내부의 리소스에 액세스할 수 있습니다. Amazon VPC의 VPC 설정에 대한 자세한 내용은 Amazon VPC 사용 설명서를 참조하세요.
주제
사용 사례
AWS CodeBuild 빌드에서의 VPC 연결을 통해 다음을 수행할 수 있습니다.
-
프라이빗 서브넷에서 격리된 Amazon RDS 데이터베이스의 데이터에 대해 빌드에서 통합 테스트를 실행합니다.
-
테스트에서 Amazon ElastiCache 클러스터의 데이터를 직접 쿼리합니다.
-
Amazon EC2, Amazon ECS에서 호스팅되는 내부 웹 서비스 또는 내부 Elastic Load Balancing을 사용하는 서비스와 상호 작용합니다.
-
Python용 PyPI, Java용 Maven 및 Node.js용 npm과 같은 자체 호스팅된 내부 결과물 리포지토리의 종속성을 검색합니다.
-
Amazon VPC 엔드포인트를 통해서만 액세스할 수 있도록 구성된 S3 버킷의 객체에 액세스합니다.
-
서브넷과 연결된 NAT 게이트웨이 또는 NAT 인스턴스의 탄력적 IP 주소를 통해 고정 IP 주소가 필요한 외부 웹 서비스를 쿼리합니다.
빌드는 VPC에서 호스팅되는 모든 리소스에 액세스할 수 있습니다.
VPC 모범 사례
CodeBuild에서 작동하도록 VPC를 설정할 때 이 체크리스트를 사용합니다.
-
퍼블릭 및 프라이빗 서브넷과 NAT 게이트웨이가 있는 VPC를 설정합니다. NAT 게이트웨이는 퍼블릭 서브넷에 상주해야 합니다. 자세한 내용은 Amazon VPC 사용 설명서의 퍼블릭 및 프라이빗 서브넷이 있는 VPC(NAT)를 참조하세요.
중요
CodeBuild와 VPC를 함께 사용하여 CodeBuild가 퍼블릭 엔드포인트에 도달할 수 있게 하려면 NAT 게이트웨이 또는 NAT 인스턴스가 필요합니다(예: 빌드 실행 중 CLI 명령을 실행하는 경우). CodeBuild는 생성하는 네트워크 인터페이스에 탄력적 IP 주소를 할당하는 것을 지원하지 않기 때문에 NAT 게이트웨이 또는 NAT 인스턴스 대신 인터넷 게이트웨이를 사용할 수 없습니다. 또한 Amazon EC2 인스턴스를 시작하지 않고 생성된 네트워크 인터페이스의 경우 Amazon EC2는 퍼블릭 IP 주소 자동 할당을 지원하지 않습니다.
-
VPC에 여러 가용 영역을 포함합니다.
-
보안 그룹에 빌드에 허용된 인바운드(수신) 트래픽이 없는지 확인합니다. CodeBuild에는 아웃바운드 트래픽에 대한 특정 요구 사항이 없지만 GitHub 또는 Amazon S3와 같이 빌드에 필요한 모든 인터넷 리소스에 대한 액세스를 허용해야 합니다.
자세한 내용은 Amazon VPC 사용 설명서의 보안 그룹 규칙을 참조하세요.
-
빌드에 대해 별도의 서브넷을 설정합니다.
-
VPC에 액세스하기 위해 CodeBuild 프로젝트를 설정할 때 프라이빗 서브넷만 포함합니다.
Amazon VPC의 VPC 설정에 대한 자세한 내용은 Amazon VPC 사용 설명서를 참조하세요.
CodeBuild VPC 기능을 사용하도록 AWS CloudFormation을 통해 VPC를 구성하는 방법에 대한 자세한 내용은 AWS CloudFormation VPC 템플릿 섹션을 참조하세요.
VPC의 제한 사항
-
CodeBuild에서 VPC로의 연결은 공유 VPC에 대해 지원되지 않습니다.