みなさん、こんにちは。サニービュー事業部の小寺です。
今日からre:Inventに参加するためにはるばるアメリカ、ラスベガスにやってきました。明日以降は実際に基調講演で発表される新サービスについて、お伝えさせていただきます。
Amazon ElastiCache は Redis クラスターへの AWS Identity and Access Management (IAM) 認証アクセスをサポートするようになりました。
ElastiCache Redisとは
ElastiCacheをお使いの方も多いと思いますが、実は2種類のサービスがあります。
・memcached
memory cache daemon の略でメムキャッシュディーと読みます。
マルチスレッドで動作します。
CPUのコア数を上げると、パフォーマンスも上がります。
キーとバリューをシンプルな1対1で組み合わせて保存します。
・redis
シングルスレッドで動作します。
snapshotベースでのバックアップ・リストアに対応しています。
マスターと複数のスレーブのクラスター構成により、負荷分散ができます。
クラスターモードについては、有効・無効を選ぶことができます。
また、メモリ上のデータをディスクに保存する事で、停電等の電源消失時にデータを失わずにすみます。
今回のアップデートのメリット
IAM認証が設定できることにより、より決め細かく、かつ簡単にアクセス制御ができるようになりました。
例えば、IAM ポリシーを使用すると、異なる IAMのグループににクラスターアクセスを許可または取り消しできます。
Redis アプリケーションは IAM 認証情報を使用して、接続中に ElastiCacheの認証ができます。
各ElastiCacheレプリケーションの管理やアクセスコントロールも簡単になるのが大きなメリットの一つです。
RedisのIAM認証による前提条件
・Redis versionが7以上であることが大前提です。
・IAMでElastiCacheユーザのユーザ名とユーザIDが一意である必要があります。
・IAM認証のトークンは15分間有効です。
・IAM認証で ElastiCache for Redisは自動的に12時間後に切断されます。
・IAM認証では、「MULTI EXEC」コマンドをサポートしません。
試してみた
(1)IAMポリシーを作成します。
{
“Version”: “2012-10-17”,
“Statement”: {
“Effect”: “Allow”,
“Principal”: { “AWS”: “arn:aws:iam::123456789012:root” },
“Action”: “sts:AssumeRole”
}
}
(2)IAMロールを作成します。
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect” : “Allow”,
“Action” : [
“elasticache:Connect”
],
“Resource” : [
“arn:aws:elasticache:us-east-1:123456789012:replicationgroup:replication-group-01”,
“arn:aws:elasticache:us-east-1:123456789012:user:test”
]
}
]
}
(3) IAMポリシーをロールにアタッチします。
(4) ユーザグループとユーザをIAM認証として作成してアタッチします。
(5)以下がIAMAuthTokenRequestでアクセスする例です。
public class IAMAuthTokenRequest {
private static final HttpMethodName REQUEST_METHOD = HttpMethodName.GET;
private static final String REQUEST_PROTOCOL = “http://”;
private static final String PARAM_ACTION = “Action”;
private static final String PARAM_USER = “User”;
private static final String ACTION_NAME = “connect”;
private static final String SERVICE_NAME = “elasticache”;
private static final long TOKEN_EXPIRY_SECONDS = 900;
以下、略・・。
対象リージョン
すべてのリージョンで追加料金なしで利用可能です。