ちょっと話題の記事

Amazon Elasticsearch ServiceがVPCをサポートしました

2017.10.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

まいど、大阪の市田です。 本日のアップデートでAmazon Elasticsearch ServiceがVPCをサポートしました。

AWS Developer Forums: Amazon Elasticsearch Service now supports Amazon Virtual Private Cloud (VPC)

試してみた

それではマネジメントコンソールから作成してみます。

01-create-es

ドメインの名前を付けます。バージョンはデフォルトの「5.5」のまま「Next」をクリックします。

02-def-private-domain

インスタンス数は「2」として、複数のサブネットにMulti-AZで構成するため「Enable zone awareness」にチェックを入れておきます。

04-config-zone-asareness

次の画面で「VPC access」を選択して下さい。サブネットが2つ選択出来ます。セキュリティグループは複数選択することが可能です。 VPCがサポートされてますね!

05-es-vpc-setting

アクセスポリシーは「Do not require signing request with IAM credential」を選択します。カッコ書きの説明にあるように、セキュリティグループで許可されたものがアクセス可能となります。

06-select-template

ポリシーの内容は次のようなものになります。

07-template

レビューで問題なければ作成します。

08-confirm

また、セキュリティグループは同じVPCからのアクセスを許可するようにしました。

12-sg

作成完了後、インスタンスのエンドポイントに対して名前解決を行ってみると、VPCのプライベートIPが返ってきました。

dig +short vpc-esprivate-xxxxxxxxxxxxxxxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com

192.168.4.144
192.168.3.156

次に、同じVPCにWindows Serverを立ててkibanaの画面にアクセスしてみます。見れましたね。

09-rdp

VPC外(ローカルのPC)からはアクセスできません。

10-cannot-access

次に、同じVPC上のインスタンスからデータを登録してみます。

$ curl -XPUT https://vpc-esprivate-xxxxxxxxxxxxxxxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com/testidx/test/1 -d '
> {
> "title": "test1",
> "body": "body1"
> }
> '

{"_index":"testidx","_type":"test","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":2,"failed":0},"created":true}

$ curl -XPUT https://vpc-esprivate-xxxxxxxxxxxxxxxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com/testidx/test/2 -d' {
> "title":"test2",
> "body":"body2"
> }'

{"_index":"testidx","_type":"test","_id":"2","_version":1,"result":"created","_shards":{"total":2,"successful":2,"failed":0},"created":true}

投入したデータをkibanaで確認できました。

11-es-local-data

最後に

VPC内にインスタンスが作成できることで、セキュアに利用できる用途が広がったと思います。ぜひご活用下さい。

以上です。