Amazon Virtual Private Cloud AWS CodeBuild で を使用する - AWS CodeBuild

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Virtual Private Cloud AWS CodeBuild で を使用する

通常、 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 バケット内のオブジェクトにアクセスする。

  • 固定 IP アドレスを必要とする外部ウェブサービスを、サブネットに関連付けられた NAT ゲートウェイまたは NAT インスタンスの Elastic IP アドレスを使用してクエリする。

お客様のビルドは、VPC でホストされている任意のリソースにアクセスできます。

プロジェクトで Amazon VPC アクセスを許可する CodeBuild

以下の設定を VPC 設定に含めます。

  • VPC ID で、 が CodeBuild 使用する VPC ID を選択します。

  • サブネット では、 が使用するリソースを含む、またはリソースへのルートを持つ NAT 変換でプライベートサブネットを選択します CodeBuild。

  • セキュリティグループ で、 CodeBuild が VPCs内のリソースへのアクセスを許可するために使用するセキュリティグループを選択します。

コンソールを使用してビルドプロジェクトを作成する方法については、「ビルドプロジェクトの作成 (コンソール)」を参照してください。 CodeBuild プロジェクトを作成または変更する場合、VPC で VPC ID、サブネット、セキュリティグループを選択します。

を使用してビルドプロジェクト AWS CLI を作成するには、「」を参照してくださいビルドプロジェクトの作成 (AWS CLI)。 AWS CLI で を使用している場合 CodeBuild、IAM ユーザーに代わって サービスとやり取り CodeBuild するために で使用されるサービスロールには、 ポリシーがアタッチされている必要があります。詳細については、「VPC ネットワークインターフェイスの作成に必要な AWS サービス CodeBuild へのアクセスを許可する」を参照してください。

vpcConfig オブジェクトには、vpcIdsecurityGroupIds、サブネット が含まれている必要があります

  • vpcId: 必須。が CodeBuild 使用する VPC ID。リージョン内の Amazon VPC ID を一覧表示するには、次のコマンドを実行します。

    aws ec2 describe-vpcs
  • subnets: 必須。で使用されるリソースを含むサブネット IDs CodeBuild。この ID を取得するには、次のコマンドを実行します。

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

    us-east-1 は、実際のリージョンに置き換えます。

  • securityGroupIds: 必須。VPCs 内のリソースへのアクセスを許可 CodeBuild するために で使用されるセキュリティグループ IDs。この 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 に到達できるように、VPC CodeBuild で使用する NAT ゲートウェイまたは NAT インスタンスが必要です (ビルドの実行時に CLI コマンドを実行する場合など)。 CodeBuild は、作成したネットワークインターフェイスへの Elastic IP アドレスの割り当てをサポートしていません。また、Amazon EC2 インスタンスの起動以外で作成されたネットワークインターフェイスでは、パブリック IP アドレスの自動割り当ては Amazon EC2 でサポートされていないため、NAT ゲートウェイまたは NAT インスタンスの代わりにインターネットゲートウェイを使用することはできません。

  • VPC に複数のアベイラビリティーゾーンを含めます。

  • セキュリティグループに、builds. CodeBuild does へのインバウンド (進入) トラフィックが許可されていないことを確認してください。アウトバウンドトラフィックに特定の要件はありませんが、 GitHub や Amazon S3 など、ビルドに必要なインターネットリソースへのアクセスを許可する必要があります。

    詳細については、「Amazon VPC ユーザーガイド」の「セキュリティグループルール」を参照してください。

  • ビルド用に別個のサブネットを設定します。

  • VPC にアクセスするように CodeBuild プロジェクトを設定するときは、プライベートサブネットのみを選択します。

Amazon VPC で VPC を設定する方法の詳細については、Amazon VPC ユーザーガイドを参照してください。

AWS CloudFormation を使用して VPC 機能を使用するように CodeBuild VPC を設定する方法の詳細については、「」を参照してください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。このエラーは、 CodeBuild に VPC の操作に必要な Amazon EC2 アクセス許可がない場合に発生する可能性があります。

VPC の制限事項

  • からの VPC 接続 CodeBuild は Windows ではサポートされていません。

  • からの VPC 接続 CodeBuild は、共有 VPCsではサポートされていません。