LoginSignup
5
7

More than 5 years have passed since last update.

AWS Elasticsearch ServiceがVPC対応したので、lambda→ESをVPCで括ってみた

Posted at

VPC Support for Amazon Elasticsearch Service Domains - Amazon Elasticsearch Service http://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-vpc.html

FireShot_Capture_065_-_Amazon_Elasticsearch__-_https___ap-northeast-1_console_aws_amazon_com_es_home.png

やること

  1. VPCの設定をする
  2. Elasticsearch Serviceを新規作成してVPC設定する (既存のドメインをVPC対応にする・VPCを切り替える方法はまだわからない)
  3. lambdaにVPCを設定する
  4. テスト

VPC設定

  1. プライペートとパブリックの2パターンサブネットを作成する
  2. パブリックサブネット内でNATゲートウェイを作成する
  3. NAT,インターネットゲートウェイをルートテーブルに割り当てる
  4. ESに設定するセキュリティグループを設定する

ES設定

  1. 新しいドメインの作成
  2. ネットワーク設定でVPC, サブネット(プライペート), セキュリティグループを設定する
  3. アクセスポリシーをVPC用に設定 FireShot_Capture_066_-_Amazon_Elasticsearch__-_https___ap-northeast-1_console_aws_amazon_com_es_home.png

lambda設定

  1. ロールにVPCアクセス権限をアタッチする
  2. lambdaをプライペートサブネットに配置する

API Gateway設定

(疎通確認だけなら、lambda関数に繋がればよいかと)

疎通確認

ESはVPC内なので、外のネットワークからはアクセスできない
そのため、Kibana見れない状態…
VPC内にWindows立ち上げるとかEC2入れてcurlで叩いてみるとか

lambda内のログに出力するなりで確認

はまりどころ

lambdaにパプリックネットワークのサブネットを付けてしまっていた為、外に接続できなかった
原因をAPI Gatewayかと思い、メソッドを設定したものの解決せず時間がかかってしまった

もしかして

ESへのアクセスを制限したいだけであれば、lambdaをVPC内に設置してNAT Gateway経由でESにアクセスすればIP許可だけで十分だったのでは…?

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7