AWS CDK v2 でElastiCacheを自分好みに!(その5)

おつかれさまです。ならたけぽんです。🌈

選挙だ寒波だ冬季オリンピックだと、
イベントに振り回されていたら、
いつのまにか2月も終わりですね。

2026年、もう2ヶ月も経つのか。。。🏹

歳を取ったから時間が経つのが早いのかもしれませんが、
それにしても、今年は世界がすごい勢いで流れていますね。

なんだか毎日落ち着かないんですが、
やることやるしかないですね。

よし! 
しごとしよう!💻

ということで、今回も、
Amazon ElastiCacheについて、見ていきましょう!🐎



では早速、ElastiCacheの構築!です。
今回は「Valkey(クラスターモード)」です。

※クラスターモードについては、以下のAWS公式ページをご確認ください。
クラスターモードの無効と有効

※Valkeyを、クラスターモードではない「CfnCacheCluster」クラスで
 作成しようとしたところ、以下エラーになってしまいました。
 ですので、本ブログでは、「Valkey 」は「クラスターモード」のみ記載します。

This API doesn't support Valkey engine.
Please use CreateReplicationGroup API for Valkey cluster creation.

ElastiCacheは、現時点では、
AWS CloudFormationリソースと直接マッピングされる、
いわゆる「L1」コンストラクトしか存在しないので、
今回もそちらで記載していきます。

以下は、最小ノード数:「1」の場合のコードになります。

import {
    aws_elasticache as elasticache,
} from 'aws-cdk-lib';

var subnetIds: string[] = new Array();
subnetIds.push(subnetA.subnetId);
subnetIds.push(subnetB.subnetId);

const subnetGroup = new elasticache.CfnSubnetGroup(this , 'SubnetGroup' , {
    description: 'Subnet Group ' ,
    subnetIds: subnetIds

}
) ;

new
elasticache.CfnReplicationGroup(this , 'Valkey' , {

    replicationGroupDescription: 'Valkey' ,
    automaticFailoverEnabled: false  ,
    cacheNodeType: 'cache.t4g.small
' ,
    cacheSubnetGroupName: subnetGroup.ref  ,
    clusterMode: 'disabled
' ,
    engine: 'valkey
' ,
    multiAzEnabled: false  ,
    numNodeGroups: 1
 ,
    replicasPerNodeGroup: 0 ,
    securityGroupIds: [
        securityGroup.securityGroupId ,

    ] ,
    transitEncryptionEnabled: true 

}
) ;

🕊️必須引数🕊️:
  (1) replicationGroupDescription:string
    レプリケーショングループの説明を設定。

        (2) transitEncryptionEnabled:boolean
    転送中の暗号化の有効無効を設定。
    ※このパラメータ未設定時、以下エラーになってしまったので、
     必須引数扱いにしています。

You must specify a value (true or false) for the parameter TransitEncryptionEnabled.

🕊️主なオプション引数🕊️:

  (1) automaticFailoverEnabled:boolean:デフォルト(false):
    プライマリノードに障害が発生した場合に、
    自動的にフェイルオーバを発生させるかどうかを設定。
    ※「true」にするためには、クラスターが2つ以上必要になります。

  (2) cacheNodeType:string:デフォルト(-):
    自分好みのインスタンスタイプを設定。
    ※接頭子(cache)が付きます。

  (3) cacheSubnetGroupName:string:デフォルト(-):
    サブネットグループ名を設定。
    ※既存サブネットをまとめたサブネットグループが必要になります。

  (4) clusterMode:string:デフォルト(-):
    クラスターモードを「ON」にする際は「enabled」を設定。
    クラスターモードを「OFF」にする際は「disabled」を設定。

  (5) engine:string:デフォルト(-):
    エンジン名を設定。
    今回は「redis」固定。

  (6) multiAzEnabled:boolean:デフォルト(-):
    Auti-AZ構成を有効にするか否かを設定。

  (7) numNodeGroups:number:デフォルト(1):
    グループ(シャード)数を設定。

  (8) replicasPerNodeGroup:number:デフォルト(-):
    各グループ(シャード)内のレプリカノード数を、0 ~ 5 で設定。

  (9) securityGroupIds:string[]:デフォルト(-):
    セキュリティグループIDを配列で設定。

「Redis(クラスターモード)」から必須引数が1つ増えただけですね。

まだまだパラメータは存在するので、
気になる方は、AWS CDK公式ページを見てみてください~。🔎



個人的に、「Redis」は、近年オープンソースライセンス云々で話題になることが多いので、
落ち着くまでは「Valkey」も追いかけていこうと思います。



2月の和風月名「如月」は、寒さで衣服を重ね着するので、
「衣更着(きさらぎ)」が由来、という説があるそうです。
そう言われてみると、確かに着こんで、ころころしてますね。

世の中に流されて、ころころ転がり続けるのもあれなので、
そろそろ踏ん張って立ち上がらないとな~、と、
春一番が吹いたニュースを聞きながら、
これが最後とコタツでミカンを楽しむのでした。🍊

それでは、良き良き、AWS CDKライフを!!!🌈