「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
Amazon Elasticsearch Service ドメインの作成と管理
この章では、Amazon Elasticsearch Service (Amazon ES) ドメインを作成および管理する方法について説明します。Amazon ES ドメインは、Elasticsearch クラスターと同義です。ドメインは、指定した設定、インスタンスタイプ、インスタンス数、およびストレージリソースを含むクラスターです。
開始方法チュートリアルの簡単な手順とは異なり、この章ではすべてのオプションについて説明し、関連するリファレンス情報を提供します。コンソール、Amazon ES (AWS Command Line Interface)、または AWS AWS CLI の手順を使用して各手順を完了できます。SDKs
Amazon ES ドメインの作成
このセクションでは、Amazon ES コンソールを使用するか、AWS CLI で create-elasticsearch-domain
コマンドを使用して Amazon ES ドメインを作成する方法について説明します。
Amazon ES ドメイン (コンソール) の作成
次の手順に従って、コンソールを使用することで Amazon ES ドメインを作成します。
Amazon ES ドメイン (コンソール) を作成するには
-
https://aws.amazon.com
にアクセスし、[Sign In to the Console] を選択します。 -
[分析] で、[Elasticsearch Service] を選択します。
-
[Create a new domain (新しいドメインの作成)] を選択します。
-
[デプロイタイプの選択] で、ドメインの目的に最も一致するオプションを選択します。
-
[本番稼働用] ドメインでは、マルチ AZ と専用マスターノードが使用されます。可用性を高めるために使用します。
-
[開発およびテスト] ドメインでは、単一のアベイラビリティーゾーンが使用されます。
-
[カスタム] ドメインでは、すべての設定オプションから選択できます。
重要 デプロイタイプが異なると、後続のページのオプションが異なります。これらの手順には、すべてのオプション (カスタムデプロイタイプ) が含まれます。
-
-
[Elasticsearch のバージョン] では、最新バージョンの選択をお勧めします。詳細については、「サポートされる Elasticsearch バージョン」を参照してください。
-
[次へ] を選択します。
-
[Elasticsearch ドメイン名] に、ドメイン名を入力します。名前は次の基準を満たしている必要があります。
-
アカウントおよびリージョンに固有
-
先頭が小文字
-
3 ~ 28 文字
-
小文字の a ~ z、0 ~ 9 の数字、ハイフン (-) のみ含まれる
-
-
の標準エンドポイントではなくカスタムエンドポイントを使用する場合は、[Enable custom endpoint (カスタムエンドポイントを有効にする)] を選択します。
https://search-
次に、名前と証明書を入力します。詳細については、「カスタムエンドポイントの作成」を参照してください。mydomain
-1a2a3a4a5a6a7a8a9a0a9a8a7a
.us-east-1
.es.amazonaws.com -
[アベイラビリティーゾーン] で、[1-AZ]、[2-AZ]、または [3-AZ] を選択します。詳細については、「マルチ AZ ドメインの設定」を参照してください。
-
[インスタンスタイプ] で、データノードのインスタンスタイプを選択します。詳細については、「サポートされるインスタンスタイプ」を参照してください。
注記 すべてのアベイラビリティーゾーンですべてのインスタンスタイプがサポートされているわけではありません。[3-AZ] を選択した場合、R5 や I3 など、現行世代のインスタンスタイプの選択が推奨されます。
-
[Number of nodes (ノードの数)] で、データノードの数を選択します。
最大値については、「クラスターとインスタンスの制限」を参照してください。単一ノードのクラスターは、開発とテスト用に適切ですが、本稼働のワークロードには使用しないでください。ガイダンスについては、「Amazon ES ドメインのサイジング」および「マルチ AZ ドメインの設定」を参照してください。
-
[Data nodes storage type (データノードストレージタイプ)] で、[Instance (インスタンス)] (デフォルト) または [EBS] を選択します。
特に大きなドメインを作成する際のガイダンスについては、「ペタバイト規模」を参照してください。[EBS] を選択した場合、以下のオプションが表示されます。
-
[EBS volume type (EBS ボリュームタイプ)] で、EBS ボリュームタイプを選択します。
EBS ボリュームタイプに [Provisioned IOPS (SSD) (プロビジョンド IOPS (SSD))] を選択した場合、[Provisioned IOPS (プロビジョンド IOPS)] に必要なベースライン IOPS パフォーマンスを入力します。詳細については、 のドキュメントの「Amazon EBS ボリュームAmazon EC2」を参照してください。
-
[EBS storage size per node (ノードごとの EBS ストレージサイズ)] に、各データノードにアタッチする EBS ボリュームのサイズを入力します。
[EBS volume size (EBS ボリュームサイズ)] はノードあたりのサイズです。Amazon ES ドメインの合計クラスターサイズは、データノードの数を EBS ボリュームサイズで乗算して計算できます。EBS ボリュームの最小サイズと最大サイズは、指定された EBS ボリュームタイプとそれがアタッチされるインスタンスタイプの両方によって異なります。詳細については、「EBS ボリュームサイズの制限」を参照してください。
-
-
(オプション) 専用マスターノードを有効または無効にします。専用マスターノードは、クラスターの安定性を高めます。また、インスタンス数が 10 を超えるドメインに必要です。本番稼働用ドメインには、3 つの専用マスターノードをお勧めします。
注記 専用マスターノードおよびデータノードの異なるインスタンスタイプを選択できます。たとえば、データノードの汎用またはストレージ最適化インスタンスを選択できますが、専用マスターノードのコンピューティング最適化インスタンスは選択できません。
-
(オプション) UltraWarm ストレージを有効にするには、[ データノードの有効化UltraWarm] を選択します。各インスタンスタイプには、アドレス可能なストレージの最大容量があります。この量に、アドレス可能なウォームストレージの合計のウォームデータノードの数を乗算します。
-
(オプション) Elasticsearch 5.3 以降を実行しているドメインの場合、[Automated snapshot start hour (自動スナップショット開始時刻)] は実行されません。自動化されたスナップショットの詳細については、「Amazon Elasticsearch Service インデックススナップショットの使用」を参照してください。
-
(オプション) [オプションの Elasticsearch クラスター設定] を選択します。これらのオプションの概要については、「詳細オプション」を参照してください。
-
[次へ] を選択します。
-
[Network configuration (ネットワーク設定)] セクションで、[VPC access (VPC アクセス)] あるいは [Public access (パブリックアクセス)] のどちらかを選択します。[パブリックアクセス] を選択した場合は、次のステップに進みます。[VPC access (VPC アクセス)] を選択する場合、前提条件を満たしていることを確認してから、次の操作を行います。
-
[VPC] では、使用する VPC の ID を選択します。
注記 VPC とドメインが同じ AWS リージョンに存在している必要があり、テナントが [Default] に設定されている VPC を選択する必要があります。Amazon ES は専有テナントを使用する VPCs をまだサポートしていません。
-
[Subnet (サブネット)] では、1 個のサブネットを選択します。マルチ AZ を有効にした場合は、2 個または 3 個のサブネットを選択する必要があります。Amazon ES は VPC エンドポイントと Elastic Network Interfaces を複数のサブネットに配置します。
注記 1 個のサブネット (または複数のサブネット) のネットワークインターフェースにで十分な IP アドレスをリザーブする必要があります。詳細については、「VPC サブネットで IP アドレスをリザーブする」を参照してください。
-
[Security groups (セキュリティグループ)] で、Amazon ES ドメインにアクセスするために必要な VPC セキュリティグループを選択します。詳細については、「Amazon Elasticsearch Service ドメインの VPC サポート」を参照してください。
-
[IAM role (IAM ロール)] は、デフォルトロールのままにしておきます。Amazon ES では、この事前定義されたロール (サービスにリンクされたロールとも呼ばれる) を使用して VPC にアクセスし、VPC のサブネットに VPC エンドポイントとネットワークインターフェースを配置します。詳細については、「VPC アクセス用のサービスにリンクされたロール」を参照してください。
-
-
[きめ細かなアクセスコントロール] セクションで、きめ細かなアクセスコントロールを有効または無効にします。
-
ユーザー管理に IAM を使用する場合は、[Set IAM role as master user (IAM ロールをマスターユーザーとして設定)] を選択し、IAM ロールの ARN を指定します。
-
内部ユーザーデータベースを使用する場合は、[Create a master user] を選択し、ユーザー名とパスワードを指定します。
どのオプションを選択しても、マスターユーザーはクラスター内のすべてのインデックスとすべての Elasticsearch APIs にアクセスできます。 選択するオプションのガイダンスについては、「主要なコンセプト」を参照してください。
きめ細かなアクセスコントロールを無効にしても、ドメインを VPC 内に配置するか、制限付きアクセスポリシーを適用するか、またはその両方を行うことで、ドメインへのアクセスをコントロールできます。きめ細かなアクセスコントロールを使用するには、ノード間の暗号化と保存時の暗号化を有効にする必要があります。
-
-
(オプション) Kibana に SAML 認証を使用する場合は、[Prepare SAML authentication (SAML 認証の準備)] を選択します。ドメインが利用可能になったら、追加のステップについて「Kibana の SAML 認証」を参照してください。
-
(オプション) Kibana に Amazon Cognito 認証を使用する場合は、[ 認証の有効化Amazon Cognito] を選択します。
-
Kibana 認証に使用する Amazon Cognito ユーザープールと ID プールを選択します。これらのリソースの作成のガイダンスについては、「Kibana の Amazon Cognito 認証」を参照してください。
-
-
[Domain access policy (ドメインアクセスポリシー)] で、必要な ARNs または IP アドレスを追加するか、ドロップダウンリストから事前設定されたポリシーを選択します。詳細については、「Amazon Elasticsearch Service の Identity and Access Management」および「VPC ドメインのアクセスポリシーについて」を参照してください。
注記 ステップ 18 で [VPC access (VPC アクセス)] を選択した場合、IP ベースのポリシーは禁止されます。代わりに、どの IP アドレスがドメインにアクセスできるかを制御するセキュリティグループを使用できます。詳細については、「VPC ドメインのアクセスポリシーについて」を参照してください。
-
(オプション) ドメインへのすべてのリクエストが HTTPS 経由で到着することを要求するには、[Require HTTPS for all traffic to the domain (ドメインへのすべてのトラフィックに HTTPS が必要)] チェックボックスをオンにします。
-
(オプション) ノード間の暗号化を有効にするには、[ノード間の暗号化] チェックボックスをオンにします。詳細については、「Amazon Elasticsearch Service のノード間の暗号化」を参照してください。
-
(オプション) 保管時のデータの暗号化を有効にするには、[保管時のデータの暗号化の有効化] チェックボックスをオンにします。
ユーザーに代わって に KMS 暗号化キーを作成させる (あるいは、すでに作成されている場合) には、[(デフォルト) aws/esAmazon ES] を選択します。そうでない場合は、[KMS master key (KMS マスターキー)] メニューから独自の KMS 暗号化キーを選択します。詳細については、「Amazon Elasticsearch Service の保管時のデータの暗号化」を参照してください。
-
[次へ] を選択します。
-
[Review (レビュー)] ページで、ドメイン設定を確認し、[Confirm (確認)] を選択します。
Amazon ES ドメインの作成 (AWS CLI)
コンソールを使用して Amazon ES ドメインを作成する代わりに、AWS CLI を使用できます。構文については、Amazon Elasticsearch ServiceAWS CLI コマンドリファレンスの「」を参照してください。
コマンド例
この最初の例は、以下の Amazon ES ドメイン設定を示しています。
-
Elasticsearch バージョン 5.5 を使用して、mylogs という名前の Amazon ES ドメインを作成します。
-
m4.large.elasticsearch
インスタンスタイプの 2 つのインスタンスをドメインに追加する -
各データノードのストレージに 100 個の GiB 磁気ディスクの EBS ボリュームを使用する
-
単一の IP アドレスからのみ匿名アクセスを許可します。192.0.2.0/32
aws es create-elasticsearch-domain --domain-name mylogs --elasticsearch-version 5.5 --elasticsearch-cluster-config InstanceType=m4.large.elasticsearch,InstanceCount=2 --ebs-options EBSEnabled=true,VolumeType=standard,VolumeSize=100 --access-policies '{"Version": "2012-10-17", "Statement": [{"Action": "es:*", "Principal":"*","Effect": "Allow", "Condition": {"IpAddress":{"aws:SourceIp":["192.0.2.0/32"]}}}]}'
次の例は、以下の Amazon ES ドメイン設定を示しています。
-
Elasticsearch バージョン 5.5 を使用して、mylogs という名前の Amazon ES ドメインを作成します。
-
m4.large.elasticsearch
インスタンスタイプの 6 つのインスタンスをドメインに追加する -
各データノードのストレージに 100 個の GiB 汎用 (SSD) EBS ボリュームを使用する
-
サービスへのアクセスを、ユーザーの AWS アカウント ID によって識別される単一のユーザーに制限する: 555555555555
-
3 つのアベイラビリティーゾーンへのインスタンスの分散
aws es create-elasticsearch-domain --domain-name mylogs --elasticsearch-version 5.5 --elasticsearch-cluster-config InstanceType=m4.large.elasticsearch,InstanceCount=6,ZoneAwarenessEnabled=true,ZoneAwarenessConfig={AvailabilityZoneCount=3} --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=100 --access-policies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::555555555555:root" }, "Action":"es:*", "Resource": "arn:aws:es:us-east-1:555555555555:domain/mylogs/*" } ] }'
次の例は、以下の Amazon ES ドメイン設定を示しています。
-
Elasticsearch バージョン 5.5 を使用して、mylogs という名前の Amazon ES ドメインを作成します。
-
m4.xlarge.elasticsearch
インスタンスタイプの 10 個のインスタンスをドメインに追加する -
専用マスターノードとして機能する
m4.large.elasticsearch
インスタンスタイプの 3 つのインスタンスをドメインに追加する -
ストレージに 100 個の GiB プロビジョンド IOPS EBS ボリュームを使用し、各データノードに 1000 個の IOPS のベースラインパフォーマンスを設定する
-
アクセスを単一のユーザーと単一のサブリソース
_search
API に制限する
aws es create-elasticsearch-domain --domain-name mylogs --elasticsearch-version 5.5 --elasticsearch-cluster-config InstanceType=m4.xlarge.elasticsearch,InstanceCount=10,DedicatedMasterEnabled=true,DedicatedMasterType=m4.large.elasticsearch,DedicatedMasterCount=3 --ebs-options EBSEnabled=true,VolumeType=io1,VolumeSize=100,Iops=1000 --access-policies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::555555555555:root" }, "Action": "es:*", "Resource": "arn:aws:es:us-east-1:555555555555:domain/mylogs/_search" } ] }'
Amazon ES ドメインを作成する際に、同じ名前のドメインが既に存在しても、CLI からエラーは報告されません。その代わりに、既存ドメインの詳細が返されます。
ドメインの作成 (AWS Amazon ES)SDKs
AWS SDKs では (Android および iOS SDKs を除く)、 も含めて、Amazon ES 設定 API リファレンスCreateElasticsearchDomain
で定義されたすべてのアクションがサポートされています。 サンプルコードについては、「Amazon Elasticsearch Service での AWS SDK の使用」を参照してください。AWS SDKs のインストールと使用の詳細については、「AWS Software Development Kits
アクセス ポリシーの設定
Amazon Elasticsearch Service には、Amazon ES ドメインへのアクセスを設定するいくつかの方法が用意されています。詳細については、「Amazon Elasticsearch Service の Identity and Access Management」および「Amazon Elasticsearch Service でのきめ細かなアクセスコントロール」を参照してください。
コンソールは、ドメインの特定のニーズに対応してカスタマイズできる事前定義のアクセスポリシーを提供します。ほかの Amazon ES ドメインからアクセスポリシーをインポートすることもできます。上記のアクセスポリシーが VPC アクセスを操作する方法についての詳細は、「VPC ドメインのアクセスポリシーについて」を参照してください。
アクセスポリシーを設定するには (コンソール)
-
https://aws.amazon.com
にアクセスし、[Sign In to the Console] を選択します。 -
[分析] で、[Elasticsearch Service] を選択します。
-
ナビゲーションペインの [My domains (マイドメイン)] で、更新するドメインを選択します。
-
[Actions (アクション)]、[Modify access policy (アクセスポリシーの変更)] の順に選択します。
-
アクセスポリシーの JSON を編集するか、ドロップダウンリストを使用して事前設定済みのオプションを選択します。
-
[Submit] を選択します。
詳細オプション
詳細オプションを使用して、次のように設定します。
- rest.action.multi.allow_explicit_index
-
HTTP リクエストボディ中で、インデックスへの明示参照を許可するかどうかを指定します。このプロパティを
false
に設定すると、ユーザーがサブリソースのアクセスコントロールをバイパスできなくなります。デフォルトでは、値はtrue
です。 詳細については、「詳細オプションと API に関する考慮事項」を参照してください。 - indices.fielddata.cache.size
-
フィールドデータに割り当てられる Java ヒープスペースの割合を指定します。デフォルトでは、この設定は JVM ヒープの 20% です。
注記 多くのお客様が、ローテーションするインデックスのクエリを毎日実行しています。これらのユースケースのほとんどで、JVM ヒープの 40% に設定された
indices.fielddata.cache.size
でベンチマークテストを開始することをお勧めします。非常に大きいインデックスの場合、大きなフィールドデータキャッシュが必要になることがあります。 - indices.query.bool.max_clause_count
-
Lucene のブールクエリで許可される句の最大数を指定します。デフォルト値は 1,024 です。クエリに含まれる句の数が最大数を超えていると、
TooManyClauses
エラーが発生します。詳細については、Lucene のドキュメントを参照してください。