Amazon DOP-C02: Systems Manager、パッチ適用、運用自動化 — 学習ガイド
こちらの一部です: AWS DevOps Engineer Professional DOP-C02 — 学習ガイド. 検証済みの解答で練習: Amazon試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
概要
AWSでの運用自動化は、AWS Systems Managerを中心に展開されます。これはEC2、オンプレミスサーバー、エッジにわたるアクセス制御、設定、パッチ適用、修復を統合します。周辺サービスとして、ゴールデンイメージパイプライン (EC2 Image Builder)、ライセンスガバナンス (AWS License Manager)、継続的な最適化 (AWS Trusted AdvisorおよびAWS Compute Optimizer)、コスト管理 (Savings Plans) が提供されます。目標は、イベント駆動型で、アカウントやリージョンを横断して強制可能な、標準化され監査可能な運用を実現することです。
Systems Managerのアクセス、パラメータ、インベントリ、コンプライアンス
Systems Manager Session Managerは、インバウンドポートを開けたりSSHキーを管理したりすることなく、マネージドインスタンスへのインタラクティブで監査可能なシェルアクセスを提供します。接続はAWSコントロールプレーン経由で行われ、オプションでプライベート接続のためにVPCインターフェイスエンドポイントを使用できます。ポートフォワーディングにより、インスタンスの背後にあるローカルまたはリモートのサービスへのセキュアなアクセスが可能になります。
- ローカルポートフォワーディングセッションは、ローカルワークステーションのポートをターゲットインスタンスのポートにルーティングします (例: localhost:8080をinstance:8080に転送)。
- リモートホストポートフォワーディングは、ローカルポートをインスタンス経由で、そのインスタンスから到達可能な別のプライベートホストにルーティングします。 Session Managerは、セッショントランスクリプトとI/Oの監査ログをAmazon S3とAmazon CloudWatch Logsの両方に一元的に記録することをサポートしており、オプションでKMS暗号化も利用できます。APIアクティビティ (StartSession, TerminateSession) はAWS CloudTrailに記録されます。Session Managerの設定を通じて、暗号化の要求、ポートフォワーディングやクリップボードの制限、両方の宛先へのログ記録といった制御を強制します。
Systems Manager Parameter Storeは、設定とシークレットを一元管理します。アプリケーションのシークレットには、カスタマーマネージドKMSキーで暗号化されたSecureStringパラメータを使用します。値を階層的なパス (例: /prod/payments/db/password) に整理することで、環境およびアプリケーションのスコープ設定、ポリシーのスコープ設定、一括操作が可能になります。パラメータのバージョニングは不変の履歴を維持し、ラベル (currentなど) を使用すると、コードを変更することなくアプリケーションの参照先を動的に変更できます。CloudFormation、CodeBuild、その他のサービスにおける動的参照は、デプロイ時または実行時にパラメータを解決し、シークレットのスプロール化を防ぎます。標準ティアは基本的なスループットと最大4KBの値サイズを提供し、アドバンストティアはパラメータポリシー (有効期限、ローテーション通知)、より大きな値 (8KB)、より高いスループットをサポートします。EventBridgeルールはパラメータの変更を通知でき、リソースポリシーは必要に応じてアカウント間のパラメータ共有を可能にします。
Systems Manager InventoryとComplianceは、フリートレベルの可視性を提供します。Inventory (State Managerのアソシエーションを介して有効化) は、インストール済みソフトウェアパッケージ、Windowsの役割、ネットワークアダプター、カスタムインベントリアイテムなどのメタデータを収集します。Resource Data Syncを使用してS3にエクスポートし、Athena/Glueで分析したり、Systems Manager Explorerでフリート全体のステータスを表示したりします。Complianceはパッチ適用とアソシエーションの状態を集約します。これにより、どのインスタンスにパッチが適用されていないか、または設定ベースラインに失敗したかを確認できます。これは、自動修復、監査、ライセンス検出に必要な運用データの基盤を構築します。
Patch Managerと運用のオーケストレーション
Patch Managerは、パッチベースライン、パッチグループ、メンテナンスウィンドウを使用して、OSとアプリケーションのパッチ適用を標準化します。
パッチベースラインは、何をいつ承認するかを定義します。各OSファミリーに対して、AWSが提供するデフォルトから始めるか、以下を含むカスタムベースラインを構築できます。
- 製品/バージョン、分類 (例: Security, Bugfix)、重大度、アーキテクチャ別の自動承認ルール
- 承認遅延 (例: セキュリティパッチをリリースから7日後に自動承認)
- 明示的な許可リストと拒否リスト
- パッチソース/リポジトリ (例: 内製ソフトウェア用にカスタムのyumまたはaptリポジトリを追加) ベースラインをパッチグループに関連付けます。パッチグループは、特定の価を持つPatch Groupタグによって識別されるインスタンスのセットです (例: Patch Group=linux-prod)。この関連付けにより、適切なベースラインが適切なサーバーをターゲットにすることが保証されます。曖昧さを避けるため、各インスタンスは単一のパッチグループにのみ所属させるべきです。パッチ操作では、コンプライアンスを計算するためにOperation=Scanを指定したAWS-RunPatchBaselineドキュメントを使用し、承認されたパッチを適用するためにOperation=Installを使用します。同時実行数、エラーしきい値、再起動の動作を制御します。特定のパッケージを緊急に固定するには、InstallOverrideListを使用します。コンプライアンス結果はSystems Manager Complianceに送られ、そこでアラートを発行したり修復したりできます。
メンテナンスウィンドウは、破壊的な操作を安全な時間枠に限定します。スケジュール (rate/cron)、期間、およびウィンドウ終了間際に新しいタスクが開始されるのを防ぐためのカットオフを定義します。タグまたはリソースグループでターゲットを登録し、次に優先度付きでタスクを登録します。Patch Managerはネイティブに統合されています。パッチグループとベースラインに対してAWS-RunPatchBaselineタスクを登録します。タスクの同時実行数とエラーしきい値の設定は、障害発生時の影響範囲 (blast radius) の拡大を防ぎます。
Systems Manager Automationは、繰り返し可能で監査可能な修復を運用化します。組み込みおよびカスタムのランブックを使用して、パッチ適用前後のアクティビティ (例: ロードバランサーからの切り離し、アプリサービスの停止、パッチ適用、スモークテストの実行、再登録) をオーケストレーションし、AWS Configによる修復を通じて制御を強制します。Automationは、承認 (Change Manager)、変更カレンダー (ブラックアウト期間中の実行を防止)、およびassume-roleによるアカウント/リージョン間の実行をサポートします。ヘルスイベント、設定のドリフト、またはアラームに反応するAmazon EventBridgeルールですべてを結びつけ、自己修復のためにターゲットを絞ったAutomationの実行をトリガーします。
EC2 Image Builderによるゴールデンイメージ
不変イメージは、構成ドリフトを削減し、パッチ適用ウィンドウを短縮します。EC2 Image Builderは、パイプライン、レシピ、配布設定を使用して、AMIの作成と配布をコード化します。
- イメージレシピは、ベースイメージ (例: 最新のAmazon Linux 2023)、コンポーネント (SSMエージェントのインストール、言語ランタイム、セキュリティ強化などのYAMLで定義されたビルド/テストステップ)、およびセマンティックバージョニングを指定します。コンポーネントはレシピ間で再利用でき、ベースラインの統制を徹底できます。
- パイプラインは、インフラストラクチャ設定 (VPC/サブネット/インスタンスプロファイル/セキュリティグループ)、ビルドステップ、テストステップ、スケジュール (例: 毎週) といったエンドツーエンドのワークフローを定義します。Image Builderは、ビルド時にOSパッチを自動的に適用し、テストを実行し、合格しないビルドは失敗させます。
- 配布設定は、イメージの複製と共有を管理します。選択したリージョンへのAMIの公開、アカウントまたはAWS OrganizationsのOUへの起動権限の追加、EBS暗号化の強制 (KMSキーを使用)、出力へのタグ付けなどを行います。Image Builderは、最新のAMIのARNをSystems Manager パラメータストア (例: /prod/images/web/latest) に発行できます。これにより、Auto Scalingグループ、CodePipeline、CloudFormationは、手動更新なしで承認済みの最新イメージを利用できます。
このパイプラインアプローチはPatch Managerと組み合わせることができます。AMIに頻繁にパッチを適用してインスタンスのパッチ差分を最小限に抑え、その後、長期間稼働するサーバーにはメンテナンスウィンドウを使用して、より小さな差分パッチを適用します。
ガバナンス、ライセンス、コスト最適化
AWS License Manager は、ライセンス持ち込み (BYOL) と Marketplace のエンタイトルメントを管理します。ベンダーのルール (コア、ソケット、vCPU、ホストへのアフィニティ、仮想化の制約) をモデル化したライセンス設定を定義し、ハード適用またはソフト適用を選択し、その設定を AMI、起動テンプレート、またはインスタンスに関連付けます。License Manager は、Systems Manager Inventory を介してソフトウェアを検出し、使用状況を追跡して、コンプライアンスに違反する起動を防ぎます。License Manager のエンタイトルメントを使用する Marketplace 製品については、アカウント間で権限を共有し、委任管理者を使用してエンタイトルメントの使用状況を一元的に追跡できます。
AWS Trusted Advisor は、ベストプラクティスに照らして環境を継続的に評価します。カテゴリには、コスト最適化、セキュリティ、フォールトトレランス、サービス制限、パフォーマンス、優れた運用効率が含まれます。ビジネスまたはエンタープライズサポートを利用すると、すべてのチェック項目と AWS Support API にアクセスして、プログラムで結果を更新および取得できます。EventBridge との統合を使用して、チェックステータスの変更を修復ワークフローにルーティングし (例えば、Automation ランブックをトリガーして S3 のデフォルト暗号化を有効にしたり、バケットのパブリックアクセスを削除したりする)、組織ビューを有効にして、スコープ指定された IAM アクセスと適切なチームへの通知により、アカウント全体で集約します。
コスト最適化は継続的かつデータ駆動型です:
- ライトサイジング: Cost Explorer のライトサイジング推奨事項と AWS Compute Optimizer のインサイトを組み合わせます。Compute Optimizer は、インスタンス、Auto Scaling グループ、EBS ボリューム、Lambda 関数、および ECS on Fargate のメトリクスを分析し、予測される節約額とパフォーマンスリスクとともに最適な設定を推奨します。また、スループット/IOPS を調整した gp3 に移行すべき gp2 ボリュームを特定することもできます。推奨事項をメンテナンスウィンドウや Automation ランブックと組み合わせて、安全な変更を実行します。
- Savings Plans: EC2、Fargate、Lambda を幅広くカバーするには Compute Savings Plans を、特定のファミリー/リージョンで最大の割引を得るには EC2 Instance Savings Plans を使用します。1 年または 3 年間のコミットメントを $/hour で行い、支払いオプション (全額前払いなし/一部前払い/全額前払い) を選択し、一括請求を介してアカウント間で集約し、過去のオンデマンド支出に基づいてコミットメントのサイズを決定します。使用率とカバレッジを監視し、ワークロードの進化に合わせて調整します。Savings Plans の対象外のサービス (例えば、RDS、OpenSearch、Redshift、DynamoDB) については、引き続きリザーブドインスタンスを使用します。
- 運用上のイネーブラー: Systems Manager Automation と Change Manager を使用して、非本番環境の停止/起動のスケジュール、インスタンススケジュールの強制、承認とガードレールを伴うライトサイジングおよび gp2→gp3 移行の展開を行います。Trusted Advisor のコストチェックと予算/アラートでこれを補強します。
実践的な問題シナリオ
企業: Airbnb
課題: Airbnb は、データ処理と Web サービスのために、マルチアカウント、マルチリージョンの EC2 ワークロードを運用しています。セキュリティ要件として監査可能な SSH なしのアクセスが求められ、コンプライアンス要件としてデフォルトおよびカスタムリポジトリからのタイムリーなセキュリティパッチ適用が義務付けられています。プラットフォームチームは、パフォーマンスリスクなしに AMI を標準化し、コストを削減する必要があります。ソフトウェアベンダーは、特定の分析ノードに対してコアベースのライセンスを課しています。運用部門は、イベント駆動型の修復とアカウント全体にわたる経営層向けの可視性を求めています。
ステップバイステップのアプローチ:
- Systems Manager Session Manager でセキュアなアクセスを強制する
- SSM/EC2Messages 用の VPC エンドポイントを設定し、KMS 暗号化を使用して CloudWatch Logs と S3 への Session Manager のロギングを有効にします。SSH を無効にし、シェルアクセスには Session Manager を必須とします。ポートフォワーディングを有効にして、エンジニアがトラブルシューティング中に内部サービスに安全にアクセスできるようにします。
- 理由: インバウンドの攻撃対象領域を排除し、監査証跡を一元化し、VPN や踏み台サーバーなしで制御されたポートフォワーディングを可能にします。
- Inventory と Compliance で設定と可視性を標準化する
- State Manager の関連付けを作成し、すべてのインスタンスで Inventory を有効にします。リソースデータ同期を S3 に設定し、Athena でクエリします。パッチと関連付けのステータスのために Compliance を有効にし、フリートの健全性を Systems Manager Explorer に表示します。
- 理由: Inventory は正確なソフトウェア/パッチの状態を把握可能にし、下流のライセンス検出や監査を強化します。
- カスタムリポジトリを使用してパッチベースラインとパッチグループを定義する
- OS ごとにカスタムの Patch Manager ベースラインを作成し、7 日後にセキュリティ更新を自動承認するように設定し、社内エージェント用にカスタムの yum/apt リポジトリを追加します。インスタンスに Patch Group=linux-web, linux-data, windows-app のタグを付けます。各パッチグループにベースラインを関連付けます。
- 理由: デフォルトとカスタムの両方のパッケージが、様々なワークロードにわたって段階的な承認を経て一貫してパッチ適用されることを保証します。
- Automation の事前/事後ステップを含むメンテナンスウィンドウを介してパッチ適用をスケジュールする
- 各パッチグループについて、業務時間外に合わせたメンテナンスウィンドウを登録します。ターゲットグループからインスタンスをドレインし、制御された同時実行数とエラーしきい値で AWS-RunPatchBaseline (Install) を実行し、必要に応じて再起動し、スモークテストを実行し、ロードバランサーに再登録する、優先度の高い Automation タスクを登録します。
- 理由: 顧客への影響を最小限に抑え、安全なオーケストレーションを強制し、監査可能な実行履歴を生成します。
- EC2 Image Builder でゴールデンイメージを構築し、Parameter Store に発行する
- SSM Agent、セキュリティ強化コンポーネント、およびアプリケーションの前提条件を含むレシピを作成します。パイプラインは週次でビルドし、テストを実行し、AMI を us-east-1 と eu-west-1 に発行し、Organizations を介して選択したアカウントと共有します。最新の AMI の ARN を Parameter Store の /prod/images/web/latest と /prod/images/data/latest に出力します。
- 理由: インスタンスのドリフトとパッチ適用までの時間を削減します。開発者とデプロイメントパイプラインは、手動での ID 配布なしに、パラメータを介して承認済みのイメージを取得します。
- AWS License Manager でベンダーライセンスを管理する
- ハード適用を用いた vCPU カウントを使用して、分析ソフトウェアのライセンス設定を定義します。それらを対応する AMI と起動テンプレートに関連付けます。委任管理者を有効にして、Inventory の検出データを使用してアカウント間の使用状況を追跡します。
- 理由: コンプライアンスに違反する起動を防ぎ、ベンダーや財務部門に証明可能なライセンス使用状況を提供します。
- イベント駆動型の修復とガードレールを実装する
- Systems Manager Automation ランブックを呼び出す自動修復アクションとともに、AWS Config のマネージドルール (例: 必須タグ、S3 暗号化) を使用します。AWS Health のメンテナンスイベントに対して EventBridge ルールを追加し、ランブックを介して安全な再起動をトリガーします。
- 理由: 手作業なしで検出から修正までのループを閉じ、リソースをポリシー内に維持します。
- 変更管理によって統制された Compute Optimizer と Savings Plans でコストを最適化する
- アカウント全体で Compute Optimizer を有効にします。週次で、ライトサイジングと gp2→gp3 の推奨事項をエクスポートします。Change Manager の承認とメンテナンスウィンドウを使用して、インスタンスファミリーの変更と EBS ボリュームの変更を適用します。支払いアカウントで混合型の Compute Savings Plan を購入し、リージョン全体の定常状態のコンピューティングをカバーします。使用率を監視し、四半期ごとに調整します。Session Manager Automation を使用して、開発/テスト環境での起動/停止スケジュールを強制します。
- 理由: 制御された展開を伴うデータ駆動型の最適化により、パフォーマンスと可用性を保護しながら節約を実現します。
- Trusted Advisor を組織的に使用して監視する
- Trusted Advisor の組織ビューと EventBridge 統合を有効にして、リスクの高い検出結果 (例: サービス制限、アイドル状態のリソース、開かれたセキュリティグループ) についてプラットフォームチームとセキュリティチームに通知します。選択したチェックについては、Systems Manager Automation ランブックをトリガーして修復するか、チケットを発行します。
- 理由: 一元的な監視と自動応答により、運用の健全性を維持し、コストやリスクの暴走を防ぎます。
この統合された設計は、Airbnb の AWS フットプリント全体にわたって、監査可能な制御を備えたセキュアなアクセス、標準化されたパッチ適用、イミュータブルな AMI、ライセンスコンプライアンス、自動修復、および測定可能なコスト最適化を実現します。
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →