

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

# VPC 内で Amazon OpenSearch Service ドメインを起動する
<a name="vpc"></a>

Amazon OpenSearch Service ドメインなどの AWS リソースを *Virtual Private Cloud* (VPC) で起動できます。VPC は、 専用の仮想ネットワークです AWS アカウント。クラウド内の他の仮想ネットワークから論理的に分離されています AWS 。OpenSearch Service ドメインを VPC に配置すると、インターネットゲートウェイ、NAT デバイスや VPN 接続なしで、OpenSearch Service と他のサービス間に VPC 内で安全な通信ができるようになります。すべてのトラフィックは AWS クラウド内に安全に保持されます。

**注記**  
OpenSearch Service ドメインを VPC 内に配置する場合、コンピュータが VPC に接続できる必要があります。多くの場合、この接続では、VPN、Transit Gateway、マネージド型のネットワーク、またはプロキシサーバーを使用します。VPC の外部からドメインに直接アクセスすることはできません。

## VPC 対パブリックドメイン
<a name="vpc-comparison"></a>

以下に、VPC ドメインとパブリックドメインの違いを示します。それぞれの違いについては、後半で説明します。
+ 論理的な隔離により、VPC 内に存在するドメインには、パブリックエンドポイントを使用するドメインに比較して、より拡張されたセキュリティレイヤーがあります。
+ パブリックドメインはインターネットに接続されたあらゆるデバイスからアクセスできますが、VPC ドメインには何らかの形式の VPN またはプロキシが必要です。
+ パブリックドメインと比較すると、コンソールに表示される VPC ドメインの情報は少なくなります。具体的には、[**クラスターヘルス**] タブにはシャード情報が含まれておらず、[**インデックス**] タブは存在しません。
+ ドメインエンドポイントは、異なる形式 (`https://search-domain-name` 対 `https://vpc-domain-name`) を取ります。
+ セキュリティグループには IP ベースのアクセス権限ポリシーですでに強化されているため、VPC 内に存在するドメインに IP ベースのアクセス権限ポリシーを適用することはできません。

## 制限事項
<a name="vpc-limitations"></a>

VPC 内の OpenSearch Service ドメイン運用には次の制限があります。
+ VPC 内に新規ドメインを起動する場合、後でパブリックエンドポイントの使用に切り替えることはできません。その逆も同じ結果となります。パブリックエンドポイントでドメインを作成する場合、後で VPC に配置することはできません。代わりに、新規のドメインを作成して、データを移行する必要があります。
+ VPC 内でドメインを起動すること、あるいはパブリックエンドポイントを使用することができますが、両方を実行することはできません。ドメイン作成時にどちらかを選択する必要があります。
+ 専有テナントを使用している VPC 内でドメインを起動することはできません。テナントを [**デフォルト**] に設定した VPC を使用する必要があります。
+ VPC 内にドメインをセットした後で、そのドメインを別の VPC に移動することはできませんが、サブネットとセキュリティグループの設定は変更可能です。
+ VPC 内に存在するドメイン用に OpenSearch Dashboards のデフォルトインストールにアクセスするには、VPC へのアクセスを保持している必要があります。このプロセスはネットワーク構成によって異なりますが、VPN への接続、ネットワークの管理あるいはプロキシサーバーまたは Transit Gateway の使用が必要となる場合がほとんどです。詳細については、「[VPC ドメインのアクセスポリシーについて](#vpc-security)」、「[Amazon VPC ユーザーガイド](https://docs.aws.amazon.com/vpc/latest/userguide/)」および「[Dashboards へのアクセスの制御](dashboards.md#dashboards-access)」を参照してください。

## アーキテクチャ
<a name="vpc-architecture"></a>

VPC をサポートするために、OpenSearch Service はエンドポイントを VPC の 1 つ、2 つ、または 3 つのサブネットに配置します。ドメインに対して[複数のアベイラビリティーゾーン](managedomains-multiaz.md)を有効にする場合、各サブネットは同じリージョンの異なるアベイラビリティーゾーンに存在する必要があります。アベイラビリティーゾーンを 1 つしか使用しない場合、OpenSearch Service は 1 つのサブネットのみにエンドポイントを配置します。

次の図は、1 つのアベイラビリティーゾーンの VPC アーキテクチャを示しています。

![\[VPC architecture showing subnet with security group connecting to OpenSearch Service data nodes.\]](http://docs.aws.amazon.com/ja_jp/opensearch-service/latest/developerguide/images/VPCNoZoneAwareness.png)


次の図は、2 つのアベイラビリティーゾーンの VPC アーキテクチャを示しています。

![\[VPC architecture with two アベイラビリティーゾーン, showing security groups, data nodes, and master nodes.\]](http://docs.aws.amazon.com/ja_jp/opensearch-service/latest/developerguide/images/VPCZoneAwareness.png)


また、OpenSearch Service は各データノード用に VPC 内に *Elastic Network Interface* (ENI) を配置します。OpenSearch Service は、各 ENI にサブネットの IPv4 アドレス範囲内のプライベート IP アドレスを割り当てます。また、このサービスは、IP アドレスにパブリック DNS ホスト名 (これは、ドメインエンドポイントです) も割り当てます。データノード用に適確な IP アドレスでエンドポイント (DNS ホスト名) を解決するために、パブリック DNS サービスを使用する必要があります。
+ VPC が `enableDnsSupport` オプションを `true` (デフォルト値) に設定して Amazon が提供する DNS サーバーを使用する場合、OpenSearch Service エンドポイントの解決は成功します。
+ VPC がプライベート DNS サーバーを使用し、このサーバーが DNS ホスト名を解決するためにパブリック権限の DNS サーバーに到達できる場合にも、OpenSearch Service エンドポイントの解決は成功します。

IP アドレスは変更する可能性があるため、ドメインのエンドポイントを定期的に解決して常に正しいデータノードにアクセスできるようにすることが重要です。DNS 解決間隔を 1 分間に設定することが推奨されます。クライアントを使用している場合には、クライアント側の DNS キャッシュもクリアしていることも確認する必要があります。

### パブリックアクセスから VPC アクセスに移行する
<a name="migrating-public-to-vpc"></a>

ドメインを作成するときは、このドメインがパブリックエンドポイントにあるか、あるいは VPC 内に存在するかを指定します。一度作成すると、選択を別のものに切り替えることはできません。代わりに、新規のドメインを作成して、手動で再度インデックスするか、またはデータを移行する必要があります。スナップショットは、データの移行に便利な手段です。スナップショットの作成と復元の詳細については、「[Amazon OpenSearch Service でのインデックススナップショットの作成](managedomains-snapshots.md)」を参照してください。

### VPC ドメインのアクセスポリシーについて
<a name="vpc-security"></a>

VPC 内に OpenSearch Service ドメインを配置すると、内在する強力なセキュリティ層を提供します。パブリックアクセスのドメインを作成する場合、エンドポイントは次の形式になります。

```
https://search-domain-name-identifier.region.es.amazonaws.com
```

「パブリック」ラベルが示すように、このエンドポイントはすべてのインターネット接続デバイスからアクセスできますが、[このアクセスを制御](ac.md)でき、制御する必要があります。ウェブブラウザでエンドポイントにアクセスするときに `Not Authorized` メッセージを受信することがありますが、リクエストはドメインに届きます。

VPC アクセスを使用してドメインを作成する場合、このエンドポイントはパブリックエンドポイントに*類似*しています。

```
https://vpc-domain-name-identifier.region.es.amazonaws.com
```

ウェブブラウザでエンドポイントにアクセスしようとすると、リクエストがタイムアウトする場合があります。基本的な `GET` リクエストを実行するときでも、コンピューターが VPC に接続していることが必要です。多くの場合、この接続では、VPN、Transit Gateway、マネージド型のネットワーク、またはプロキシサーバーを使用します。使用できるさまざまな形式の詳細については、*Amazon VPC ユーザーガイド*の「[VPC の例](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenarios.html)」を参照してください 。開発に焦点を置いた例については、「[VPC ドメインをテストする](#vpc-test)」を参照してください。

この接続要件に加えて、VPC は[セキュリティグループ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)を使用したドメインへのアクセス管理を可能にします。多くのユースケースでは、このセキュリティ機能の組み合わせで十分となり、ドメインにオープンなアクセスポリシーを安心して適用できます。

オープンなアクセスポリシーで操作することは、インターネット上の誰でも OpenSearch Service ドメインにアクセスできることを意味するものでは*ありません*。むしろこれは、リクエストが OpenSearch Service ドメインに到達し、関連付けられたセキュリティグループがそれを許可することは、ドメインがこのリクエストを受け入れることを意味します。唯一の例外は、きめ細かなアクセスコントロール、または IAM ロールを指定するアクセスポリシーを使用している場合です。これらの状況では、ドメインがリクエストを受信するには、セキュリティグループがそのリクエストを許可し、*そして*このリクエストが有効な認証情報で署名されていることが必要です。

**注記**  
セキュリティグループには IP ベースのアクセス権限ポリシーですでに強化されているため、VPC 内に存在する OpenSearch Service ドメインに IP ベースのアクセス権限ポリシーを適用することはできません。パブリックエンドポイントを使用する場合、IP ベースのポリシーを引き続き利用できます。

### 開始する前に: VPC アクセスの前提条件
<a name="prerequisites-vpc-endpoints"></a>

VPC と新規の OpenSearch Service ドメイン間の接続を有効にするためには、次を実行する必要があります。
+ 「**VPC を作成する**」

  VPC を作成するには、Amazon VPC AWS コンソール、 CLI、またはいずれかの AWS SDKs を使用できます。詳細については、*Amazon VPC ユーザーガイド*の「[VPC の使用](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html)」を参照してください。VPC が既にある場合、このステップは省略できます。
+ **IP アドレスのリザーブ**

  OpenSearch Service は、ネットワークインターフェースを VPC のサブネットに配置することで、VPC をドメインに接続できるようにします。各ネットワークインターフェースは 1 つの IP アドレスに関連付けられます。ネットワークインターフェースのためにサブネットで十分な数の IP アドレスをリザーブする必要があります。詳細については、「[VPC サブネットで IP アドレスをリザーブする](#reserving-ip-vpc-endpoints)」を参照してください。

### VPC ドメインをテストする
<a name="vpc-test"></a>

VPC のセキュリティを強化することで、ドメインへの接続や、基本的なテスト実行を行うことができます。OpenSearch Service VPC ドメインがすでにあり、VPC サーバーを作成しない場合は、次のプロセスをお試しください。

1. ドメインのアクセスポリシーに [**きめ細かなアクセスコントロールのみを使用**] を選択します。この設定は、テスト完了後にいつでも更新できます。

1. OpenSearch Service ドメインと同じ VPC、サブネット、およびセキュリティグループに Amazon Linux Amazon EC2 インスタンスを作成します。

   このインスタンスはテストを目的としており、必要な作業はわずかであるため、安価なインスタンスタイプ (例: `t2.micro`) を選択します。インスタンスにパブリック IP アドレスを割り当てたら、新しいキーペアを作成するか、既存のキーペアを選択します。新しいキーを作成する場合は、`~/.ssh` ディレクトリにダウンロードします。

   インスタンス作成の詳細については、「[Amazon EC2 Linux インスタンスの開始方法](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)」を参照してください。

1. [インターネットゲートウェイ](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html)を VPC に追加します。

1. VPC の[ルートテーブル](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html)で、新しいルートを追加します。[**送信先**] で、コンピュータのパブリック IP アドレスを含む [CIDR ブロック](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#IPv4_CIDR_blocks)を指定します。[**ターゲット**] で、先ほど作成したインターネットゲートウェイを指定します。

   たとえば、コンピュータが 1 つのみの場合は `123.123.123.123/32`、複数の場合には `123.123.123.0/24` を指定します。

1. セキュリティグループで、2 つのインバウンドルールを指定します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/opensearch-service/latest/developerguide/vpc.html)

   最初のルールでは、EC2 インスタンスに SSH 接続できます。2 番目のルールでは、EC2 インスタンスから OpenSearch Service ドメインに HTTPS 経由で通信できるようになります。

1. ターミナルから、次のコマンドを実行します。

   ```
   ssh -i ~/.ssh/your-key.pem ec2-user@your-ec2-instance-public-ip -N -L 9200:vpc-domain-name-identifier.region.es.amazonaws.com:443
   ```

   このコマンドでは、[https://localhost:9200](https://localhost:9200) へのリクエストを EC2 インスタンスから OpenSearch Service ドメインに転送する SSH トンネルが作成されます。コマンドでポート 9200 を指定すると、OpenSearch のローカルインストールがシミュレートされますが、任意のポートを使用します。OpenSearch サービスでは、ポート 80 (HTTP) または 443 (HTTPS) 経由でのみ接続を受け入れます。

   このコマンドではフィードバックは返らず、無限に実行されます。停止するには、`Ctrl + C` を押します。

1. ウェブブラウザで [https://localhost:9200/\$1dashboards/](https://localhost:9200/_plugin/kibana/) に移動します。セキュリティ例外の承認が必要な場合があります。

   [https://localhost:9200](https://localhost:9200)curl[、](https://curl.haxx.se/)Postman[、またはお気に入りのプログラミング言語を使用して、](https://www.getpostman.com/) にリクエストを送信することもできます。
**ヒント**  
証明書の不一致が原因で curl のエラーが発生した場合は、`--insecure` フラグを試してください。

### VPC サブネットで IP アドレスをリザーブする
<a name="reserving-ip-vpc-endpoints"></a>

OpenSearch Service は、ネットワークインターフェイスを VPC の 1 つのサブネット ([複数のアベイラビリティーゾーン](managedomains-multiaz.md)を有効にした場合には VPC の複数のサブネット) に配置することでドメインを VPC に接続します。各ネットワークインターフェースは 1 つの IP アドレスに関連付けられます。OpenSearch Service ドメインを作成する前に、ネットワークインターフェースを対応するために十分な数の IP アドレスを各サブネットで有効にしておく必要があります。

基本的な計算として、各サブネットで OpenSearch Service が予約する IP アドレスの数は、データノードの数に 3 をかけた数をアベイラビリティーゾーンの数で割った数になります。

**例**
+ 3 つのアベイラビリティーゾーンで 1 つのドメインに 9 つのデータノードがある場合、サブネットあたりの IP アドレスの数は、9 x 3 ÷ 3 = 9 になります。
+ 2 つのアベイラビリティーゾーンで 1 つのドメインに 8 つのデータノードがある場合、サブネットあたりの IP アドレスの数は、8 x 3 ÷ 2 = 12 になります。
+ 1 つのアベイラビリティーゾーンで 6 つのドメインに 1 つのデータノードがある場合、サブネットあたりの IP アドレスの数は、6 ｘ 3 ÷ 1 = 18 になります。

ドメインを作成する場合、OpenSearch Service は IP アドレスを予約し、一部をドメインに使用して、残りは [Blue/Green デプロイ](managedomains-configuration-changes.md)用に予約します。Amazon EC2 コンソール の [**ネットワークインターフェース**] セクションからネットワークインターフェースと関連する IP アドレスを表示できます。[**説明**] 列は、ネットワークインターフェイスのどの OpenSearch Service ドメインが関連付けられているかを示しています。

**ヒント**  
OpenSearch Service リザーブド IP アドレス用の専用サブネットを作成することが推奨されます。専用サブネットを使用することで、他のアプリケーションやサービスとの重複を回避でき、将来的にクラスターをスケールする必要が生じた場合に追加の IP アドレスをリザーブできることを確保します。詳細については、「[VPC でサブネットを作成する](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)」を参照してください。

VPC ドメインに必要なプライベート IP アドレス予約の数を減らすために、専用コーディネーターノードのプロビジョニングを検討することもできます。OpenSearch は、データノードではなく、専用コーディネーターノードに Elastic Network Interface (ENI) をアタッチします。専用コーディネーターノードは通常、データノード全体の約 10% を表します。その結果、VPC ドメイン用に予約されるプライベート IP アドレスの数が少なくなります。

### VPC アクセス用のサービスにリンクされたロール
<a name="enabling-slr"></a>

[サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)は、サービスに権限を委任する一意のタイプの IAM ロールであり、ユーザーに代わってリソースを作成して管理できます。OpenSearch Service には、VPC にアクセスし、ドメインのエンドポイントを作成し、VPC のサブネットにネットワークインターフェースを配置するために、サービスにリンクされたロールが必要です。

OpenSearch サービスコンソールを使用して VPC 内にドメインを作成する場合、OpenSearch Service は自動的にこのロールを作成します。この自動作成を成功させるには、`iam:CreateServiceLinkedRole` アクションへのアクセス許可が必要です。詳細については、*IAM ユーザーガイド* の「[サービスにリンクされたロールの許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)」を参照してください。

OpenSearch Service がロールを作成すると、IAM コンソールを使用してこのロールを表示することができます (`AWSServiceRoleForAmazonOpenSearchService`)。

このロールのアクセス権限およびその削除方法の詳細については、「[Amazon OpenSearch Service 用のサービスにリンクされたロールの使用](slr.md)」を参照してください。