

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

# VPC でのスタックの実行
<a name="workingstacks-vpc"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

仮想プライベートクラウド (VPC) でスタックを作成することにより、スタックのインスタンスへのユーザーアクセスを制御できます。たとえば、スタックのアプリケーションサーバーまたはデータベースにユーザーが直接アクセスできるようにしたくない場合、代わりに、すべてのパブリックトラフィックが Elastic Load Balancing を経由するようにします。

VPC でスタックを実行するための基本的な手順は次のとおりです。

1. Amazon VPC コンソールか API、または CloudFormation テンプレートを使用することにより、適切に設定された VPC を作成します。

1. スタックを作成する際に VPC ID を指定します。

1. 適切なサブネットでスタックのインスタンスを起動します。

 OpsWorks スタックでの VPC の動作について、以下に簡単に説明します。

**重要**  
VPC エンドポイント機能を使用する場合、スタックの各インスタンスは、Amazon Simple Storage Service (Amazon S3) から次のアクションを実行できる必要があることに注意してください。  
インスタンスエージェントをインストールする。
Ruby などの資産をインストールする。
Chef の実行ログをアップロードする。
スタックコマンドを取得する。
これらのアクションを有効にするには、スタックのインスタンスが、スタックのリージョンと一致する、以下のバケットにアクセスできる必要があります。それ以外の場合、前述のオペレーションは失敗します。  
Chef 12 Linux および Chef 12.2 Windows の場合、バケットは以下のとおりです。  


| エージェントバケット | 資産バケット | ログバケット | DNA バケット | 
| --- | --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/workingstacks-vpc.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/workingstacks-vpc.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/workingstacks-vpc.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/workingstacks-vpc.html)  | 
Linux 用 Chef 11.10 以前のバージョンの場合、バケットは次のとおりです。Chef 11.4 スタックは、米国東部 (バージニア北部) リージョン 以外のリージョンエンドポイントではサポートされていません。  


| エージェントバケット | 資産バケット | ログバケット | DNA バケット | 
| --- | --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/workingstacks-vpc.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/workingstacks-vpc.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/workingstacks-vpc.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/workingstacks-vpc.html)  | 
詳細については、「[VPC エンドポイント](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html)」を参照してください。

**注記**  
 OpsWorks スタックを有効にした VPC エンドポイントに接続するには、 スタックエージェントがパブリックエンドポイントにアクセスする必要があるため、NAT またはパブリック IP OpsWorks のルーティングも設定する必要があります。

**Topics**
+ [VPC の基本](#workingstacks-vpc-basics)
+ [OpsWorks スタックスタックの VPC を作成する](#workingstacks-vpc-create-vps)

## VPC の基本
<a name="workingstacks-vpc-basics"></a>

VPC の詳細については、「[Amazon Virtual Private Cloud ユーザーガイド](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html)」を参照してください。端的に言えば、VPC は 1 つ以上の*サブネット*で構成され、各サブネットには 1 つ以上のインスタンスが含まれています。また、各サブネットには、送信先 IP アドレスに基づいてアウトバウンドトラフィックを送信する、関連付けられたルーティングテーブルがあります。
+ VPC にあるインスタンスはサブネットに関係なくデフォルトで相互に通信できます。ただし、ネットワークアクセスコントロールリスト (ACL) やセキュリティグループポリシーを変更したり静的 IP アドレスを使用すると、この通信を遮断してしまう可能性があります。
+ サブネットのインスタンスがインターネットと通信できる場合、このサブネットは*パブリックサブネット*と呼ばれます。
+ サブネットのインスタンスが VPC 内の他のインスタンスとのみ通信でき、インターネットとは直接通信できない場合、このサブネットは*プライベートサブネット*と呼ばれます。

OpsWorks スタックでは、プライベートサブネットのインスタンスを含むスタック内のすべてのインスタンスが次のエンドポイントにアクセスできるように VPC を設定する必要があります。
+ の「リージョンサポート」セクションに記載されている OpsWorks スタックサービスエンドポイントの 1 つ[OpsWorks スタックの開始方法](gettingstarted_intro.md)。
+  OpsWorks スタックエージェントで使用される、次のいずれかのインスタンスサービスエンドポイント。エージェントは、マネージドカスタマーインスタンスで実行され、サービスとデータを交換します。
  + opsworks-instance-service.us-east-2.amazonaws.com
  + opsworks-instance-service.us-east-1.amazonaws.com
  + opsworks-instance-service.us-west-1.amazonaws.com
  + opsworks-instance-service.us-west-2.amazonaws.com
  + opsworks-instance-service.ap-south-1.amazonaws.com
  + opsworks-instance-service.ap-northeast-1.amazonaws.com
  + opsworks-instance-service.ap-northeast-2.amazonaws.com
  + opsworks-instance-service.ap-southeast-1.amazonaws.com
  + opsworks-instance-service.ap-southeast-2.amazonaws.com
  + opsworks-instance-service.ca-central-1.amazonaws.com
  + opsworks-instance-service.eu-central-1.amazonaws.com
  + opsworks-instance-service.eu-west-1.amazonaws.com
  + opsworks-instance-service.eu-west-2.amazonaws.com
  + opsworks-instance-service.eu-west-3.amazonaws.com
+ Amazon S3
+ オペレーティングシステムに応じたパッケージリポジトリ (Amazon Linux や Ubuntu Linux のリポジトリなど)。
+ 使用するアプリケーションとカスタムクックブックのリポジトリ

この接続が可能になるように VPC を設定する方法はさまざまです。以下は、 スタックアプリケーションサーバースタックの VPC OpsWorks を設定する方法の簡単な例です。

![\[VPC diagram showing public and private subnets, NAT, load balancing, and connections to external services.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/vpc.png)


この VPC には複数のコンポーネントがあります。

**サブネット**  
この VPC には 2 つのサブネットがあります。1 つはパブリック、もう 1 つはプライベートです。  
+ パブリックサブネットには、ロードバランサーとネットワークアドレス変換 (NAT) デバイスがあり、外部アドレスおよびプライベートサブネットのインスタンスと通信できます。
+ プライベートサブネットにはアプリケーションサーバーがあり、パブリックサブネットの NAT およびロードバランサーと通信できますが、外部アドレスとは直接通信できません。

**インターネットゲートウェイ**  
インターネットゲートウェイがある場合は、パブリック IP アドレスを使用するインスタンス (ロードバランサーなど) が VPC 外のアドレスと通信できます。

**ロードバランサー**  
Elastic Load Balancing ロードバランサーは、ユーザーからの着信トラフィックを処理し、プライベートサブネットのアプリケーションサーバーに配信して、ユーザーにレスポンスを返します。

**NAT**  
NAT デバイスは、アプリケーションサーバーが制限付きでインターネットにアクセスできるようにします。通常は、外部リポジトリからソフトウェア更新をダウンロードするなどの目的で使用されます。すべての OpsWorks スタックインスタンスは、 スタックおよび適切な Linux OpsWorks リポジトリと通信できる必要があります。この問題に対処する方法の 1 つは、関連付けられた Elastic IP アドレスを使用する NAT デバイスをパブリックサブネット内に配置することです。そうすれば、プライベートサブネット内のインスタンスからのアウトバウンドトラフィックを NAT を介してルーティングすることができます。  
NAT インスタンスが 1 つあれば、プライベートサブネットのアウトバウンドトラフィックに単一障害点が生まれます。一方に障害が発生した場合に互いにその機能を引き継ぐ NAT インスタンスのペアを使用して VPC を設定することで、信頼性を向上させることができます。詳細については、「[Amazon VPC NAT インスタンスの高可用性](https://aws.amazon.com/articles/6079781443936876)」を参照してください。NAT ゲートウェイを使用することもできます。詳細については、[「Amazon VPC User Guide」](https://docs.aws.amazon.com/vpc/latest/userguide/)(Amazon VPC ユーザーガイド) の[「NAT」](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat.html)を参照してください。

最適な VPC 設定は OpsWorks 、スタックスタックによって異なります。特定の VPC 設定を使用する場合のいくつかの例を次に示します。その他の VPC のシナリオの例については、「[Amazon VPC のシナリオ](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenarios.html)」を参照してください。

**パブリックサブネットで 1 つのインスタンスを使用する**  
パブリックアクセスすべきでない Amazon RDS インスタンスのように、関連するプライベートリソースのないシングルインスタンスのスタックがある場合、1 つのパブリックサブネットを持つ VPC を作成し、そのサブネットにインスタンスを配置できます。デフォルトの VPC を使用しない場合、このインスタンスのレイヤーでは Elastic IP アドレスをこのインスタンスに割り当てる必要があります。詳細については、「[OpsWorks レイヤーの基本](workinglayers-basics.md)」を参照してください。

**プライベートリソースを使用する**  
パブリックにアクセス可能にしてはならないリソースがある場合は、パブリックサブネット 1 つとプライベートサブネット 1 つを持つ VPC を作成できます。例えば、自動スケーリングを使用する負荷分散環境では、プライベートサブネットにすべての Amazon EC2 インスタンスを配置し、パブリックサブネットにロードバランサーを配置することができます。こうすると、インターネットから Amazon EC2 インスタンスに直接アクセスすることはできませんが、すべての受信トラフィックはロードバランサー経由でルーティングされます。  
プライベートサブネットでは、インスタンスを Amazon EC2 の直接ユーザーアクセスから隔離しますが、AWS および Linux パッケージリポジトリへのアウトバウンドリクエストは送信する必要があります。このようなリクエストを許可するために、たとえば、固有の Elastic IP アドレスを持つネットワークアドレス変換 (NAT) デバイスを使用し、NAT 経由でインスタンスのアウトバウンドトラフィックをルーティングすることができます。前の例に示すように、NAT はロードバランサーと同じパブリックサブネットに配置できます。  
+ Amazon RDS インスタンスなどのバックエンドデータベースを使用している場合は、それらのインスタンスをプライベートサブネットに配置することができます。Amazon RDS インスタンスの場合、異なるアベイラビリティーゾーンに異なるサブネットを、少なくとも 2 つ指定する必要があります。
+ プライベートサブネットのインスタンスに直接アクセスする必要がある場合 (例えば、SSH を使用してインスタンスにログインする場合)、インターネットからリクエストをプロキシする bastion ホストをパブリックサブネットに配置できます。

**独自のネットワークを AWS に拡張する**  
独自のネットワークをクラウドに拡張し、VPC からインターネットへの直接アクセスを可能にする必要がある場合は、VPN ゲートウェイを作成できます。詳細については、「[シナリオ 3: パブリックサブネットとプライベートサブネット、およびハードウェア VPN アクセスを持つ VPC](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario3.html)」を参照してください。

## OpsWorks スタックスタックの VPC を作成する
<a name="workingstacks-vpc-create-vps"></a>

このセクションでは、サンプル [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) テンプレートを使用して OpsWorks スタックの VPC を作成する方法を示します。このテンプレートは、[OpsWorksVPCtemplates.zip ファイル](samples/OpsWorksVPCtemplates.zip)でダウンロードできます。このトピックで説明するような VPC を手動で作成する方法の詳細については、「[シナリオ 2: パブリックサブネットとプライベートサブネットを持つ VPC](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html)」を参照してください。ルーティングテーブル、セキュリティグループなどを設定する方法の詳細については、サンプルテンプレートを参照してください。

**注記**  
デフォルトでは、 OpsWorks スタックは CIDR 範囲と などのアベイラビリティーゾーンを連結してサブネット名を表示します`10.0.0.1/24 - us-east-1b`。名前を読みやすくするには、**キー**を に設定**Name**し、**値を**サブネット名に設定して、サブネットごとにタグを作成します。 OpsWorks スタックは、サブネット名をデフォルト名に追加します。たとえば、次のプライベートサブネットには [**Name**] が **Private** に設定されたタグがあり、OpsWorks では `10.0.0.1/24 us-east - 1b - Private` のように表示されます。

 CloudFormation コンソールを使用して、わずか数ステップで VPC テンプレートを起動できます。以下の手順では、サンプルテンプレートを使用して、米国東部 (バージニア北部) リージョンに VPC を作成します。テンプレートを使用してその他のリージョンに VPC を作成する方法については、手順の後の[注意](#vpc-note)を参照してください。

**VPC を作成するには**

1. [CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/)を開き、[**米国東部 (バージニア北部)**] リージョンを選択し、[**スタックの作成**] を選びます。

1. [**Select Template**] ページで、[**Upload a template**] を選択します。[OpsWorksVPCtemplates.zip ファイル](samples/OpsWorksVPCtemplates.zip) でダウンロードした`OpsWorksinVPC.template`ファイルを閲覧し、**続行**を選択します。  
![\[CloudFormation Select Template ページ\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/vpc_create_vpc.png)

   このスタックを起動するには、[AWS CloudFormation サンプルテンプレート](https://aws.amazon.com/cloudformation/aws-cloudformation-templates/)を開き、 OpsWorks スタック VPC テンプレートを見つけ、**起動スタック**を選択します。

1. [**Specify Parameters (パラメータを指定)**] ページで、デフォルトの値をそのまま使用して、[**Continue (続行)**] を選択します。

1. **[Add Tags]** (タグの追加) ページで、**[Key]** (キー) を **Name** に、**[Value]** (値) を VPC 名に設定してタグを作成します。このタグを使用すると、スタックスタックの作成時に VPC OpsWorks を識別しやすくなります。

1. [**Continue (続行)**] を選択し、[**Close (閉じる)**] を選択して、スタックを起動します。

<a name="vpc-note"></a>**注意: **次のいずれかの方法で、その他のリージョンに VPC を作成できます。
+ [「異なるリージョンでテンプレートを使用する](https://aws.amazon.com/cloudformation/aws-cloudformation-templates/#regions)」に移動し、適切なリージョンを選択し、 OpsWorks スタック VPC テンプレートを見つけ、**「スタックを起動**する」を選択します。
+ テンプレートファイルをシステムにコピーし、[CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/)で適切なリージョンを選択し、[**スタックの作成**] ウィザードの [**テンプレートを Amazon S3 へのアップロード**] オプションを使用して、システムからテンプレートをアップロードします。

サンプルテンプレートには、スタックスタックの作成に必要な VPC、サブネット、ロードバランサー IDs OpsWorks を提供する出力が含まれています。 CloudFormation コンソールウィンドウの下部にある**出力**タブを選択すると、それらを表示できます。

![\[Stack outputs table showing VPC, subnet, and load balancer IDs for OpsWorks-in-VPC stack.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/vpc_cfn_outputs.png)
