VPC 内で Amazon OpenSearch Service ドメインを起動する - Amazon OpenSearch サービス

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

VPC 内で Amazon OpenSearch Service ドメインを起動する

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

注記

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

VPC 対パブリックドメイン

以下に、VPC ドメインとパブリックドメインの違いを示します。それぞれの違いについては、後半で説明します。

  • 論理的な隔離により、VPC 内に存在するドメインには、パブリックエンドポイントを使用するドメインに比較して、より拡張されたセキュリティレイヤーがあります。

  • パブリックドメインはインターネットに接続されたあらゆるデバイスからアクセスできますが、VPC ドメインには何らかの形式の VPN またはプロキシが必要です。

  • パブリックドメインと比較すると、コンソールに表示される VPC ドメインの情報は少なくなります。具体的には、[クラスターヘルス] タブにはシャード情報が含まれておらず、[インデックス] タブは存在しません。

  • ドメインエンドポイントは、異なる形式 (https://search-domain-namehttps://vpc-domain-name) を取ります。

  • セキュリティグループには IP ベースのアクセス権限ポリシーですでに強化されているため、VPC 内に存在するドメインに IP ベースのアクセス権限ポリシーを適用することはできません。

制限事項

VPC 内の OpenSearch サービスドメインの運用には、次の制限があります。

  • VPC 内に新規ドメインを起動する場合、後でパブリックエンドポイントの使用に切り替えることはできません。その逆も同じ結果となります。パブリックエンドポイントでドメインを作成する場合、後で VPC に配置することはできません。代わりに、新規のドメインを作成して、データを移行する必要があります。

  • VPC 内でドメインを起動すること、あるいはパブリックエンドポイントを使用することができますが、両方を実行することはできません。ドメイン作成時にどちらかを選択する必要があります。

  • 専有テナントを使用している VPC 内でドメインを起動することはできません。テナントを [デフォルト] に設定した VPC を使用する必要があります。

  • VPC 内にドメインをセットした後で、そのドメインを別の VPC に移動することはできませんが、サブネットとセキュリティグループの設定は変更可能です。

  • VPC 内に存在するドメインの OpenSearch Dashboards のデフォルトインストールにアクセスするには、ユーザーが VPC にアクセスできる必要があります。このプロセスはネットワーク構成によって異なりますが、VPN への接続、ネットワークの管理あるいはプロキシサーバーまたは Transit Gateway の使用が必要となる場合がほとんどです。詳細については、「VPC ドメインのアクセスポリシーについて」、「Amazon VPC ユーザーガイド」および「 OpenSearch Dashboards へのアクセスの制御」を参照してください。

アーキテクチャ

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

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

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

OpenSearch また、サービスは各データノードの VPC に Elastic Network Interface (ENI) を配置します。 OpenSearch サービスは、サブネットの IPv4 アドレス範囲から各 ENI にプライベート IP アドレスを割り当てます。また、このサービスは、IP アドレスにパブリック DNS ホスト名 (これは、ドメインエンドポイントです) も割り当てます。データノード用に適確な IP アドレスでエンドポイント (DNS ホスト名) を解決するために、パブリック DNS サービスを使用する必要があります。

  • enableDnsSupport オプションを true (デフォルト値) に設定して、VPC が Amazon が提供する DNS サーバーを使用している場合、 OpenSearch サービスエンドポイントの解決は成功します。

  • VPC がプライベート DNS サーバーを使用しており、サーバーがパブリック権限の DNS サーバーに到達して DNS ホスト名を解決できる場合、 OpenSearch サービスエンドポイントの解決も成功します。

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

パブリックアクセスから VPC アクセスに移行する

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

VPC ドメインのアクセスポリシーについて

OpenSearch サービスドメインを VPC に配置すると、本質的に強力なセキュリティレイヤーが提供されます。パブリックアクセスのドメインを作成する場合、エンドポイントは次の形式になります。

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

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

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

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

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

この接続要件に加えて、VPC はセキュリティグループを使用したドメインへのアクセス管理を可能にします。多くのユースケースでは、このセキュリティ機能の組み合わせで十分となり、ドメインにオープンなアクセスポリシーを安心して適用できます。

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

注記

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

開始する前に: VPC アクセスの前提条件

VPC と新しい OpenSearch サービスドメイン間の接続を有効にする前に、以下を実行する必要があります。

  • VPC を作成する

    VPC を作成するには、Amazon VPC コンソール、 AWS CLI、またはいずれかの AWS SDKsを使用できます。詳細については、Amazon VPC ユーザーガイドの「VPC の使用」を参照してください。VPC が既にある場合、このステップは省略できます。

  • IP アドレスのリザーブ

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

VPC ドメインをテストする

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

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

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

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

    インスタンス作成の詳細については、「Amazon EC2 Linux インスタンスの開始方法」を参照してください。

  3. インターネットゲートウェイを VPC に追加します。

  4. VPC のルートテーブルで、新しいルートを追加します。[送信先] で、コンピュータのパブリック IP アドレスを含む CIDR ブロックを指定します。[ターゲット] で、先ほど作成したインターネットゲートウェイを指定します。

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

  5. セキュリティグループで、2 つのインバウンドルールを指定します。

    タイプ プロトコル ポート範囲 ソース
    SSH (22) TCP (6) 22 your-cidr-block
    HTTPS (443) TCP (6) 443 your-security-group-id

    最初のルールでは、EC2 インスタンスに SSH 接続できます。2 つ目は、EC2 インスタンスが HTTPS 経由で OpenSearch サービスドメインと通信できるようにします。

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

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

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

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

  7. ウェブブラウザで https://localhost:9200/_dashboards/ に移動します。セキュリティ例外の承認が必要な場合があります。

    https://localhost:9200curlPostman、またはお気に入りのプログラミング言語を使用して、 にリクエストを送信することもできます。

    ヒント

    証明書の不一致が原因で curl のエラーが発生した場合は、--insecure フラグを試してください。

VPC サブネットで IP アドレスをリザーブする

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

基本的な計算式は次のとおりです。各サブネットで OpenSearch サービスが予約する 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 x 3 ÷ 1 = 18 になります。

ドメインを作成すると、 OpenSearch Service は IP アドレスを予約し、ドメイン用にいくつか を使用し、残りは Blue/Green デプロイ用に予約します。Amazon EC2 コンソール の [ネットワークインターフェース] セクションからネットワークインターフェースと関連する IP アドレスを表示できます。説明列には、ネットワークインターフェイスが関連付けられている OpenSearch サービスドメインが表示されます。

ヒント

OpenSearch サービスの予約済み IP アドレス専用のサブネットを作成することをお勧めします。専用サブネットを使用することで、他のアプリケーションやサービスとの重複を回避でき、将来的にクラスターをスケールする必要が生じた場合に追加の IP アドレスをリザーブできることを確保します。詳細については、「VPC でサブネットを作成する」を参照してください。

VPC アクセス用のサービスにリンクされたロール

サービスにリンクされたロールは、ユーザーに代わってリソースを作成および管理できるように、サービスにアクセス許可を委任する一意のタイプの IAM ロールです。 OpenSearch サービスには、VPC にアクセスし、ドメインエンドポイントを作成し、VPC のサブネットにネットワークインターフェイスを配置するためのサービスにリンクされたロールが必要です。

OpenSearch サービスコンソールを使用して VPC 内にドメインを作成すると、 OpenSearch サービスによってロールが自動的に作成されます。この自動作成を成功させるには、iam:CreateServiceLinkedRole アクションへのアクセス許可が必要です。詳細については、IAM ユーザーガイド の「サービスにリンクされたロールの許可」を参照してください。

OpenSearch サービスがロールを作成したら、IAM コンソールを使用してロール (AWSServiceRoleForAmazonOpenSearchService) を表示できます。

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