REL07-BP01 リソースの取得またはスケーリング時に自動化を使用する
クラウドの信頼性の基盤は、インフラストラクチャとリソースのプログラム定義、プロビジョニング、管理です。自動化は、リソースのプロビジョニングを合理化し、一貫性のある安全なデプロイを促進し、インフラストラクチャ全体でリソースを拡張するのに役立ちます。
期待される成果: Infrastructure as Code (IaC) を管理する。バージョン管理システム (VCS) でインフラストラクチャコードを定義して維持します。AWS リソースのプロビジョニングを自動化されたメカニズムに委任し、Application Load Balancer (ALB)、Network Load Balancer (NLB)、Auto Scaling グループなどのマネージドサービスを活用します。継続的インテグレーション/継続的デリバリー (CI/CD) のパイプラインを使用してリソースをプロビジョニングすることで、Auto Scaling 設定の更新を含むリソースの更新がコードの変更によって自動的に開始されます。
一般的なアンチパターン:
-
コマンドラインまたは AWS Management Console (click-ops とも呼ばれる) でリソースを手動でデプロイしている。
-
アプリケーションコンポーネントまたはリソースを緊密に結合し、その結果として柔軟性のないアーキテクチャを作成している。
-
ビジネス要件、トラフィックパターン、または新しいリソースタイプの変化に適応しない柔軟性のないスケーリングポリシーを実装している。
-
予想される需要を満たすためのキャパシティを手動で見積もっている。
このベストプラクティスを活用するメリット: Infrastructure as Code (IaC) を使用すると、インフラストラクチャをプログラムで定義できます。これにより、アプリケーションの変更と同じソフトウェア開発ライフサイクルでインフラストラクチャの変更を管理することができるため、一貫性と再現性が向上し、エラーが発生しやすい手動タスクのリスクが軽減されます。自動化された配信パイプラインで IaC を実装することにより、リソースのプロビジョニングと更新のプロセスをさらに合理化できます。手動による介入を必要とせずに、インフラストラクチャの更新を確実かつ効率的に展開できます。この俊敏性は、変動する需要に合わせてリソースをスケーリングするときに特に重要です。
IaC および配信パイプラインと併せて、動的で自動化されたリソーススケーリングを実現できます。主要なメトリクスをモニタリングし、事前定義されたスケーリングポリシーを適用することにより、Auto Scaling は必要に応じてリソースを自動的にプロビジョニングまたはプロビジョニング解除できるため、パフォーマンスとコスト効率が向上します。これにより、アプリケーションやワークロードの要件の変化に応じて、手動エラーや遅延が発生する可能性が低くなります。
IaC、自動化された配信パイプライン、Auto Scaling を組み合わせることで、組織は自信を持って環境をプロビジョニング、更新、スケーリングできるようになります。この自動化は、応答性、耐障害性、効率的なマネージド型のクラウドインフラストラクチャを維持するために不可欠です。
このベストプラクティスを活用しない場合のリスクレベル: 高
実装のガイダンス
CI/CD パイプラインと AWS アーキテクチャの Infrastructure as Code (IaC) で自動化を設定するには、Git などのバージョン管理システムを選択して IaC テンプレートと設定を保存します。これらのテンプレートは、AWS CloudFormation
次に、これらの IaC テンプレートを CI/CD パイプラインと統合してデプロイプロセスを自動化します。AWS CodePipeline
IaC で Amazon EC2 インスタンス、Amazon ECS タスク、データベースレプリカなどのリソースの Auto Scaling を設定し、必要に応じて自動でスケールアウトとスケールインを提供します。このアプローチは、アプリケーションの可用性とパフォーマンスを向上させ、需要に基づいてリソースを動的に調整することによってコストを最適化します。サポートされているリソースのリストについては、「Amazon EC2 Auto Scaling」と「AWS Auto Scaling」を参照してください。
実装手順
-
ソースコードリポジトリを作成および使用して、インフラストラクチャの設定を制御するコードを保存します。このリポジトリに変更をコミットして、進行中の変更を反映します。
-
インフラストラクチャを最新の状態に保ち、意図した状態からの不整合 (ドリフト) を検出するには、AWS CloudFormation などの Infrastructure as Code ソリューションを選択します。
-
IaC プラットフォームを CI/CD パイプラインと統合してデプロイを自動化します。
-
リソースの自動スケーリングに適したメトリクスを決定して収集します。
-
ワークロードコンポーネントに適したスケールアウトおよびスケールインポリシーを使用して、リソースの自動スケーリングを設定します。予測可能な使用パターンには、スケジュールされたスケーリングの使用を検討してください。
-
デプロイをモニタリングして障害とリグレッションを検出します。CI/CD プラットフォーム内にロールバックメカニズムを実装して、必要に応じて変更を元に戻します。
リソース
関連ドキュメント:
関連動画: