aws-cloudformation-elasticache
aws-cloudformation-elasticache について
CloudFormation で ElastiCache インフラを設計するためのスキルです。トポロジーやプライベートネットワーク、セキュリティ、スタック間の出力、変更リスクの確認を支援します。
主な機能
- 01Redis または Memcached のトポロジー選択
- 02サブネットグループとセキュリティグループの設定
- 03暗号化、スナップショット、可用性の設定
- 04他のスタックへのキャッシュエンドポイント出力
- 05置換や停止リスクの確認
活用シーン
- 01Redis または Memcached のキャッシュ層作成
- 02アプリケーション向けプライベートネットワーク設定
- 03キャッシュ変更の影響評価
- 04アプリケーションスタックへのエンドポイント提供
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ giuseppe-trisciuoglio/ developer-kit --skill aws-cloudformation-elasticacheインストール後、Claude Code で/aws-cloudformation-elasticacheを入力して読み込まれたか確認します。
同梱ファイルreferences/examples.mdreferences/reference.md
詳細
AWS CloudFormation ElastiCache
概要
このスキルを使うと、SKILL.md をサービスの完全なマニュアルにすることなく、CloudFormation で ElastiCache インフラストラクチャをモデル化できます。
特に重要なデプロイ上の判断に焦点を当てます。
- 適切なキャッシュトポロジーの選択
- VPC 内での安全なキャッシュ配置
- 可用性、暗号化、後続スタック向けのエクスポートの設定
大規模な本番環境向けテンプレートやサービス固有の詳細については、同梱の references/ ドキュメントを使用してください。
使用するタイミング
次の場合にこのスキルを使用してください。
- CloudFormation で Redis または Memcached のキャッシュ層を作成する
AWS::ElastiCache::CacheClusterとAWS::ElastiCache::ReplicationGroupのどちらを使うか判断する- アプリケーションからのアクセスに使うサブネットグループ、パラメーターグループ、セキュリティグループを設定する
- スナップショット、メンテナンスウィンドウ、暗号化、Multi-AZ の動作を追加する
- アプリケーションまたはプラットフォームのスタックにキャッシュエンドポイントをエクスポートする
- キャッシュの変更について、置き換えのリスク、ダウンタイム、運用コストを確認する
一般的なトリガーフレーズには、cloudformation elasticache、redis replication group、memcached cluster、cache subnet group、export redis endpoint などがあります。
手順
1. まずキャッシュトポロジーを選択する
次を使用します。
- フェイルオーバー、レプリカ、シャーディングが必要な本番環境向けの Redis 系デプロイには
ReplicationGroup - Memcached またはシンプルな単一ノードのキャッシュには
CacheCluster
アプリケーションに永続性、読み取りレプリカ、クラスター�ードが必要なのか、それとも一時的なキャッシュだけでよいのかを判断する前に、リソースの YAML から書き始めないでください。
2. ネットワーク境界を明示的にモデル化する
次を作成して接続します。
- プライベートなアプリケーションサブネットを持つサブネットグループ
- アプリケーション層からのアクセスのみを許可するセキュリティグループ
- デフォルトのエンジン設定では不十分な場合に限り、パラメーターグループ
非常に例外的で、十分にレビューされた理由がない限り、キャッシュはプライベートに保ってください。
3. 環境に応じて永続性とセキュリティを設定する
本番環境向けの Redis デプロイでは、次を決定してください。
- 自動フェイルオーバーと Multi-AZ
- 保管時および転送時の暗号化
- スナップショットの保持期間とメンテナンスウィンドウ
- サポートされている場合の認証または認証トークンの方式
低い環境では、コストの安い単一ノード構成が許容される条件を文書化してください。
4. 再利用可能なパラメーターと出力を追加する
ノードタイプ、サブネット ID、スナップショットの保持期間など、環境によって実際に異なる設定だけをパラメーター化してください。
他のスタックが必要とする出力をエクスポートします。通常は次のとおりです。
- プライマリーエンドポイントまたは構成エンドポイント
- 該当する場合はリーダーエンドポイント
- 後続スタックが実際に依存する場合に限り、セキュリティグループまたはサブネットグループの識別子
5. ロールアウト前にスタックの変更を検証する
デプロイ前に、次を行ってください。
- テンプレートを検証する
- 変更によってクラスターまたはレプリケーショングループが置き換えられるか確認する
- セキュリティグループの公開範囲と暗号化設定を確認する
- メンテナンス、バックアップ、スケーリングの選択が、アプリケーションの復旧要件に合っていることを確認する
例
例 1:プライベートネットワークを使った Redis レプリケーショングループ
Parameters:
CacheNodeType:
Type: String
Default: cache.t4g.small
Resources:
CacheSubnetGroup:
Type: AWS::ElastiCache::SubnetGroup
Properties:
Description: Private subnets for the cache tier
SubnetIds: !Ref PrivateSubnetIds
CacheSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Application access to Redis
VpcId: !Ref VpcId
RedisReplicationGroup:
Type: AWS::ElastiCache::ReplicationGroup
Properties:
ReplicationGroupDescription: Application Redis cluster
Engine: redis
CacheNodeType: !Ref CacheNodeType
NumNodeGroups: 1
ReplicasPerNodeGroup: 1
AutomaticFailoverEnabled: true
MultiAZEnabled: true
CacheSubnetGroupName: !Ref CacheSubnetGroup
SecurityGroupIds:
- !Ref CacheSecurityGroup
TransitEncryptionEnabled: true
AtRestEncryptionEnabled: true
例 2:別のスタック向けにエンドポイントをエクスポートする
Outputs:
RedisPrimaryEndpoint:
Description: Primary endpoint used by the application stack
Value: !GetAtt RedisReplicationGroup.PrimaryEndPoint.Address
Export:
Name: !Sub "${AWS::StackName}-RedisPrimaryEndpoint"
コンシューマースタックが不必要に壊れないよう、出力は少なく、安定したものにしてください。
ベストプラクティス
- 本番システムでは、単一ノードの Redis よりレプリケーショングループを優先してください。
- キャッシュはプライベートサブネットに配置し、既知のアプリケーションセキュリティグループからのインバウンド通信に制限してください。
- 文書化された理由がない限り、暗号化とスナップショットを有効にしてください。
- エンジンバージョン、クラスター�ード、サブネット設計を変更する前に、置き換えのリスクを確認してください。
- あらゆる設定項目をパラメーターにするのではなく、環境固有のサイズ設定にパラメーターを使用してください。
- ルートスキルを際限なく拡張するのではなく、詳細なテンプレートのバリエーションは
references/examples.mdにまとめてください。
制約事項と警告
- ElastiCache の変更を慎重に適用しないと、リソースの置き換えやデータ損失が発生する場合があります。
- NAT、サブネット、ルーティングの設定を誤ると、スタックの作成が成功してもキャッシュに接続できなくなることがあります。
- マルチ AZ、レプリカ、より大きなノードタイプを選択すると、コストが大幅に変わる場合があります。
- キャッシュエンドポイント、暗号化のサポート、認証機能は、エンジンとバージョンによって異なります。
- スナップショットとメンテナンスウィンドウは、アプリケーションの復旧およびデプロイの運用に合わせる必要があります。
参考資料
references/examples.mdreferences/reference.md
関連スキル
aws-cloudformation-vpcaws-cloudformation-securityaws-cloudformation-ecsaws-cloudformation-lambda