

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

# プロキシサーバーで CodeBuild を実行するために必要なコンポーネントを設定
<a name="use-proxy-server-transparent-components"></a>

 これらのコンポーネントは、透過的または明示的なプロキシサーバー AWS CodeBuild で実行する必要があります。
+  VPC。
+  プロキシサーバー用に VPC 内の 1 つのパブリックサブネット。
+  CodeBuild 用に VPC 内の 1 つのプライベートサブネット。
+  VPC とインターネットの間の通信を可能にするインターネットゲートウェイ。

 次の図は、これらのコンポーネントがどのように連携するかを示しています。

![\[この図では、コンポーネントがどのように連携するかを示しています。\]](http://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/images/codebuild-proxy-transparent.png)


## VPC、サブネット、ネットワークゲートウェイのセットアップ
<a name="use-proxy-server-transparent-setup"></a>

 透過的または明示的なプロキシサーバー AWS CodeBuild で を実行するには、次の手順が必要です。

1. VPC を作成します。VPC の作成の詳細については、「[Amazon VPC ユーザーガイド](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC)」の「*VPC を作成する*」をご参照ください。

1. VPC 内に 2 つのサブネットを作成します。1 つは、プロキシサーバーを実行する `Public Subnet` という名前のパブリックサブネットです。もう 1 つは、CodeBuild を実行する `Private Subnet` という名前のプライベートサブネットです。

   詳細については、「[VPC でのサブネットの作成](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)」を参照してください。

1.  インターネットゲートウェイを作成して VPC にアタッチします。詳細については、「[インターネットゲートウェイの作成とアタッチ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Attach_Gateway)」を参照してください。

1.  VPC (0.0.0.0/0) からインターネットゲートウェイに送信トラフィックをルーティングするルールをデフォルトルートテーブルに追加します。詳細については、「[ルートテーブルでのルートの追加および削除](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#AddRemoveRoutes)」を参照してください。

1.  VPC (0.0.0.0/0) からの着信 SSH トラフィック (TCP 22) を許可するルールを VPC のデフォルトセキュリティグループに追加します。

1.  「*Amazon EC2 ユーザーガイド*」の「[コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html)」の指示に従って Amazon Linux インスタンスを起動します。ウィザードを実行する場合は次のオプションを選択してください。
   +  **[インスタンスタイプの選択]** で、Amazon Linux の Amazon マシンイメージ (AMI) を選択します。
   +  [**サブネット**] で、このトピックで先に作成したパブリックサブネットを選択します。推奨された名前を使用した場合は、[**Public Subnet**] です。
   +  [**Auto-assign Public IP**] で、[**Enable**] を選択します。
   +  [**セキュリティグループの設定**] ページの [**セキュリティグループの割り当て**] で、[**Select an existing security group (既存のセキュリティグループの選択)**] を選択します。次に、デフォルトのセキュリティグループを選択します。
   +  [**起動**] を選択したら、既存のキーペアを選択するか、新しいキーペアを作成します。

    それ以外のオプションについては、デフォルト設定を選択します。

1.  EC2 インスタンスの実行後は、送信元/送信先チェックを無効にします。詳細については、「[Amazon VPC ユーザーガイド](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#EIP_Disable_SrcDestCheck)」の「*Disabling Source/Destination checks*」を参照してください。

1.  VPC にルートテーブルを作成します。インターネット用のトラフィックをプロキシサーバーにルーティングするためのルールをルートテーブルに追加します。このルートテーブルをプライベートサブネットに関連付けます。これは、CodeBuild が実行されているプライベートサブネット内のインスタンスからのアウトバウンドリクエストを、常にプロキシサーバーを介してルーティングするために必要です。

## プロキシサーバーのインストールと設定
<a name="use-proxy-server-squid-install"></a>

 選択できるプロキシサーバーは多数あります。ここでは、オープンソースのプロキシサーバー Squid を使用して、プロキシサーバーで AWS CodeBuild がどのように実行されるかを示します。同じ概念を他のプロキシサーバーにも適用できます。

 Squid をインストールするには、次のコマンドを実行して yum repo を使用します。

```
sudo yum update -y
sudo yum install -y squid
```

 Squid をインストールしたら、このトピックで後述する手順に従って、その `squid.conf` ファイルを編集します。

## HTTPS トラフィック用の Squid の設定
<a name="use-proxy-server-squid-configure-https"></a>

 HTTPS では、HTTP トラフィックは Transport Layer Security (TLS) 接続でカプセル化されます。Squid では、[SslPeekAndSplice](https://wiki.squid-cache.org/Features/SslPeekAndSplice) と呼ばれる機能を使用して、リクエストされたインターネットホストを含む TLS 初期化から Server Name Indication (SNI) を取得します。これは必須のため、Squid で HTTPS トラフィックを復元する必要はありません。SslPeekAndSplice を有効にするには、Squid に証明書が必要です。OpenSSL を使用してこの証明書を作成する: 

```
sudo mkdir /etc/squid/ssl
cd /etc/squid/ssl
sudo openssl genrsa -out squid.key 2048
sudo openssl req -new -key squid.key -out squid.csr -subj "/C=XX/ST=XX/L=squid/O=squid/CN=squid"
sudo openssl x509 -req -days 3650 -in squid.csr -signkey squid.key -out squid.crt
sudo cat squid.key squid.crt | sudo tee squid.pem
```

**注記**  
 HTTP では、Squid の設定は必要ありません。すべての HTTP/1.1 リクエストメッセージから、ホストヘッダーフィールドを取得することができます。これにより、リクエストされているインターネットホストが指定されます。