Amazon Virtual Private 클라우드와 AWS CodeBuild 함께 사용 - AWS CodeBuild

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Virtual Private 클라우드와 AWS CodeBuild 함께 사용

일반적으로 VPC의 리소스에 액세스할 AWS CodeBuild 수 없습니다. 액세스를 활성화하려면 프로젝트 구성에 VPC별 구성 정보를 추가로 제공해야 합니다. CodeBuild 여기에는 VPC ID, VPC 서브넷 ID 및 VPC 보안 그룹 ID가 포함됩니다. 그러면 VPC 활성화 빌드가 VPC 내부의 리소스에 액세스할 수 있습니다. Amazon VPC의 VPC 설정에 대한 자세한 내용은 Amazon VPC 사용 설명서를 참조하세요.

사용 사례

AWS CodeBuild 빌드의 VPC 연결을 통해 다음을 수행할 수 있습니다.

  • 빌드에서 사설 서브넷에 격리된 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에서 호스팅되는 모든 리소스에 액세스할 수 있습니다.

프로젝트에서 Amazon VPC 액세스 허용 CodeBuild

VPC 구성에 다음 설정을 포함합니다.

  • VPC ID의 경우 사용하는 VPC ID를 선택합니다. CodeBuild

  • 서브넷의 경우 에서 사용하는 리소스를 포함하거나 해당 리소스에 대한 경로가 있는 NAT 변환이 있는 프라이빗 서브넷을 선택하십시오. CodeBuild

  • 보안 그룹의 경우 VPC의 리소스에 대한 액세스를 허용하는 데 CodeBuild 사용하는 보안 그룹을 선택합니다.

콘솔을 사용하여 빌드 프로젝트를 생성하려면 빌드 프로젝트 만들기(콘솔) 단원을 참조하십시오. CodeBuild 프로젝트를 만들거나 변경할 때 VPC에서 VPC ID, 서브넷, 보안 그룹을 선택합니다.

를 사용하여 빌드 프로젝트를 AWS CLI 만들려면 을 참조하십시오. 빌드 프로젝트 생성(AWS CLI) 를 사용하는 경우 IAM 사용자를 대신하여 서비스와 상호 작용하는 CodeBuild 데 사용하는 서비스 역할에 정책이 연결되어 있어야 합니다. AWS CLI CodeBuild 자세한 내용은 VPC 네트워크 인터페이스 생성에 필요한 AWS 서비스에 CodeBuild 대한 액세스 허용을 참조하세요.

VPCConfig 객체에는 vPCID, 및 서브넷이 포함되어야 합니다. securityGroupIds

  • vpcId: 필수 항목입니다. 사용하는 VPC ID입니다. CodeBuild 리전의 모든 Amazon VPC ID 목록을 가져오려면 다음 명령을 실행합니다.

    aws ec2 describe-vpcs
  • subnets: 필수 항목입니다. 에서 사용하는 리소스가 포함된 서브넷 ID. CodeBuild 이 ID를 얻으려면 다음 명령을 실행합니다.

    aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region us-east-1
    참고

    us-east-1을 해당 리전으로 바꿉니다.

  • securityGroupIds: 필수. 에서 VPC의 리소스에 대한 액세스를 허용하는 CodeBuild 데 사용하는 보안 그룹 ID. 이 ID를 얻으려면 다음 명령을 실행합니다.

    aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" --region us-east-1
    참고

    us-east-1을 해당 리전으로 바꿉니다.

VPC 모범 사례

작업할 VPC를 설정할 때 이 체크리스트를 사용하십시오. CodeBuild

  • 퍼블릭 및 프라이빗 서브넷과 NAT 게이트웨이가 있는 VPC를 설정합니다. NAT 게이트웨이는 퍼블릭 서브넷에 상주해야 합니다. 자세한 내용은 Amazon VPC 사용 설명서의 퍼블릭 및 프라이빗 서브넷이 있는 VPC(NAT)를 참조하세요.

    중요

    퍼블릭 엔드포인트에 도달할 CodeBuild 수 있도록 CodeBuild VPC와 함께 사용할 NAT 게이트웨이 또는 NAT 인스턴스가 필요합니다 (예: 빌드 실행 시 CLI 명령 실행). 인터넷 게이트웨이는 생성하는 네트워크 인터페이스에 엘라스틱 IP 주소를 할당하는 것을 CodeBuild 지원하지 않기 때문에 NAT 게이트웨이 또는 NAT 인스턴스 대신 인터넷 게이트웨이를 사용할 수 없습니다. Amazon EC2는 Amazon EC2 인스턴스 시작 외부에서 생성된 네트워크 인터페이스에 대해 퍼블릭 IP 주소 자동 할당을 지원하지 않기 때문입니다.

  • VPC에 여러 가용 영역을 포함합니다.

  • 보안 그룹에 빌드에 허용되는 인바운드 (인그레스) 트래픽이 없는지 확인하십시오. CodeBuild 아웃바운드 트래픽에 대한 특정 요구 사항은 없지만 Amazon S3와 같이 GitHub 빌드에 필요한 모든 인터넷 리소스에 대한 액세스를 허용해야 합니다.

    자세한 내용은 Amazon VPC 사용 설명서의 보안 그룹 규칙을 참조하세요.

  • 빌드에 대해 별도의 서브넷을 설정합니다.

  • VPC에 액세스하도록 CodeBuild 프로젝트를 설정할 때는 프라이빗 서브넷만 선택하십시오.

Amazon VPC의 VPC 설정에 대한 자세한 내용은 Amazon VPC 사용 설명서를 참조하세요.

VPC 기능을 사용하도록 VPC를 구성하는 AWS CloudFormation 데 사용하는 방법에 대한 자세한 내용은 를 참조하십시오. CodeBuild AWS CloudFormation VPC 템플릿

VPC 설정 문제 해결

오류 메시지에 표시되는 정보를 사용하면 해당 문제를 식별, 진단 및 해결하는 데 도움이 됩니다.

다음은 일반적인 CodeBuild VPC 오류를 해결할 때 도움이 되는 몇 가지 지침입니다. Build does not have internet connectivity. Please check subnet network configuration

  1. 인터넷 게이트웨이가 VPC에 연결되어 있는지 확인합니다.

  2. 퍼블릭 서브넷의 라우팅 테이블이 인터넷 게이트웨이를 가리키는지 확인합니다.

  3. 네트워크 ACL이 트래픽의 흐름을 허용하는지 확인합니다.

  4. 보안 그룹이 트래픽의 흐름을 허용하는지 확인합니다.

  5. NAT 게이트웨이 문제를 해결합니다.

  6. 프라이빗 서브넷의 라우팅 테이블이 NAT 게이트웨이를 가리키는지 확인합니다.

  7. IAM 사용자를 대신하여 서비스와 상호 작용하는 CodeBuild 데 사용하는 서비스 역할에 정책의 권한이 있는지 확인하십시오. 자세한 정보는 CodeBuild 서비스 역할 생성을 참조하세요.

    권한이 CodeBuild 누락된 경우 다음과 같은 오류 메시지가 표시될 수 있습니다. Unexpected EC2 error: UnauthorizedOperation VPC를 사용하는 데 필요한 Amazon EC2 권한이 없는 경우 CodeBuild 이 오류가 발생할 수 있습니다.

VPC의 제한 사항

  • Windows에서는 VPC 연결이 지원되지 않습니다. CodeBuild

  • 공유 VPC의 VPC CodeBuild 연결은 지원되지 않습니다.