おつかれさまです。ならたけぽんです。🌈
明日は秋を愛でよう、明日こそは愛でよう、と、
七転び八転びしていたら、
いつのまにか11月になっていました。
びっくりして天気予報をよく見てみたら、
初冠雪やら、初雪やら、雪の話題になっていて。
もう冬じゃないですか。。。🏔️
ただ、ありがたいことに、
ここらあたりが寒くなるのは、もうちょっと後になりそうです。🔅
よし!
寒さで動きがスローリーになる前に、
しごとしよう!💻
ということで、今回も、
Amazon ElastiCacheについて、見ていきましょう!🍂
では早速、ElastiCacheの構築!です。
今回は「Redis」です。
ElastiCacheは、現時点では、
AWS CloudFormationリソースと直接マッピングされる、
いわゆる「L1」コンストラクトしか存在しないので、
今回もそちらで記載していきます。
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ライフを!!!🌈

