メニュー
Amazon EC2 Systems Manager
ユーザーガイド

Automation CLI のチュートリアル: Linux AMI にパッチを適用する

この Systems Manager Automation のチュートリアルでは、AWS CLI と Systems Manager AWS-UpdateLinuxAmi ドキュメントを使用して Linux AMI に自動的にパッチを適用する方法を示します。このチュートリアルを使用して、Ubuntu、CentOS、RHEL、Amazon Linux AMI の以下の Linux バージョンを更新できます。AWS-UpdateLinuxAmi ドキュメントは、その他のサイト固有のパッケージと設定のインストールも自動化します。

AWS-UpdateLinuxAmi ドキュメントを実行すると、Automation は以下のタスクを実行します。

  1. Linux AMI から一時 Amazon EC2 インスタンスを起動します。このインスタンスに設定されているユーザデータスクリプトで SSM エージェントがインストールされます。SSM エージェントは、Systems Manager の Run Command からリモート送信されたスクリプトを実行します。

  2. 以下のアクションを実行してインスタンスを更新します。

    1. インスタンスでユーザー提供の更新前のスクリプトを起動します。

    2. インスタンスの AWS ツールを更新します (ツールがある場合)。

    3. ネイティブパッケージマネージャを使用してインスタンスのディストリビューションパッケージを更新します。

    4. インスタンスでユーザー提供の更新後のスクリプトを起動します。

  3. 一時インスタンスを停止します。

  4. 停止したインスタンスから新しい AMI を作成します。

  5. インスタンスを終了します。

このワークフローが Automation で正常に完了すると、Amazon EC2 コンソールの AMI ページで新しい AMI が利用可能になります。

重要

Automation を使用してインスタンスから AMI を作成すると、インスタンスの認証情報、パスワード、データ、その他の機密情報が新しいイメージに記録されることに注意してください。インスタンスから AMI を作成する場合は注意が必要です。

Automation を開始する際に、以下の制限に注意してください。

  • Automation は、リソースのクリーンアップを実行しません。サンプルワークフローの最後のインスタンス終了ステップに達する前にワークフローが停止した場合、インスタンスを手動で停止するか、Automation ワークフロー中に開始されたサービスを無効にする必要があります。

  • Automation でユーザーデータを使用する場合、ユーザーデータが base-64 エンコードである必要があります。

  • Automation は、実行レコードを 30 日間保持します。

  • Systems Manager および Automation には、次のサービス制限があります。

開始する前に

AWS Identity and Access Management (IAM) インスタンスプロファイルのロールおよび自動化サービスロール (またはロールの継承) を作成します。これらのロールについて、および AWS CloudFormation テンプレートから簡単にこのロールを作成する方法についての詳細は、「方法 1: AWS CloudFormation を使用して、Automation のロールを設定」を参照してください。

また、更新のために AMI のソース ID を用意しておくことも推奨されます。

注記

デフォルトでは、Automation が AWS-UpdateLinuxAmi ドキュメントを実行すると、システムはデフォルト VPC (172.30.0.0/16) に一時インスタンスを作成します。デフォルト VPC を削除した場合、次のエラーが発生します。

VPC not defined 400

この問題を解決するには、AWS-UpdateLinuxAmi ドキュメントのコピーを作成し、サブネット ID を指定する必要があります。詳細については、「VPC not defined 400」を参照してください。

Automation を使用して パッチを適用した AMI を作成するには

  1. AWS CLI をローカルマシンにダウンロードします。

  2. 以下のコマンドを実行することで、AWS-UpdateLinuxAmi ドキュメントと Automation ワークフローを実行します。パラメータセクションで、Automation ロール、AMI ソース ID、Amazon EC2 インスタンスプロファイルロールを指定します。

    Copy
    aws ssm start-automation-execution \ --document-name "AWS-UpdateLinuxAmi" \ --parameters \ SourceAmiId=ami-e6d5d2f1

    コマンドによって実行 ID が返されます。この ID をクリップボードにコピーします。この ID を使用して、ワークフローのステータスを表示します。

    Copy
    { "AutomationExecutionId": "ID" }
  3. CLI を使用してワークフローの実行を表示するには、以下のコマンドを実行します。

    Copy
    aws ssm describe-automation-executions
  4. 実行の進捗の詳細を表示するには、以下のコマンドを実行します。

    Copy
    aws ssm get-automation-execution --automation-execution-id ID

    更新プロセスは完了までに 30 分以上かかる場合があります。

    注記

    Amazon EC2 コンソールで、ワークフローのステータスをモニタリングすることもできます。実行リストで、先ほど開始した実行を選択し、[Steps] タブを選択します。このタブには、ワークフローアクションのステータスが表示されます。

ワークフローが終了したら、更新した AMI からテストインスタンスを起動して、変更を確認します。

注記

ワークフローのいずれかのステップが失敗した場合は、失敗に関する情報が [Automation Executions] ページに表示されます。ワークフローは、すべてのタスクを正常に完了すると、一時インスタンスを削除するように設計されています。失敗したステップがあると、システムはインスタンスを終了できない場合があります。失敗したステップがある場合は、一時インスタンスを手動で終了します。