【AWS Lambda】VPC内のElastiCacheへの接続のコツ

はじめに

AWS LambdaがVPC内リソースへのアクセスが出来るようになりました。
この機能によりセキュアにAWS Lambdaを利用する事が出来るようになり、VPC内にあるRDSやElastiCacheなどとの連携が考えられますね!

今回はAWS LambdaをVPCにあるElastiCacheへ接続を試してみたいと思います。
RDSの記事を参照したい方は、こちらから!
AWS Lambda編~VPCにあるRDSへ接続を試してみる~

本記事の概要

  • AWS LambdaをVPCにあるElastiCacheへ接続するハンズオンを行います
  • ゴールはLambda 関数でUUID を生成し、ElastiCache クラスターに UUID を書き込むまでとします
  • AWSのほかにpipを使用します

ハンズオン

1. ElastiCacheの準備

VPC内にElastiCacheを立ち上げておきます。

image.png

2.Lambdaの作成

次にLambdaをElastiCacheに接続するためにデプロイパッケージで作成します。
今回はAWSのサンプルを利用します。

301 Moved Permanently

http://docs.aws.amazon.com

続いて以下の依存ライブラリをpipでインストールします。

・pymemcache
・elasticache-auto-discovery

Lambda Functionを作成します。
その際にIAM Role をlambda_basic_vpc_executionで作成します。

image.png

先ほど作成したapp.zipをアップロードして設定します。
Handler はapp.handlerを設定します。

image.png

VPCで実行するように設定を行います。

image.png

3.確認してみる

invokeコマンドを手動で実行して確認してみます。
今回のサンプルでは実行された Lambda 関数は UUID を生成し、Lambda コードで指定された ElastiCache クラスターに、その UUID を書き込みます。次に、Lambda 関数はキャッシュから項目を取得します。

おわりに

今回はAWS LambdaをVPC内のElastiCacheへの接続のハンズオンを行いました。
作業数はそれほど多くの無いので、サクッと終わらせることが出来ました。
本記事とはずれてしまいますが、LambdaとElastiCachにSNSを挟むことでフェイルオーバや再起動が発生した場合もメール等で通知を行うことができるようです。

次回もお楽しみに!!!