AWS CloudFormation
ユーザーガイド (API バージョン 2010-05-15)

AWS::Elasticsearch::Domain

AWS::Elasticsearch::Domain リソースは、Amazon ES エンジンインスタンスをカプセル化する、Amazon Elasticsearch Service (Amazon ES) ドメインを作成します。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

プロパティ

AccessPolicies

Amazon ES ドメインにアクセスできるユーザーとユーザーのアクセス権限を指定する AWS Identity and Access Management (IAM) ポリシードキュメント。詳細については、Amazon Elasticsearch Service 開発者ガイドの「アクセス ポリシーの設定」を参照してください。

必須: いいえ

タイプ: Json

Update requires: No interruption

AdvancedOptions

Amazon ES ドメインに指定する追加のオプション。詳細については、Amazon Elasticsearch Service 開発者ガイドの「詳細オプションの設定」を参照してください。

必須: いいえ

タイプ: 文字列のマップ

Update requires: No interruption

DomainName

Amazon ES ドメインの名前。有効な値については、Amazon Elasticsearch Service 開発者ガイドの「ドメイン名」データ型を参照してください。名前を指定しない場合、AWS CloudFormation は一意の物理 ID を生成し、その ID をドメイン名として使用します。詳細については、Name タイプを参照してください。

重要

名前を指定すると、このリソースの置換が必要な更新はできません。中断が不要であるか、一定の中断が必要な更新であれば、行うことができます。リソースを置き換える必要がある場合は、新しい名前を指定します。

必須: いいえ

タイプ: 文字列

Update requires: Replacement

EBSOptions

Amazon ES ドメインのデータノードにアタッチされる Amazon Elastic Block Store (Amazon EBS) ボリュームの設定。詳細については、Amazon Elasticsearch Service 開発者ガイドの「EBS ベースのストレージの設定」を参照してください。

必須: いいえ

タイプ: EBSOptions

Update requires: No interruption

ElasticsearchClusterConfig

ElasticsearchClusterConfig は、Amazon Elasticsearch Service (Amazon ES) ドメインのクラスターを設定する AWS::Elasticsearch::Domain リソースのプロパティです。

必須: いいえ

タイプ: ElasticsearchClusterConfig

Update requires: No interruption

ElasticsearchVersion

使用する &ES-OPEN; のバージョン。例: 2.3。指定されない場合、デフォルトとして 1.5 が使用されます。Amazon ES サポートするバージョンについては、Amazon Elasticsearch Service 開発者ガイドCreateElasticsearchDomain アクションの Elasticsearch-Version パラメータを参照してください。

必須: いいえ

タイプ: 文字列

Update requires: Replacement

EncryptionAtRestOptions

ドメインでデータを暗号化する必要があるかどうかを指定します。暗号化する場合は、使用する AWS Key Management Service (KMS) キーを指定します。新しいドメインの作成にのみ使用でき、既存のドメインの更新には使用できません。

必須: いいえ

タイプ: EncryptionAtRestOptions

Update requires: Replacement

NodeToNodeEncryptionOptions

ノード間の暗号化が有効かどうかを指定します。

必須: いいえ

タイプ: NodeToNodeEncryptionOptions

Update requires: Replacement

SnapshotOptions

Amazon ES ドメインインデックスの自動スナップショット設定。

必須: いいえ

タイプ: SnapshotOptions

Update requires: No interruption

Tags

Amazon ES ドメインに関連付ける任意のタグのセット(キーと値のペア)。

必須: いいえ

タイプ: Tag のリスト

Update requires: No interruption

VPCOptions

Amazon ES ドメインの Virtual Private Cloud (VPC) 設定。詳細については、Amazon Elasticsearch Service 開発者ガイドの「Amazon Elasticsearch Service ドメインの VPC サポート」を参照してください。

必須: いいえ

タイプ: VPCOptions

Update requires: No interruption

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、参照番号はリソース名 (mystack-elasticsea-abc1d2efg3h4.) を返します。Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。詳細については、「Fn::GetAtt」を参照してください。以下には、利用可能な属性とサンプル戻り値のリストが示されます。

Arn

ドメインの Amazon リソースネーム (ARN) (arn:aws:es:us-west-2:123456789012:domain/mystack-elasti-1ab2cdefghij など)。この返された値は、AWS::Elasticsearch::Domain.DomainArn により返される値と同じです。

DomainArn

ドメインの Amazon リソースネーム (ARN) (arn:aws:es:us-west-2:123456789012:domain/mystack-elasti-1ab2cdefghij など)。この返された値は、AWS::Elasticsearch::Domain.Arn により返される値と同じです。

DomainEndpoint

インデックス、検索、データアップロードのリクエストを Amazon ES ドメインに送信するために使用されるドメイン固有のエンドポイント (earch-mystack-elasti-1ab2cdefghij-ab1c2deckoyb3hofw7wpqa3cm.us-west-2.es.amazonaws.com など)。

2 つのデータノードと 3 つのマスターノードを含む Amazon ES ドメインを作成します。

次の例では、2 つのデータノードと 3 つのマスターノードを含む Amazon ES ドメインを作成します。インデックスの自動スナップショットは午前 0 時と午前 1 時 (UTC) の間に毎日作成されます。アクセスポリシーは、IAM ユーザー es-user に、ドメインに対するすべての Amazon ES アクション (es:UpdateElasticsearchDomainConfig など) を行うことを許可します。

JSON

"ElasticsearchDomain":{ "Type":"AWS::Elasticsearch::Domain", "Properties":{ "DomainName":"test", "ElasticsearchClusterConfig":{ "DedicatedMasterEnabled":"true", "InstanceCount":"2", "ZoneAwarenessEnabled":"true", "InstanceType":"m3.medium.elasticsearch", "DedicatedMasterType":"m3.medium.elasticsearch", "DedicatedMasterCount":"3" }, "EBSOptions":{ "EBSEnabled":true, "Iops":0, "VolumeSize":20, "VolumeType":"gp2" }, "SnapshotOptions":{ "AutomatedSnapshotStartHour":"0" }, "AccessPolicies":{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::123456789012:user/es-user" }, "Action":"es:*", "Resource":"arn:aws:es:us-east-1:123456789012:domain/test/*" } ] }, "AdvancedOptions":{ "rest.action.multi.allow_explicit_index":"true" } } }

YAML

ElasticsearchDomain: Type: AWS::Elasticsearch::Domain Properties: DomainName: "test" ElasticsearchClusterConfig: DedicatedMasterEnabled: "true" InstanceCount: "2" ZoneAwarenessEnabled: "true" InstanceType: "m3.medium.elasticsearch" DedicatedMasterType: "m3.medium.elasticsearch" DedicatedMasterCount: "3" EBSOptions: EBSEnabled: true Iops: 0 VolumeSize: 20 VolumeType: "gp2" SnapshotOptions: AutomatedSnapshotStartHour: "0" AccessPolicies: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: AWS: "arn:aws:iam::123456789012:user/es-user" Action: "es:*" Resource: "arn:aws:es:us-east-1:846973539254:domain/test/*" AdvancedOptions: rest.action.multi.allow_explicit_index: "true"

VPC オプションがあるドメインを作成します。

次の例では、VPC オプションを持つドメインを作成します。

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "ElasticsearchDomain resource", "Parameters": { "DomainName" : { "Description" : "User defined Elasticsearch Domain name", "Type" : "String" }, "ElasticsearchVersion" : { "Description" : "User defined Elasticsearch Version", "Type" : "String" }, "InstanceType" : { "Type" : "String" }, "AvailabilityZone" : { "Type" : "String" }, "CidrBlock" : { "Type" : "String" }, "GroupDescription" : { "Type" : "String" }, "SGName" : { "Type" : "String" } }, "Resources": { "ElasticsearchDomain": { "Type": "AWS::Elasticsearch::Domain", "Properties": { "DomainName": { "Ref": "DomainName" }, "ElasticsearchVersion": { "Ref": "ElasticsearchVersion" }, "ElasticsearchClusterConfig": { "InstanceCount": "1", "InstanceType": { "Ref": "InstanceType" } }, "EBSOptions": { "EBSEnabled" : "true", "Iops" : 0, "VolumeSize" : 10, "VolumeType" : "standard" }, "SnapshotOptions": { "AutomatedSnapshotStartHour": "0" }, "AccessPolicies": { "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "es:*", "Resource": "*" }] }, "AdvancedOptions": { "rest.action.multi.allow_explicit_index": "true" }, "Tags": [{ "Key": "foo", "Value": "bar" }], "VPCOptions" : { "SubnetIds" : [ {"Ref" : "subnet"} ], "SecurityGroupIds" : [ {"Ref" : "mySecurityGroup"} ] } } }, "vpc" : { "Type" : "AWS::EC2::VPC", "Properties" : { "CidrBlock" : "10.0.0.0/16" } }, "subnet" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "VpcId" : {"Ref": "vpc"}, "CidrBlock" : {"Ref" : "CidrBlock"}, "AvailabilityZone" : {"Ref" : "AvailabilityZone"} } }, "mySecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription": {"Ref" : "GroupDescription"}, "VpcId" : {"Ref" : "vpc"}, "GroupName": {"Ref" : "SGName"}, "SecurityGroupIngress": [ { "FromPort": "443", "IpProtocol": "tcp", "ToPort": "443", "CidrIp": "0.0.0.0/0" } ] } } }, "Outputs": { "DomainArn": { "Value": { "Fn::GetAtt": ["ElasticsearchDomain", "DomainArn"] } }, "DomainEndpoint": { "Value": { "Fn::GetAtt": ["ElasticsearchDomain", "DomainEndpoint"] } }, "SecurityGroupId": { "Value": { "Ref": "mySecurityGroup" } }, "SubnetId": { "Value": { "Ref": "subnet" } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Description: ElasticsearchDomain resource Parameters: DomainName: Description: User defined Elasticsearch Domain name Type: String ElasticsearchVersion: Description: User defined Elasticsearch Version Type: String InstanceType: Type: String AvailabilityZone: Type: String CidrBlock: Type: String GroupDescription: Type: String SGName: Type: String Resources: ElasticsearchDomain: Type: AWS::Elasticsearch::Domain Properties: DomainName: !Ref DomainName ElasticsearchVersion: !Ref ElasticsearchVersion ElasticsearchClusterConfig: InstanceCount: '1' InstanceType: !Ref InstanceType EBSOptions: EBSEnabled: 'true' Iops: 0 VolumeSize: 10 VolumeType: standard SnapshotOptions: AutomatedSnapshotStartHour: '0' AccessPolicies: Version: 2012-10-17 Statement: - Effect: Deny Principal: AWS: '*' Action: 'es:*' Resource: '*' AdvancedOptions: rest.action.multi.allow_explicit_index: 'true' Tags: - Key: foo Value: bar VPCOptions: SubnetIds: - !Ref subnet SecurityGroupIds: - !Ref mySecurityGroup vpc: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 subnet: Type: AWS::EC2::Subnet Properties: VpcId: !Ref vpc CidrBlock: !Ref CidrBlock AvailabilityZone: !Ref AvailabilityZone mySecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: !Ref GroupDescription VpcId: !Ref vpc GroupName: !Ref SGName SecurityGroupIngress: - FromPort: '443' IpProtocol: tcp ToPort: '443' CidrIp: 0.0.0.0/0 Outputs: DomainArn: Value: !GetAtt ElasticsearchDomain.DomainArn DomainEndpoint: Value: !GetAtt ElasticsearchDomain.DomainEndpoint SecurityGroupId: Value: !Ref mySecurityGroup SubnetId: Value: !Ref subnet

このページの内容: