翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
内部開発プラットフォームのゴールデンパスの例
このセクションでは、ゴールデンパスの以下の例を示します。
サーバーレスワークロード
開発
-
ローカルの開発とテストには AWS Serverless Application Model (AWS SAM) CLI を使用します。
-
統合AWS テストには、統合アプリケーションテストキット
を使用します。 -
負荷テスト中は、Amazon CodeGuru Profiler を使用してアプリケーションを微調整します。
アプリケーションの設計とデプロイ
-
Infrastructure as Code AWS Cloud Development Kit (AWS CDK) には を使用します。
-
CDK Pipelines を使用してインフラストラクチャとアプリケーションのデプロイを自動化します。
-
リソースを足場するには、コンテナイメージを使用してAWS Lambda関数を作成し、Amazon Elastic Container Registry (Amazon ECR) に保存します。
-
汎用イメージで Lambda
イメージを使用します。 -
ネットワークの場合、VPC フローログが有効になっている仮想プライベートクラウド (VPCs) に Lambda 関数をデプロイし、インターフェイス VPC エンドポイントを使用してプライベートリソースにアクセスすることをお勧めします。
-
Amazon API Gateway を使用して、HTTP リクエストを Lambda 関数にルーティングします。
-
バージョンを使用して、Lambda 関数のデプロイを管理します。
-
バリデータで動的設定AWS AppConfigに を使用します。
-
AWS Secrets Manager を使用してシークレットを取得します。
-
Canary テストでは、エイリアスルーティング設定を使用してトラフィックの一部を 2 番目の Lambda 関数バージョンに送信します。
-
で自動ロールバックを使用し AWS CodeDeploy 、Amazon CloudWatch でアラームを設定してロールバックを開始します。
オペレーション
-
API Gateway アクセスログを有効にします。
-
API Gateway リクエスト ID、拡張リクエスト ID、および Lambda リクエスト ID を記録します。
-
Lambda 関数には、できれば JSON 形式の構造化ログを使用します。
-
CloudWatch Logs API を呼び出す代わりに、標準出力 (stdout) にログを出力します。
-
AWS Lambda Powertools
を使用してサーバーレスのベストプラクティスを実装します。 -
組織の要件に従ってログの保持期間を設定します。
-
CloudWatch Lambda Insights がコールドスタートなどの診断情報を収集、集約、要約できるようにします。これにより、Lambda 関数の問題を分離して迅速に解決できます。
-
CloudWatch で、、
ErrorsThrottles、ProvisionedConcurrencySpilloverInvocations、およびDurationメトリクスを使用して Lambda 関数をモニタリングします。詳細については、「Lambda 関数メトリクスの使用」を参照してください。 -
CloudWatch では、4xx エラーコード、5xx エラーコード、レイテンシーメトリクスを使用して APIsモニタリングします。
-
を使用してAWS X-Ray、アプリケーションが処理するリクエストに関するデータを収集します。分散コンポーネントとサービスを使用するアプリケーションの場合、これにより問題と最適化の機会をすばやく特定できます。
Amazon Elastic Container Service (Amazon ECS)
開発
-
Amazon Elastic Container Service (Amazon ECS) コンテナイメージのベストプラクティスに従います。
-
Amazon Elastic Container Registry (Amazon ECR) を使用してコンテナイメージを保存し、継続的なセキュリティスキャンを行います。
アプリケーションの設計とデプロイ
-
ベストプラクティスに従って、Amazon ECS でアプリケーションを設計します。
-
インフラストラクチャとアプリケーションの両方のデプロイAWS Cloud Development Kit (AWS CDK)で、Infrastructure as Code と CI/CD パイプラインに を使用します。
-
Amazon ECS Service Connect を使用して、サービスの検出、接続、トラフィックモニタリングのための Amazon ECS 設定を管理します。
-
水平方向にスケールするコンテナ化されたアプリケーションにはAmazon Elastic File System (Amazon EFS) を使用します。アプリケーションでミリ秒未満のレイテンシーが必要で、共有ファイルシステムを必要としない場合は、Amazon Elastic Block Store (Amazon EBS) を使用します。
オペレーション
-
は、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのサーバーやクラスターを管理することなく、ワークロードをコンテナ化するマネージド型の方法AWS Fargateを提供するため、 を使用します。
-
で Blue/Green デプロイを使用します AWS CodeDeploy。
-
Amazon CloudWatch Container Insights を使用して、コンテナ化されたアプリケーションとマイクロサービスからメトリクスとログを収集、集計、要約します。
-
FireLens for Amazon ECS ログドライバーを有効にし、 AWS for Fluent Bit
サイドカーコンテナを使用してパフォーマンスを向上させ、Amazon Simple Storage Service (Amazon S3) や CloudWatch ロググループなどの別々の場所にログストリームをリダイレクトします。
追加リソース
-
Amazon ECS ブループリント
(GitHub)
Amazon Elastic Kubernetes Service (Amazon EKS)
開発
-
Amazon Elastic Container Service (Amazon ECS) コンテナイメージのベストプラクティスに従います。
-
Amazon Elastic Container Registry (Amazon ECR) を使用してコンテナイメージを保存し、継続的なセキュリティスキャンを行います。
アプリケーションの設計とデプロイ
-
Helm
を使用してアプリケーションテンプレートをパッケージ化します。 -
Argo CD
を使用してアプリケーションをデプロイし、GitOps のアプローチに従います。 -
AWS Load Balancer Controller を使用して、Kubernetes クラスターの Elastic Load Balancing リソースを管理します。
-
cert-manager
と AWS Private Certificate Authority Issuer を使用して TLS 証明書を管理します。 -
ストレージオプションには、Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) ドライバーまたは Amazon Elastic File System (Amazon EFS) CSI ドライバーを使用します。
-
ExternalDNS
を使用して、Kubernetes サービスを Amazon Route 53 と統合します。 -
External Secrets Operator
を使用して、シークレットを AWS Secrets Manager または AWS Systems Manager Parameter Store に保存します。 -
Crossplane
を使用して、Kubernetes クラスターからインフラストラクチャを管理します AWS 。
オペレーション
-
ネットワークポリシーには Calico
を使用し、ポリシーコントローラーとして Gatekeeper を使用します。 -
クラスターの自動スケーリングには Karpenter
を使用します。 -
オブザーバビリティには、Amazon Managed Service for Prometheus と Amazon Managed Grafana を使用します。
-
Kubecost
を使用して、インフラストラクチャのコストをリアルタイムで可視化します。
追加リソース