mcpField
A
amazon-web-services

amazon-web-services

github.com/oakossクラウド・DevOps2089 回インストール10 週間前に更新
リポジトリ

amazon-web-services について

amazon-web-servicesは、AWSを扱う開発者やアーキテクト向けのクラウド開発スキルです。JavaScript SDK v3とAWS CDK v2を中心に、サービス利用、インフラストラクチャ・アズ・コード、セキュリティの実践を扱います。

主な機能

  1. 01AWS SDK for JavaScript v3のモジュール利用
  2. 02AWS CDK v2によるインフラストラクチャ・アズ・コード
  3. 03Lambda、S3、DynamoDBのパターン
  4. 04SQS、SNS、イベントメッセージング
  5. 05IAMの最小権限の実践
  6. 06CDKテンプレートのアサーションとスナップショットテスト

活用シーン

  1. 01サーバーレスアプリケーションの構築
  2. 02コンテナとマネージドデータベースのデプロイ
  3. 03イベント駆動システムの構築
  4. 04TypeScriptでのクラウドインフラ定義

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oakoss/agent-skills --skill amazon-web-services

インストール後、Claude Code で/amazon-web-servicesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
cdk-infrastructure.md
containers-ecs-fargate.md
dynamodb.md
iam-security.md
lambda-functions.md
messaging-sqs-sns.md
networking-cloudfront-route53.md
s3-storage.md

詳細

Amazon Web Services

概要

Amazon Web Services(AWS)は、スケーラブルなアプリケーションを構築するためのクラウドコンピューティングサービスを提供します。AWS SDK for JavaScript v3 はモジュール式パッケージ(@aws-sdk/client-*)を使用し、TypeScript を第一級でサポートします。AWS CDK v2 は、CloudFormation テンプレートに合成される TypeScript の構成要素を使って、インフラストラクチャをコードとして定義します。

使用する場面: クラウドネイティブアプリケーション、サーバーレスアーキテクチャ、コンテナのデプロイ、マネージドデータベース、CDN 配信、イベント駆動システム、またはインフラストラクチャをコードとして構築する場合。

使用しない場面: シンプルな静的サイト(Vercel/Netlify を検討してください)、ローカルでのみ使用する開発ツール、クラウドへのデプロイが不要なプロジェクト。

クイックリファレンス

サービス/パターンAPI/構成要素主なポイント
S3 アップロードPutObjectCommand@aws-sdk/client-s3 からモジュールとしてインポート
S3 署名付き URLgetSignedUrl()@aws-sdk/s3-request-presigner からインポート、最大 7 日間
Lambda 関数new lambda.Function()CDK L2 構成要素。memorySize と timeout を設定
Lambda レイヤーnew lambda.LayerVersion()関数間でコード/依存関係を共有
IAM ポリシーnew iam.PolicyStatement()常に最小権限を使用し、リソースに * を指定しない
DynamoDB テーブルnew dynamodb.Table()シングルテーブル設計。負荷が変動する場合は PAY_PER_REQUEST を使用
DynamoDB GSItable.addGlobalSecondaryIndex()スループットは個別に設定。結果整合性
SQS キューnew sqs.Queue()失敗メッセージには DLQ を使用し、WaitTimeSeconds でロングポーリングを設定
SNS トピックnew sns.Topic()SQS、Lambda、HTTP エンドポイントにファンアウト
CloudFrontnew cloudfront.Distribution()S3 オリジンには OAC を使用し、キャッシュポリシーを設定
RDS/Auroranew rds.DatabaseCluster()接続プーリングには RDS Proxy を使用
ECS Fargatenew ecs_patterns.ApplicationLoadBalancedFargateService()より高レベルのパターン構成要素
Route 53new route53.ARecord()AWS リソースにはエイリアスレコードを使用
Secrets Managersecretsmanager.Secret.fromSecretNameV2()自動ローテーションを設定し、シークレットをハードコードしない
CDK スタックnew cdk.Stack(app, 'Id')デプロイ単位ごとに 1 つのスタックを作成
CDK テストTemplate.fromStack(stack)詳細なアサーションとスナップショットテスト

よくある間違い

間違い正しいパターン
AWS SDK v2(aws-sdk)を使用するバンドルサイズを小さくするため、モジュール式の v3(@aws-sdk/client-*)を使用する
IAM の Action: "*" または Resource: "*"アクションとリソース ARN を具体的に指定する
SQS キューに DLQ がない失敗したメッセージ用のデッドレターキューを必ず設定する
クエリに DynamoDB の scan を使用する先にアクセスパターンを設計し、GSI/LSI を使って Query を使用する
コードや環境変数にシークレットをハードコードするSecrets Manager または SSM Parameter Store を使用する
Lambda でツリーシェイキングをせずに node_modules をバンドルするesbuild でバンドルする NodejsFunction を使用する
ステートフルなリソースに RemovalPolicy を設定していない本番環境のデータベースとバケットには RemovalPolicy.RETAIN を設定する
CRUD 操作ごとに Lambda を作成する関連する操作をまとめ、イベントルーティングを使用する
RDS のコネクションプーリングがないRDS Proxy を使用するか、Lambda ごとに max_connections を制限する
キャッシュポリシーを設定せずに CloudFront を使用するTTL とヘッダーを制御するため、明示的な CachePolicy を定義する
CDK のテストにスナップショットのみを使用する詳細なアサーションとスナップショットテストを組み合わせる
コンテンツタイプを指定せずに署名付き URL を使用するアップロード時に PutObjectCommand で ContentType を指定する

委任

  • インフラストラクチャのパターン:AWS アーキテクチャの調査には Explore エージェントを使用します
  • セキュリティレビュー:IAM ポリシーの監査には Task エージェントを使用します
  • コストの最適化:リソースの適正化には Task エージェントを使用します

docker スキルが利用可能な場合は、コンテナのビルドパターンと Dockerfile の最適化を委任してください。 github-actions スキルが利用可能な場合は、AWS デプロイ向け CI/CD パイプラインのパターンを委任してください。 typescript-patterns スキルが利用可能な場合は、CDK コードで使用する TypeScript の strict モードと型のパターンを委任してください。 application-security スキルが利用可能な場合は、AWS のセキュリティに関するベストプラクティスと脅威モデリングを委任してください。

参考資料

コメント