[アップデート] Amazon ElastiCache と EC2 間で 1 クリック接続セットアップをサポートしました
こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。
Amazon ElastiCache と EC2 間で 1 クリック接続セットアップをサポートしました。
1 クリック接続セットアップ
1 クリック接続セットアップは対象の EC2 インスタンスを GUI で選択することで、インスタンスと ElastiCache 間の接続に必要なセキュリティグループを自動でセットアップしてくれる機能です。Aurora/RDS や DocumentDB ではすでにサポートされていましたが、今回 ElastiCache 版が登場しました。
ささっと検証したい時にはピッタリな機能ですね。早速試してみましょう。
今回のアップデートでは EC2 に加え、CloudShell についても記載がありました。とても気になりますね。
You can also choose to connect to your cache from the Console using AWS CloudShell. Just click the “Connect to cache” button in the new “Connectivity and Security” tab. This will open a new AWS CloudShell session and connect to your cache using the valkey-cli tool. Once connected, you can execute common Valkey commands, including reading data (e.g. GET <key>) and writing data (e.g. SET <key> <value>).
やってみる
今回は Valkey OSS を利用した ElastiCache Serverless クラスターへ、同一サブネットに所属する EC2, CloudShell から接続を試みます。
セキュリティグループ
事前に以下の EC2, CloudShell, ElastiCache には Security Group を用意/アタッチしています。
EC2
インバウンドルール
なし
アウトバウンドルール
ポート | 送信先 | 備考 |
---|---|---|
すべて | 0.0.0.0/0 |
CloudShell
インバウンドルール
なし
アウトバウンドルール
ポート | 送信先 | 備考 |
---|---|---|
すべて | 0.0.0.0/0 |
ElastiCache
インバウンドルール
なし
アウトバウンドルール
ポート | 送信先 | 備考 |
---|---|---|
すべて | 0.0.0.0/0 |
1 クリック接続セットアップ (EC2)
それでは 1 クリック接続セットアップを試してみます。ElastiCache のコンソールに行くと コンピューティング接続をセットアップ
が増えていますね。クリックしてみます。
コンピュート接続をセットアップする画面に遷移しました。対象のインスタンスを選んで自動でセキュリティグループをセットアップするようです。
接続の概要をクリックすると、対象インスタンスと ElastiCache クラスターの構成図が出てきました。
現在の値
と 新しい値
を見るに、すでに指定しているセキュリティグループとは別のセキュリティグループを各リソースにアタッチするようです。
セキュリティグループの作成パターンは、ざっくり解説すると以下のルールに従います。
elasticache-ec2-${cacheId}:${ec2InstanceId}
,ec2-elasticache-${ec2InstanceId}:${cacheId}
に該当しないセキュリティグループは変更しないelasticache-ec2-${cacheId}:${ec2InstanceId}
があり(ない場合は自動で作成)、セキュリティグループ内にルールがない場合はルールを追加するec2-elasticache-${ec2InstanceId}:${cacheId}
があり(ない場合は自動で作成)、セキュリティグループ内にルールがない場合はルールを追加する
より細かい仕様を確認したい場合は、以下にまとめられておりますので、合わせてご覧ください。
自動セットアップが完了すると、コンピューティングリソースに対象のインスタンスが登録されます。
セキュリティグループも、新しくアウトバウンドを ElastiCache クラスターのセキュリティグループに向けるルールが追加されています。
ElastiCache 側も ec2-elasticache
から始まるルールが追加されています。
EC2 に Valkey CLI をインストールして接続してみます。
sudo su -
yum -y install openssl-devel gcc
wget https://github.com/valkey-io/valkey/archive/refs/tags/7.2.6.tar.gz
tar xvzf valkey-7.2.6.tar.gz
cd valkey-7.2.6
make distclean
make valkey-cli BUILD_TLS=yes
sudo install -m 755 src/valkey-cli /usr/local/bin/
valkey-cli --tls -h valkey-cluster-hogehoge.serverless.apne1.cache.amazonaws.com -p 6379
うまくつながり、コマンドも叩けていますね。
[root@ip-10-0-146-65 valkey-8.0.0]# valkey-cli --tls -h valkey-cluster-hogehoeg.serverless.apne1.cache.amazonaws.com -p 6379
valkey-cluster-hogehoeg.serverless.apne1.cache.amazonaws.com:6379> SET mykey "Hello, ElastiCache!"OK
valkey-cluster-hogehoeg.serverless.apne1.cache.amazonaws.com:6379> GET mykey"Hello, ElastiCache!"
valkey-cluster-hogehoeg.serverless.apne1.cache.amazonaws.com:6379>
1 クリック接続セットアップ (CloudShell)
続いて CloudShell です。同じく ElastiCache コンソールに行くと新しく、キャッシュに接続
が生えていますね。クリックしてみましょう。
すると CloudShell の環境を作成画面に移動しました。「セットアップができたらコマンドを実行するよ」とお知らせされていますね。作成と実行
をクリックしてみます。
ただ残念ながら、CloudShell から ElastiCache への接続は試行されたまま、タイムアウトしてしまいました。
CloudShell に払い出された ENI のセキュリティグループを見ると ElastiCache と同じセキュリティグループがアタッチされていました。
この状況ですと、自身を許可するルールがないため、接続できませんね。ルールを追加しておきます。
セットアップが完了したら接続できました。
CloudShell の方は 事前認証済み
と記載されていることから、もしかしたら「セキュリティグループのルールが設定済みだとワンクリックですぐに接続できるよ」なのかもしれません。
まとめ
以上、「Amazon ElastiCache と EC2 間で 1 クリック接続セットアップをサポートしました。」でした。
検証用途の場合は EC2, 運用時にササっと接続したい場合は CloudShell の接続オプションを利用してみても良いかもしれません。
このブログがどなたかの参考になれば幸いです。クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!