

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

# AWS PrivateLink の開始方法
<a name="getting-started"></a>

このチュートリアルでは、AWS PrivateLink を使用してプライベートサブネット内の EC2 インスタンスから Amazon CloudWatch にリクエストを送信する方法を示します。

次の図は、このシナリオの概要を示しています。コンピュータからプライベートサブネットのインスタンスに接続するには、まずパブリックサブネットの踏み台ホストに接続します。踏み台ホストとインスタンスの両方で同じキーペアを使用する必要があります。プライベートキーの `.pem` ファイルが踏み台ホストではなくコンピュータに存在するため、SSH キー転送を使用します。これで、**ssh** コマンドで `.pem` ファイルを指定しなくても、踏み台ホストからインスタンスに接続できます。CloudWatch 用の VPC エンドポイントを設定すると、CloudWatch を宛先とするインスタンスからのトラフィックはエンドポイントのネットワークインターフェイスに解決され、その後 VPC エンドポイントを使用して CloudWatch に送信されます。

![\[プライベートサブネット内のインスタンスは、VPC エンドポイントを使用して CloudWatch にアクセスします。\]](http://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/images/getting-started.png)


テスト目的で、1 つのアベイラビリティーゾーンを使用できます。本番環境では、低レイテンシーと高可用性を得るために少なくとも 2 つのアベイラビリティーゾーンを使用することをお勧めします。

**Topics**
+ [ステップ 1: サブネットを持つ VPC を作成する](#create-vpc-subnets)
+ [ステップ 2: インスタンスを起動する](#launch-instances)
+ [ステップ 3: CloudWatch へのアクセスをテストする](#test-cloudwatch-access)
+ [ステップ 4: CloudWatch にアクセスするための VPC エンドポイントを作成する](#create-vpc-endpoint-cloudwatch)
+ [ステップ 5: VPC エンドポイントをテストする](#test-vpc-endpoint)
+ [ステップ 6: クリーンアップする](#clean-up)

## ステップ 1: サブネットを持つ VPC を作成する
<a name="create-vpc-subnets"></a>

次の手順を使用して、パブリックサブネットとプライベートサブネットを持つ VPC を作成します。

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

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

1. **[Create VPC（VPC の作成）]** を選択します。

1. **[Resources to create]** (作成するリソース) で、**[VPC and more]** (VPC など) を選択します。

1. [**名前タグの自動生成**] に、VPC の名前を入力します。

1. サブネットを設定するには、次の操作を行います。

   1. [**アベイラビリティーゾーンの数**] で、ニーズに応じて [**1**] または [**2**] を選択します。

   1. [**パブリックサブネットの数**] で、アベイラビリティーゾーンごとに 1 つのパブリックサブネットがあることを確認します。

   1. **[Number of private subnets]** (プライベートサブネットの数) で、アベイラビリティーゾーンごとに 1 つのプライベートサブネットがあることを確認します。

1. **[Create VPC（VPC の作成）]** を選択します。

## ステップ 2: インスタンスを起動する
<a name="launch-instances"></a>

前のステップで作成した VPC を使用して、パブリックサブネットの踏み台ホストとプライベートサブネットのインスタンスを起動します。

**前提条件**
+ **.pem** 形式を使用してキーペアを作成します。踏み台ホストとインスタンスの両方を起動するときに、このキーペアを選択する必要があります。
+ コンピュータの CIDR ブロックからのインバウンド SSH トラフィックを許可するセキュリティグループを、踏み台ホストに作成します。
+ 踏み台ホストのセキュリティグループからのインバウンド SSH トラフィックを許可するセキュリティグループを、インスタンスに作成します。
+ IAM インスタンスプロファイルを作成し、**CloudWatchReadOnlyAccess** ポリシーをアタッチします。

**踏み台ホストを起動するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. **[インスタンスを起動]** を選択してください。

1. **[Name]** (名前) に、踏み台ホストの名前を入力します。

1. デフォルトのイメージおよびインスタンスタイプを維持します。

1. **[Key pair]** (キーペア) で、キーペアを選択します。

1. **[Network settings]** (ネットワーク設定) で、次の操作を行います。

   1. [**VPC**] で、ユーザーの VPC を選択します。

   1. **[Subnet]** (サブネット) で、パブリックサブネットを選択します。

   1. **[Auto-assign public IP]** (パブリック IP の自動割り当て) で、**[Enable]** (有効化) を選択します。

   1. **[Firewall]** (ファイアウォール) で **[Select existing security group]** (既存のセキュリティグループの選択) を選択してから、踏み台ホストのセキュリティグループを選択します。

1. **[インスタンスを起動]** を選択してください。

**インスタンスを起動するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. **[インスタンスを起動]** を選択してください。

1. **[Name]** (名前) に、インスタンスの名前を入力します。

1. デフォルトのイメージおよびインスタンスタイプを維持します。

1. **[Key pair]** (キーペア) で、キーペアを選択します。

1. **[Network settings]** (ネットワーク設定) で、次の操作を行います。

   1. [**VPC**] で、ユーザーの VPC を選択します。

   1. **[Subnet]** (サブネット) で、プライベートサブネットを選択します。

   1. **[Auto-assign public IP]** (パブリック IP の自動割り当て) で、**[Disable]** (無効化) を選択します。

   1. **[Firewall]** (ファイアウォール) で **[Select existing security group]** (既存のセキュリティグループの選択) を選択してから、インスタンスのセキュリティグループを選択します。

1. **[Advanced Details]** (高度な詳細) を展開します。**[IAM instance profile]** (IAM インスタンスプロファイル) で、IAM インスタンスプロファイルを選択します。

1. **[インスタンスを起動]** を選択してください。

## ステップ 3: CloudWatch へのアクセスをテストする
<a name="test-cloudwatch-access"></a>

次の手順を使用して、インスタンスが CloudWatch にアクセスできないことを確認します。そのためには、CloudWatch の読み取り専用 AWS CLI コマンドを使用します。

**CloudWatch へのアクセスをテストするには**

1. コンピュータから、次のコマンドを使用してキーペアを SSH エージェントに追加します。ここで、*key.pem* は.pem ファイルの名前です。

   ```
   ssh-add ./key.pem
   ```

   キーペアのアクセス許可が開放しすぎているいうエラーが表示された場合は、次のコマンドを実行してから、前のコマンドを再試行してください。

   ```
   chmod 400 ./key.pem
   ```

1. コンピュータから踏み台ホストに接続します。`-A` オプション、インスタンスユーザー名 (例: `ec2-user`)、および踏み台ホストのパブリック IP アドレスを指定する必要があります。

   ```
   ssh -A ec2-user@bastion-public-ip-address
   ```

1. 踏み台ホストからインスタンスに接続します。インスタンスユーザー名 (例: `ec2-user`) とインスタンスのプライベート IP アドレスを指定する必要があります。

   ```
   ssh ec2-user@instance-private-ip-address
   ```

1. 次のように、インスタンスで CloudWatch のコマンド [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) を実行します。`--region` オプションで、VPC を作成したリージョンを指定します。

   ```
   aws cloudwatch list-metrics --namespace AWS/EC2 --region us-east-1
   ```

1. 数分後、コマンドはタイムアウトします。これは、現在の VPC 設定が適用されたインスタンスから CloudWatch にアクセスできないことを示しています。

   ```
   Connect timeout on endpoint URL: https://monitoring.us-east-1.amazonaws.com/
   ```

1. インスタンスへの接続を維持します。VPC エンドポイントを作成したら、この **list-metrics** コマンドをもう一度試します。

## ステップ 4: CloudWatch にアクセスするための VPC エンドポイントを作成する
<a name="create-vpc-endpoint-cloudwatch"></a>

次の手順を使用して、CloudWatch に接続する VPC エンドポイントを作成します。

**前提条件**  
CloudWatch にトラフィックを許可するセキュリティグループを VPC エンドポイントに作成します。例えば、VPC CIDR ブロックからの HTTPS トラフィックを許可するルールを追加します。

**CloudWatch 用の VPC エンドポイントを作成するには**

1. Amazon VPC コンソール ([https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)) を開きます。

1. ナビゲーションペインで、**[Endpoints]** (エンドポイント) を選択します。

1. **[エンドポイントの作成]** を選択します。

1. **[Name tag]** (名前タグ) に、エンドポイントの名前を入力します。

1. **[Service category]** (サービスカテゴリ) で、**AWS のサービス** を選択します。

1. **[Service]** (サービス) で、**com.amazonaws.*region*.monitoring** を選択します。

1. [**VPC**] で、自分の VPC を選択します。

1. **[Subnets]** (サブネット) で、アベイラビリティーゾーンを選択してから、プライベートサブネットを選択します。

1. **[Security group]** (セキュリティグループ) で、VPC エンドポイントのセキュリティグループを選択します。

1. **[Policy]** (ポリシー) で **[Full access]** (フルアクセス) を選択して、すべてのリソースに対するすべてのプリンシパルによる VPC エンドポイント経由のすべてのオペレーションを許可します。

1. (オプション) タグを追加するには、[**新しいタグを追加**] を選択し、そのタグのキーと値を入力してください。

1. **[エンドポイントの作成]** を選択します。初期ステータスは、**Pending** です。次のステップに進む前に、ステータスが **Available** になるまで待機します。これは数分かかることがあります。

## ステップ 5: VPC エンドポイントをテストする
<a name="test-vpc-endpoint"></a>

VPC エンドポイントで、インスタンスからのリクエストが CloudWatch に送信されていることを確認します。

**VPC エンドポイントをテストするには**  
インスタンスで次のコマンドを実行します。`--region` オプションで、VPC エンドポイントを作成したリージョンを指定します。

```
aws cloudwatch list-metrics --namespace AWS/EC2 --region us-east-1
```

レスポンスを受け取った場合は、それが空の結果であっても AWS PrivateLink を使用して CloudWatch に接続します。

`UnauthorizedOperation` エラーが表示された場合は、インスタンスに CloudWatch へのアクセスを許可する IAM ロールがあることを確認します。

リクエストがタイムアウトした場合は、次の点を確認してください。
+ エンドポイントのセキュリティグループによって、CloudWatch へのトラフィックが許可されている。
+ `--region` オプションで、VPC エンドポイントを作成したリージョンが指定されている。

## ステップ 6: クリーンアップする
<a name="clean-up"></a>

このチュートリアルで作成した踏み台ホストとインスタンスが不要になった場合は、終了させることができます。

**インスタンスを終了するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. ナビゲーションペインで、**[インスタンス]** を選択します。

1. 両方のテストインスタンスを選択し、**[インスタンスの状態]**、**[インスタンスの終了]** の順に選択します。

1. 確認を求めるメッセージが表示されたら、**[終了]** を選択します。

VPC エンドポイントが不要になった場合は、削除できます。

**VPC エンドポイントを削除するには**

1. Amazon VPC コンソール ([https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)) を開きます。

1. ナビゲーションペインで、**[Endpoints]** (エンドポイント) を選択します。

1. VPC エンドポイントを選択します。

1. **[アクション** 、**[VPC エンドポイントを削除]** の順に選択してください。

1. 確認を求められたら、**delete**と入力し、[**削除**] を選択します。