

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# Linux AMI を更新する
<a name="automation-tutorial-update-patch-linux-ami"></a>

この Systems Manager Automation チュートリアルでは、コンソールまたは AWS CLI および `AWS-UpdateLinuxAmi` ランブックを使用して、指定したパッケージ用の最新バージョンのパッチを、Linux AMI に適用する方法について説明します。Automation は AWS Systems Manager のツールです。`AWS-UpdateLinuxAmi` ランブックは、その他のサイト固有のパッケージと設定のインストールも自動化します。このチュートリアルを使用して、Ubuntu Server、Red Hat Enterprise Linux (RHEL)、または Amazon Linux AMIs などのさまざまな Linux ディストリビューションを更新できます。サポートされている Linux バージョンの詳細なリストについては、「[Patch Manager の前提条件](patch-manager-prerequisites.md)」を参照してください。

`AWS-UpdateLinuxAmi` ランブックでは、JSON あるいは YAML によりランブックを記述することなく、イメージのメンテナンスタスクを自動化することができます。`AWS-UpdateLinuxAmi` ランブックを使用して次のタイプのタスクを実行できます。
+ Amazon Linux、Red Hat Enterprise Linux、または Ubuntu Server Amazon Machine Image (AMI) 上のすべてのディストリビューションパッケージと Amazon ソフトウェアを更新します。これはデフォルトのランブックの動作です。
+ 既存のイメージに AWS Systems Manager SSM Agent をインストールして、AWS Systems Manager Run Command を使用したリモートコマンドの実行や、Inventory を使用したソフトウェアインベントリ収集といった Systems Manager のツールを有効にします。
+ 追加のソフトウェアパッケージをインストールします。

**開始する前に**  
ランブックで作業を開始する前に、ロールを設定し、必要に応じてオートメーション用に EventBridge を設定します。詳細については、「[オートメーションの設定](automation-setup.md)」を参照してください。このチュートリアルでは、AWS Identity and Access Management (IAM) インスタンスプロファイルの名前を指定する必要もあります。IAM インスタンスプロファイル作成の詳細については、「[Systems Manager に必要なインスタンスのアクセス許可を設定する](setup-instance-permissions.md)」を参照してください。

`AWS-UpdateLinuxAmi` ランブックは、次の入力パラメータを受け付けます。


****  

| Parameter | Type | 説明 | 
| --- | --- | --- | 
|  SourceAmiId  |  文字列  |  (必須) ソース AMI ID。  | 
|  IamInstanceProfileName  |  String  |  (必須)「[Systems Manager に必要なインスタンスのアクセス許可を設定する](setup-instance-permissions.md)」で作成した IAM インスタンスプロファイルロールの名前。インスタンスプロファイルのロールは、コマンドの実行またはサービスの開始や停止など、インスタンスでアクションを実行するための自動化のアクセス許可を付与します。ランブックでは、インスタンスプロファイルロールの名前のみが使用されます。Amazon リソースネーム (ARN) を指定すると、オートメーションは失敗します。  | 
|  AutomationAssumeRole  |  文字列  |  (必須) [オートメーションの設定](automation-setup.md) で作成した IAM サービスロールの名前。サービスロール (継承ロールとも呼ばれます) は、オートメーションが IAM ロールを引き受け、代わりにアクションを実行するアクセス許可を与えます。例えば、サービスロールを使用すると、ランブックで `aws:createImage` アクションを実行するとき、Automation で新しい AMI を作成できます。このパラメータには、完全な ARN を指定する必要があります。  | 
|  TargetAmiName  |  文字列  |  (オプション) 作成後の AMI の新しい名前。デフォルト名は、ソース AMI ID および作成日時を含む、システム生成文字列です。  | 
|  InstanceType  |  文字列  |  (オプション) WorkSpace ホストとして起動するインスタンスの種類。インスタンスタイプは、リージョンによって異なります。デフォルトのタイプは、t2.micro です。  | 
|  PreUpdateScript  |  文字列  |  (オプション) 更新の適用前に実行するスクリプトの URL。デフォルト (\$1"none\$1") は、スクリプトを実行しません。  | 
|  PostUpdateScript  |  文字列  |  (オプション) パッケージの更新の適用後に実行するスクリプトの URL。デフォルト (\$1"none\$1") は、スクリプトを実行しません。  | 
|  IncludePackages  |  文字列  |  (オプション) これらの名前付きパッケージのみを更新します。デフォルト (\$1"all\$1") では、すべての利用可能な更新が適用されます。  | 
|  ExcludePackages  |  文字列  |  (オプション) すべての条件の下で、更新を保留するパッケージの名前。デフォルト (\$1"none\$1") では、パッケージは除外されません。  | 

**自動化のステップ**  
`AWS-UpdateLinuxAmi` ランブックには、デフォルトで次のオートメーションアクションが含まれています。

**ステップ 1: launchInstance (`aws:runInstances` アクション) **  
このステップでは、Amazon Elastic Compute Cloud (Amazon EC2) ユーザーデータ、および IAM インスタンスプロファイルのロールを使用してインスタンスを起動します。ユーザーデータは、オペレーティングシステムに基づいて、適切な SSM Agent をインストールします。SSM Agent をインストールすると、Run Command、State Manager、Inventory など、Systems Manager のツールを利用できます。

**ステップ 2: updateOSSoftware (`aws:runCommand` アクション) **  
このステップでは、起動したインスタンスで次のコマンドを実行します。  
+ Amazon S3 からの更新スクリプトをダウンロードします。
+ オプションの更新前のスクリプトを実行します。
+ ディストリビューションパッケージおよび Amazon ソフトウェアを更新します。
+ オプションの更新後のスクリプトを実行します。
実行ログは、ユーザーが後で表示するために /tmp フォルダに保存されます。  
特定のパッケージセットをアップグレードする場合は、`IncludePackages` パラメータを使用してリストを指定できます。指定すると、システムはこれらのパッケージおよび依存関係のみを更新するよう試みます。その他の更新は実行されません。デフォルトでは、*含まれる*パッケージが指定されない場合、プログラムはすべての利用可能なパッケージを更新します。  
特定のパッケージセットのアップグレードを除外する場合は、`ExcludePackages` パラメータにリストを指定できます。指定されている場合、これらのパッケージは、指定された他のオプションとは関係なく、現在のバージョンのままです。デフォルトでは、*除外する*パッケージが指定されていない場合、除外されるパッケージはありません。

**ステップ 3: stopInstance (`aws:changeInstanceState` アクション)**  
このステップでは、更新されたインスタンスを停止します。

**ステップ 4: createImage (`aws:createImage` アクション) **  
このステップでは、ソース ID、および作成時刻にリンクするわかりやすい名前の新しい AMI を作成します。例: 「\$1\$1SourceAmiId\$1\$1 から \$1\$1global:DATE\$1TIME\$1\$1 に EC2 Automation によって生成された AMI」。ここで DATE\$1TIME および SourceID は、自動化の変数を表します。

**ステップ 5: terminateInstance (`aws:changeInstanceState` アクション) **  
このステップでは、実行中のインスタンスを終了してオートメーションをクリーンアップします。

**出力**  
オートメーションは、出力として新しい AMI ID を返します。

**注記**  
デフォルトでは、自動化が `AWS-UpdateLinuxAmi` ランブックを実行すると、システムはデフォルト VPC (172.30.0.0/16) に一時インスタンスを作成します。デフォルト VPC を削除した場合、次のエラーが発生します。  
`VPC not defined 400`  
この問題を解決するには、`AWS-UpdateLinuxAmi` ランブックのコピーを作成し、サブネット ID を指定する必要があります。詳細については、「[VPC not defined 400](automation-troubleshooting.md#automation-trbl-common-vpc)」を参照してください。

**Automation (AWS Systems Manager) を使用して パッチを適用した AMI を作成するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで **[オートメーション]** を選択します。

1. [**Execute automation**] を選択します。

1. [**Automation document (オートメーションドキュメント)**] リストで、`AWS-UpdateLinuxAmi` を選択します。

1. [**Document details (ドキュメント詳細)**] セクションで、[**Document version (ドキュメントバージョン)**] が [**Default version at runtime (ランタイムのデフォルトバージョン)**] に設定されていることを確認します。

1. [**Next**] を選択します。

1. [**実行モード)**] セクションで、[**シンプルな実行**] を選択します。

1. [**Input parameters**] セクションに、**開始する前に**セクションで用意した情報を入力します。

1. [**Execute**] を選択します。自動化の実行のステータスがコンソールに表示されます。

オートメーションが終了したら、更新した AMI からテストインスタンスを起動して、変更を確認します。

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