aws-solution-architect について
スタートアップチーム向けのAWSアーキテクチャ設計スキルです。拡張性、セキュリティ、コストに配慮したクラウドネイティブ設計を扱い、構成案やインフラテンプレート、コスト見積もり、評価、導入・移行の指針を提示します。
主な機能
- 01サーバーレス・イベント駆動型設計
- 02Infrastructure as Codeテンプレートの生成
- 03拡張性とデータストレージの計画
- 04コスト最適化の提案
- 05セキュリティ・コンプライアンス評価
- 06デプロイと移行のガイダンス
活用シーン
- 01サーバーレスアプリのバックエンド設計
- 02Webアプリ向けインフラテンプレートの作成
- 03AWSコストとセキュリティ対策の確認
- 04段階的なクラウド移行の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alirezarezvani/ claude-code-skill-factory --skill aws-solution-architectインストール後、Claude Code で/aws-solution-architectを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
architecture_designer.pycost_optimizer.pyexpected_output.jsonHOW_TO_USE.mdsample_input.jsonserverless_stack.py詳細
スタートアップ向け AWS ソリューションアーキテクト
このスキルは、スタートアップ企業向けに包括的な AWS アーキテクチャ設計の専門知識を提供します。サーバーレステクノロジー、スケーラビリティ、コスト最適化、最新のクラウドネイティブパターンを重視しています。
機能
- サーバーレスアーキテクチャ設計:Lambda、API Gateway、DynamoDB、EventBridge、Step Functions、AppSync
- Infrastructure as Code:CloudFormation、CDK(Cloud Development Kit)、Terraform テンプレート
- スケーラブルなアプリケーションアーキテクチャ:自動スケーリング、ロードバランシング、マルチリージョンデプロイ
- データおよびストレージソリューション:S3、RDS Aurora Serverless、DynamoDB、ElastiCache、Neptune
- イベント駆動型アーキテクチャ:EventBridge、SNS、SQS、Kinesis、Lambda トリガー
- API 設計:API Gateway(REST および WebSocket)、AppSync(GraphQL)、レート制限、認証
- 認証および認可:Cognito、IAM、きめ細かなアクセス制御、フェデレーション ID
- CI/CD パイプライン:CodePipeline、CodeBuild、CodeDeploy、GitHub Actions との統合
- モニタリングおよびオブザーバビリティ:CloudWatch、X-Ray、CloudTrail、アラーム、ダッシュボード
- コスト最適化:リザーブドインスタンス、Savings Plans、適正サイズ化、予算アラート
- セキュリティのベストプラクティス:VPC 設計、セキュリティグループ、WAF、Secrets Manager、暗号化
- マイクロサービスパターン:サービスメッシュ、API コンポジション、サーガパターン、CQRS
- コンテナオーケストレーション:ECS Fargate、EKS(Kubernetes)、App Runner
- コンテンツ配信:CloudFront、エッジロケーション、オリジンシールド、キャッシュ戦略
- データベース移行:DMS、スキーマ変換、ダウンタイムゼロの移行
入力要件
アーキテクチャ設計に必要な情報:
- アプリケーションの種類:Web アプリ、モバイルバックエンド、データパイプライン、マイクロサービス、SaaS プラットフォーム
- トラフィックの想定:1 日あたりのユーザー数、1 秒あたりのリクエスト数、地理的な分布
- データ要件:ストレージの必要量、データベースの種類、バックアップ/保持ポリシー
- 予算の制約:月間支出の上限、コスト最適化の優先事項
- チームの規模と専門知識:開発者数、AWS の経験レベル、DevOps の成熟度
- コンプライアンス要件:GDPR、HIPAA、SOC 2、PCI-DSS、データレジデンシー
- 可用性要件:SLA の目標、稼働時間の目標、災害復旧の RPO/RTO
対応する形式:
- アプリケーション要件のテキストによる説明
- 構造化されたアーキテクチャ仕様を含む JSON
- 既存のアーキテクチャ図またはドキュメント
- 現在の AWS リソース一覧(最適化用)
出力形式
結果には以下が含まれます:
- アーキテクチャ図:draw.io または Lucidchart 形式の視覚的な図
- CloudFormation/CDK テンプレート:デプロイ可能な Infrastructure as Code(IaC)
- Terraform 設定:マルチクラウドに対応したインフラストラクチャ定義
- コスト見積もり:最適化の提案を含む詳細な月額コスト内訳
- セキュリティ評価:ベストプラクティスのチェックリスト、コンプライアンス検証
- デプロイガイド:実装手順の詳細
- ランブック:運用手順、トラブルシューティングガイド、災害復旧計画
- 移行戦略:段階的な移行計画、ロールバック手順
使用方法
"Lambda と DynamoDB を使用して、ユーザー数 10 万人のモバイルアプリ向けサーバーレス API バックエンドを設計する" "マルチテナントの SaaS プラットフォーム向けに、コストを最適化したアーキテクチャを作成する" "自動スケーリングを備えた 3 層 Web アプリケーションの CloudFormation テンプレートを生成する" "EventBridge と Step Functions を使用して、イベント駆動型マイクロサービスアーキテクチャを設計する" "コストを 30% 削減できるよう、現在の AWS 環境を最適化する"
スクリプト
architecture_designer.py:アーキテクチャパターンとサービスの推奨事項を生成しますserverless_stack.py:サーバーレスアプリケーションスタック(Lambda、API Gateway、DynamoDB)を作成しますcost_optimizer.py:AWS のコストを分析し、最適化の推奨事項を提示しますiac_generator.py:CloudFormation、CDK、または Terraform のテンプレートを生成しますsecurity_auditor.py:AWS セキュリティのベストプラクティスの検証とコンプライアンスチェックを行います
アーキテクチャパターン
1. サーバーレス Web アプリケーション
ユースケース:SaaS プラットフォーム、モバイルバックエンド、トラフィックの少ない Web サイト
スタック:
- フロントエンド:S3 + CloudFront(静的ホスティング)
- API:API Gateway + Lambda
- データベース:DynamoDB または Aurora Serverless
- 認証:Cognito
- CI/CD:Amplify または CodePipeline
メリット:サーバー管理が不要、従量課金、自動スケーリング、運用負荷の軽減
コスト:小規模から中規模のトラフィックで月額 50~500 ドル
2. イベント駆動型マイクロサービス
ユースケース:複雑なビジネスワークフロー、非同期処理、疎結合システム
スタック:
- イベント:EventBridge(イベントバス)
- 処理:Lambda 関数または ECS Fargate
- キュー:SQS(失敗時のデッドレターキュー)
- 状態管理:Step Functions
- ストレージ:DynamoDB、S3
メリット:疎結合、個別のスケーリング、障害の分離、容易なテスト
コスト:イベント量に応じて月額 100~1000 ドル
3. モダンな 3 層アプリケーション
ユースケース:動的コンテンツを扱う従来型 Web アプリ、e コマース、CMS
スタック:
- ロードバランサー:ALB(Application Load Balancer)
- コンピューティング:ECS Fargate または EC2 Auto Scaling
- データベース:RDS Aurora(MySQL/PostgreSQL)
- キャッシュ:ElastiCache(Redis)
- CDN:CloudFront
- ストレージ:S3
メリット:実績のあるパターン、理解しやすい、柔軟なスケーリング
コスト:トラフィックとインスタンスサイズに応じて月額 300~2000 ドル
4. リアルタイムデータ処理
ユースケース:分析、IoT データの取り込み、ログ処理、ストリーミング
スタック:
- 取り込み:Kinesis Data Streams または Firehose
- 処理:Lambda または Kinesis Analytics
- ストレージ:S3(データレイク)+ Athena(クエリ)
- 可視化:QuickSight
- アラート:CloudWatch + SNS
メリット:数百万件のイベントに対応、リアルタイムのインサイト、コスト効率の高いストレージ
コスト:データ量に応じて月額 200~1500 ドル
5. GraphQL API バックエンド
ユースケース:モバイルアプリ、シングルページアプリケーション、柔軟なデータクエリ
スタック:
- API:AppSync(マネージド GraphQL)
- リゾルバー:Lambda または DynamoDB との直接統合
- データベース:DynamoDB
- リアルタイム:AppSync サブスクリプション(WebSocket)
- 認証:Cognito または API キー
メリット:単一のエンドポイント、過剰/不足フェッチの削減、リアルタイムサブスクリプション
コスト:中程度の使用量で月額 50~400 ドル
6. マルチリージョンの高可用性
ユースケース:グローバルアプリケーション、災害復旧、コンプライアンス要件
スタック:
- DNS:Route 53(位置情報ルーティング)
- CDN:複数のオリジンを使用する CloudFront
- コンピューティング:マルチリージョンの Lambda または ECS
- データベース:DynamoDB Global Tables または Aurora Global Database
- レプリケーション:S3 のクロスリージョンレプリケーション
メリット:グローバルでの低レイテンシ、災害復旧、データ主権
コスト:単一リージョンの 1.5~2 倍
ベストプラクティス
サーバーレス設計の原則
- ステートレス関数 - 状態は DynamoDB、S3、または ElastiCache に保存します
- 冪等性 - 再試行を適切に処理し、一意のリクエスト ID を使用します
- コールドスタートの最適化 - 重要な処理経路にはプロビジョニング済み同時実行数を使用し、パッケージサイズを最適化します
- タイムアウト管理 - 適切なタイムアウトを設定し、長時間の処理には Step Functions を使用します
- エラー処理 - 再試行ロジック、デッドレターキュー、指数バックオフを実装します
コストの最適化
- 適切なサイズの選択 - 小さく始めてメトリクスを監視し、実際の使用量に基づいてスケールします
- 予約キャパシティ - 使用量を予測できるワークロードには Savings Plans または Reserved Instances を使用します
- S3 ライフサイクルポリシー - より安価なストレージ階層(IA、Glacier)に移行します
- Lambda メモリの最適化 - コストとパフォーマンスのバランスを見ながら、異なるメモリ設定をテストします
- CloudWatch ログの保持期間 - 適切な保持期間を設定します(ほとんどの場合は 7~30 日)
- NAT Gateway の代替手段 - VPC エンドポイントを使用し、開発環境では NAT を 1 つにすることを検討します
セキュリティの強化
- 最小権限の原則 - 最小限の権限を持つ IAM ロール
- あらゆる場面での暗号化 - 保存時(KMS)および転送時(TLS/SSL)
- ネットワークの分離 - プライベートサブネット、セキュリティグループ、NACL
- シークレット管理 - Secrets Manager または Parameter Store を使用し、ハードコードは避けます
- API の保護 - WAF ルール、レート制限、API キー、OAuth2
- 監査ログ - API 呼び出しには CloudTrail、ネットワークトラフィックには VPC Flow Logs
スケーラビリティの設計
- 垂直スケーリングより水平スケーリング - 大型インスタンスではなく、小型インスタンスを増やしてスケールアウトします
- データベースのシャーディング - テナント、地理的位置、または時間でデータを分割します
- 読み取りレプリカ - プライマリデータベースから読み取りトラフィックをオフロードします
- キャッシュレイヤー - CloudFront(エッジ)、ElastiCache(アプリケーション)、DAX(DynamoDB)
- 非同期処理 - 重要度の低い操作にはキュー(SQS)を使用します
- オートスケーリングポリシー - ターゲット追跡(CPU、リクエスト)とステップスケーリング
DevOps と信頼性
- Infrastructure as Code - バージョン管理、ピアレビュー、自動テスト
- ブルー/グリーンデプロイ - ダウンタイムなしのリリース、即時ロールバック
- カナリアリリース - 少量のトラフィックで新しいバージョンをテストします
- ヘルスチェック - アプリケーションレベルのヘルスエンドポイント、グレースフルデグラデーション
- カオスエンジニアリング - 障害シナリオをテストし、復旧手順を検証します
- モニタリングとアラート - 重要なメトリクスに対する CloudWatch アラームを設定します
サービス選択ガイド
コンピューティング
- Lambda: イベント駆動型、短時間のタスク(<15 min)、変動するトラフィック
- Fargate: コンテナ化されたアプリ、長時間実行プロセス、予測可能なトラフィック
- EC2: カスタム構成、GPU/FPGA の要件、Windows アプリ
- App Runner: ソースコードからのシンプルなコンテナデプロイ
データベース
- DynamoDB: キー・バリュー型、ドキュメントストア、サーバーレス、1 桁ミリ秒のレイテンシ
- Aurora Serverless: リレーショナル DB、変動するワークロード、オートスケーリング
- Aurora Standard: 高性能なリレーショナル DB、予測可能なトラフィック
- RDS: 従来型のデータベース(MySQL、PostgreSQL、MariaDB、SQL Server)
- DocumentDB: MongoDB 互換のドキュメントストア
- Neptune: 関連データ向けのグラフデータベース
- Timestream: 時系列データ、IoT メトリクス
ストレージ
- S3 Standard: 頻繁なアクセス、低レイテンシ
- S3 Intelligent-Tiering: コストの自動最適化
- S3 IA (Infrequent Access): バックアップ、アーカイブ(最低 30 日)
- S3 Glacier: 長期アーカイブ、コンプライアンス
- EFS: ネットワークファイルシステム、インスタンス間での共有ストレージ
- EBS: EC2 向けブロックストレージ、高 IOPS
メッセージングとイベント
- EventBridge: イベントバス、疎結合なマイクロサービス
- SNS: パブリッシュ/サブスクライブ、ファンアウト通知
- SQS: メッセージキューイング、疎結合化、バッファリング
- Kinesis: リアルタイムのストリーミングデータ、分析
- MQ: マネージドメッセージブローカー(RabbitMQ、ActiveMQ)
API と統合
- API Gateway: REST API、WebSocket、スロットリング、キャッシュ
- AppSync: GraphQL API、リアルタイムサブスクリプション
- AppFlow: SaaS 統合(Salesforce、Slack など)
- Step Functions: ワークフローのオーケストレーション、ステートマシン
スタートアップ特有の考慮事項
MVP(実用最小限の製品)アーキテクチャ
目標: 迅速なローンチ、最小限のインフラストラクチャ
おすすめ:
- Amplify(フルスタックデプロイ)
- Lambda + API Gateway + DynamoDB
- 認証には Cognito
- フロントエンドには CloudFront + S3
コスト: $20-100/month セットアップ時間: 1-3 days
成長段階(ユーザー数 10k-100k への拡大)
目標: 成長に対応し、コスト効率を維持する
追加:
- キャッシュ用の ElastiCache
- 複雑なクエリ用の Aurora Serverless
- CloudWatch ダッシュボードとアラーム
- CI/CD パイプライン(CodePipeline)
- マルチ AZ デプロイ
コスト: $500-2000/month 移行時間: 1-2 weeks
スケールアップ(ユーザー数10万人以上、シリーズA以降)
目標:信頼性、可観測性、グローバル展開
追加項目:
- マルチリージョンデプロイ
- DynamoDB グローバルテーブル
- 高度なモニタリング(X-Ray、サードパーティ製APM)
- DDoS対策のためのWAFとShield
- 専用サポートプラン
- リザーブドインスタンス/Savings Plans
コスト:月額3,000~10,000ドル 移行期間:1~3か月
よくある回避すべき落とし穴
技術的負債
- 初期段階での過剰な設計 - ユーザー数が100人の段階で、1,000万人向けに構築しないでください
- モニタリング不足 - 初日から基本的なモニタリングを設定してください
- コストの無視 - すぐにCost Explorerと請求アラートを有効にしてください
- 単一リージョンへの依存 - 最初からマルチリージョンを計画してください
セキュリティ上の誤り
- S3バケットの公開 - バケットポリシーを使用し、パブリックアクセスをブロックしてください
- 過度に許容的なIAM設定 - 「*」権限を避け、特定のリソースを指定してください
- 認証情報のハードコード - IAMロールとSecrets Managerを使用してください
- データの暗号化漏れ - デフォルトで暗号化を有効にしてください
パフォーマンスの問題
- キャッシュなし - CloudFrontとElastiCacheを早期に導入してください
- 非効率なクエリ - インデックスを使用し、DynamoDBでのスキャンを避けてください
- Lambdaパッケージの肥大化 - レイヤーを使用し、依存関係を最小限に抑えてください
- N+1クエリ - DataLoaderパターンを実装し、操作をバッチ処理してください
想定外のコスト
- 削除されていないリソース - すべてにタグを付け、定期的に確認してください
- データ転送コスト - 可能な限り、同じAZ/リージョン内にトラフィックを留めてください
- NAT Gatewayの料金 - AWSサービスにはVPCエンドポイントを使用してください
- CloudWatch Logsの蓄積 - 保持ポリシーを設定してください
コンプライアンスとガバナンス
データの保管場所
- 特定のリージョンを使用してください(GDPRの場合はeu-west-1)
- S3バケットのレプリケーション制限を有効にしてください
- Route 53の位置情報ルーティングを設定してください
HIPAAコンプライアンス
- BAAの対象となるサービスのみを使用してください
- 保存時と転送時の暗号化を有効にしてください
- 監査ログ(CloudTrail)を実装してください
- プライベートサブネットを使用してVPCを設定してください
SOC 2/ISO 27001
- コンプライアンスルールのためにAWS Configを有効にしてください
- AWS Audit Managerを使用してください
- 最小権限アクセスを実装してください
- 定期的なセキュリティ評価を実施してください
制限事項
- Lambdaの制限:実行時間は最大15分、メモリは最大10GB、コールドスタートによる遅延
- API Gatewayの制限:タイムアウトは29秒、ペイロードサイズは10MB
- DynamoDBの制限:項目サイズは400KB、デフォルトでは結果整合性のある読み取り
- リージョンごとの利用可能性:すべてのリージョンですべてのサービスを利用できるわけではありません
- ベンダーロックイン:一部のサーバーレスサービスはAWS固有です(抽象化レイヤーを検討してください)
- 学習曲線:AWSの専門知識とDevOpsの知識が必要です
- デバッグの複雑さ:分散システムのトラブルシューティングは、モノリスよりも困難です
参考資料
- AWS Well-Architected Framework:https://aws.amazon.com/architecture/well-architected/
- AWS Architecture Center:https://aws.amazon.com/architecture/
- Serverless Land:https://serverlessland.com/
- AWS Pricing Calculator:https://calculator.aws/
- AWS Cost Explorer:支出の追跡と分析
- AWS Trusted Advisor:ベストプラクティスの自動チェック
- CloudFormation Templates:https://github.com/awslabs/aws-cloudformation-templates
- AWS CDK Examples:https://github.com/aws-samples/aws-cdk-examples