mcpField
A
aws-cloudformation-elasticache

aws-cloudformation-elasticache

github.com/giuseppe-trisciuoglioクラウド・DevOps36565 回インストール7 週間前に更新
リポジトリ

aws-cloudformation-elasticache について

CloudFormation で ElastiCache インフラを設計するためのスキルです。トポロジーやプライベートネットワーク、セキュリティ、スタック間の出力、変更リスクの確認を支援します。

主な機能

  1. 01Redis または Memcached のトポロジー選択
  2. 02サブネットグループとセキュリティグループの設定
  3. 03暗号化、スナップショット、可用性の設定
  4. 04他のスタックへのキャッシュエンドポイント出力
  5. 05置換や停止リスクの確認

活用シーン

  1. 01Redis または Memcached のキャッシュ層作成
  2. 02アプリケーション向けプライベートネットワーク設定
  3. 03キャッシュ変更の影響評価
  4. 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.md
  • references/reference.md

関連スキル

  • aws-cloudformation-vpc
  • aws-cloudformation-security
  • aws-cloudformation-ecs
  • aws-cloudformation-lambda

コメント