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

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

明日は秋を愛でよう、明日こそは愛でよう、と、
七転び八転びしていたら、
いつのまにか11月になっていました。

びっくりして天気予報をよく見てみたら、
初冠雪やら、初雪やら、雪の話題になっていて。
もう冬じゃないですか。。。🏔️

ただ、ありがたいことに、
ここらあたりが寒くなるのは、もうちょっと後になりそうです。🔅

よし! 
寒さで動きがスローリーになる前に、
しごとしよう!💻

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



では早速、ElastiCacheの構築!です。
今回は「Redis」です。

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

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.CfnCacheCluster(this , 'Redis' , {

    cacheNodeType: 'cache.t4g.small' ,
    engine: 'redis' ,
    numCacheNodes: 1 ,
    cacheSubnetGroupName: subnetGroup.ref  ,
    vpcSecurityGroupIds: [
        securityGroup.securityGroupId ,

    ]

}
) ;

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

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

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

  (3) numCacheNodes:number:デフォルト(-):
    キャッシュノード数を設定。

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

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

最小設定は上記になります。
L1コンストラクトなので、明示的なデフォルト値が無いんですよね。。。

AWS CDK公式ページの記載ですと、
(1)~(3)までが必須なのですが、
(5)まで設定しないと整合性不備などで構築失敗することがあるので、
いつも(5)までは設定しています。😎

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



これでRedisはひと段落、と思いきや、
上記を実行すると、Redisのクラスターモードが無効として構築されます。

Redisのクラスターモードを有効にしたい!ときは、
「CfnCacheCluster」クラスでは無くて、まったく別の、
「CfnReplicationGroup」クラスで構築する必要があります。

ややこしい。。。😭

次回は、こちらの「CfnReplicationGroup」クラスを用いて、
クラスターモードが有効のRedisを構築していきますね。



11月は、旧暦では霜月。
霜が降る月だからとか、新嘗祭を行うので食物月(おしものつき)だからとか、
由来は複数の説があるそうですが、
農耕の目線での由来が多いそうです。

何かとバタバタするのはしょうがないにしても、
季節感は大事にしたいなぁ、と、
コタツで🍊の皮を剥きながら、もの思う夜が更けてゆくのでした。

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