[[AWSメモ]] >
* AWS EC2から別VPCのElastiCacheに接続する [#v45c729f]
#setlinebreak(on)
#contents
** 概要 [#qde89dfd]
#html(<div style="padding-left:10px;">)
EC2インスタンスから、別VPCのElasticacheインスタンスに接続する手順を記載する。
※ECSインスタンス等からの接続も基本的には同じ。
#html(</div>)
** 準備 [#u906ab49]
#html(<div style="padding-left:10px;">)
接続元(EC2)、接続先(ElastiCache)の以下の情報を用意する。
- インスタンスが所属するVPC ID
- インスタンスが所属するVPCのIPv4 CIDR
- インスタンスのセキュリティグループID
#html(</div>)
** 設定 [#y35ed5c4]
#html(<div style="padding-left:10px;">)
あとはドキュメントの手順に沿って設定していくだけ。
https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/elasticache-vpc-accessing.html#elasticache-vpc-accessing-different-vpc
*** VPCピア接続の作成 [#a93d8cee]
#html(<div style="padding-left:10px;">)
https://console.aws.amazon.com/vpc/ からピアリング接続を作成する。
|VPC (リクエスタ)|VPC (アクセプタ)|h
|接続元(EC2)のVPC ID|接続先(ElastiCache)のVPC ID|
※作成したVPCピアリング接続のIDは、ルートテーブルの更新時に必要なのでメモしておく。(pcx-で始まるID)
#html(</div>)
*** VPC ピア接続のルートテーブルの更新 [#ze206ce0]
#html(<div style="padding-left:10px;">)
https://console.aws.amazon.com/vpc/ の [ルートテーブル]から、接続元 及び 接続先VPCの ルートテーブルを更新(追加)する
接続元(EC2側)VPCのルートテーブル
|送信先|ターゲット|h
|接続先VPCのIPv4 CIDR|VPCピアリング接続のID|
接続先(ElastiCache側)VPCのルートテーブル
|送信先|ターゲット|h
|接続元VPCのIPv4 CIDR|VPCピアリング接続のID|
#html(</div>)
*** ピア接続VPC のアプリケーションセキュリティグループからのインバウンド接続を許可 [#w2670554]
#html(<div style="padding-left:10px;">)
https://console.aws.amazon.com/vpc/ の [セキュリティグループ] から、
接続先(ElastiCache側)のセキュリティグループのインバウンドのルールに ElastiCache(Redis等) への接続に使用するポートを追加する。
Redisの場合の例)
|タイプ|プロトコル|ポート範囲|ソース|説明|h
|カスタム TCP ルール|TCP (6)|6379|接続元のセキュリティグループID||
#html(</div>)
#html(</div>)
** 接続確認 [#jdde800c]
#html(<div style="padding-left:10px;">)
*** redisクライアントのインストール [#o7cdae6f]
#html(<div style="padding-left:10px;">)
テスト時はローカルでRedisを動作させたい事もあるので、ここでは Redis自体をインストールするが、
特に必要なければ、他のRedisクライアントを単体でインストールしてもOK。
※ https://redis.io/clients
#myterm2(){{
# インストールに必要なものを予めインストール
sudo yum install gcc
sudo yum install tcl
# redisインストール
wget http://download.redis.io/releases/redis-4.0.11.tar.gz
tar xzf redis-4.0.11.tar.gz
cd redis-4.0.11
make test
make
}}
※ https://redis.io/download
#html(</div>)
*** 接続 [#sc189864]
#myterm2(){{
src/redis-cli -h 対象のElasticache(Redis)ノードのエンドポイント -p 6379
}}
#html(</div>)