2019年5月25日土曜日

AWS ElastiCache for Redis 入門

概要

AWS の ElastiCache は Memcashed or Redis が選択できます
今回は Redis を構築して実際に redis-cli で接続できるところまで確認してみました

環境

  • macOS 10.14.4
  • AWS ElasciCache for Redis (2019/05/21 時点)
  • AWS EC2 (2019/05/21 時点)

クラスタ作成

ElastiCache for Redis を使うにはまずクラスタを作成しなければいけません
クラスタには Redis が動作するためのノードやアクセスを制御するセキュリティグループ、所属させる VPC ネットワークなどを指定します
また Redis の場合はクラスタ構成を選択することもできます
今回は検証目的で格安で進めたいのでシングルノードで選択します
またノードのスペックも一番小さいものにします

「今すぐ始める」を選択します

クラスタの設定画面になります
名前はクラスタ名になります
好きな名前を設定しましょう
ノードのタイプは一番小さい cache.t2.micro を選択します
なお cache.t2.micro はオハイオでは選択できますがリージョンによっては選択できないリージョンもあるのでご注意ください

VPC の設定をします
既存のでも OK です

セキュリティグループの選択をします
バックアップも不要なのでチェックを外しています
データをインポートやメンテナンス機能も特に使わないので指定しません

あとは作成できるのを待ちましょう
ステータスが available になればクラスタの内にノードが作成されています
なお ElastiCache は内部的には EC2 ですが EC2 のコンソールに移動して確認しようとしてもできません

動作確認用の EC2 インスタンス作成

ElastiCache は基本的に EC2 および AWS サービス内からのみアクセスできます
外部からも接続することはできますが結局 NAT 用のインスタンスが必要になるので素直に動作用の EC2 を作成します
作成するスペックは何でも OK ですが今回は以下のようにしました

  • Amazon Linux 2 AMI (HVM), SSD Volume Type
  • t2.nano
  • ElastiCache のクラスタと同一のセキュリティグループ

作成できたらプライベートキーを使ってアクセスできる確認しましょう
セキュリティグループに SSH の許可が必要な場合は入れてください

  • ssh -i ec2.pem ec2-user@ec2-18-218-71-107.us-east-2.compute.amazonaws.com

あとは ElastiCache に接続確認するための redis-cli もインストールしておきます

  • sudo amazon-linux-extras install redis4.0

セキュリティグループ変更 (任意)

これは任意です
もし確認用の EC2 を ElastiCache のクラスタとは別のセキュリティグループに所属させている場合はそのセキュリティグループからアクセスできるようにしましょう
また動作確認用の EC2 に SSH できるルールを追加してあげましょう

エンドポイント確認

redis-cli でアクセスするエンドポイントを確認します
作成したクラスタの詳細を表示し「プライマリエンドポイント」の部分を探しましょう

動作確認

あとは EC2 からコマンドで確認すれば OK です
redis-cli-h オプションを使って先程のエンドポイントを指定すれば OK です

[ec2-user@ip-172-31-46-33 ~]$ redis-cli -h cluster1.0n143f.0001.use2.cache.amazonaws.com
cluster1.0n143f.0001.use2.cache.amazonaws.com:6379> info server
# Server
redis_version:5.0.4
redis_git_sha1:0
redis_git_dirty:0
redis_build_id:0
redis_mode:standalone
os:Amazon ElastiCache
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:0.0.0
process_id:1
run_id:b85954932494109d4a2520b07ffcd6d7d7bfca2c
tcp_port:6379
uptime_in_seconds:2300
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:15000582
executable:-
config_file:-

料金

  • ElastiCache (オハイオ、cache.t2.micro)・・・$0.017/1hour (参考)
  • EC2 (オハイオ、t2.nano)・・・$0.0058USD/1hour (参考)

後始末

  • ElastiCache のクラスタの削除
  • 動作確認した EC2 の削除

最後に

ElastiCache に入門してみました
クラスタを作成して指定されたエンドポイントにアクセスするだけで使えるのでコマンドやアプリはそのままで向き先だけ変更すればすぐに使えるのは嬉しい点かなと思います
また Redis Cluster が必要であれば構築/運用も行ってくれます

原則的には EC2 からのアクセスのみを許可しているのでたとえば別のクラウドサービスなどからアクセスしたい場合には NAT インスタンスを立てる工夫が必要になります
EC2 に EIP を付与しその EIP に外部からアクセスがあったら ElastiCache のエンドポイントに流すような DNAT の設定を入れる感じだと思います (参考)

参考サイト

0 件のコメント:

コメントを投稿