自動アップグレードの実行 - Amazon Elastic Compute Cloud

自動アップグレードの実行

AWS Systems Manager オートメーションランブックを使用して、AWS で Windows および SQL Server インスタンスの自動アップグレードを実行することができます。

自動アップグレードプロセスでは、次の AWS サービスを使用します。

  • AWS Systems Manager。AWS Systems Manager は、AWS リソースを集中管理する強力な統合インターフェイスです。詳細については、AWS Systems Manager ユーザーガイドを参照してください。

  • AWS Systems Manager エージェント (SSM Agent) は、Amazon EC2 インスタンス、オンプレミスのサーバー、または仮想マシン (VM) にインストールして設定できる Amazon のソフトウェアです。SSM Agent により、Systems Manager がこれらのリソースを更新、管理、および設定できるようにします。このエージェントは AWS クラウド上の Systems Manager サービスからのリクエストを処理し、リクエストに指定されたとおりにそれらを実行します。詳細については、AWS Systems Manager ユーザーガイドの「SSM Agent を使用する」を参照してください。

  • AWS Systems Manager SSM ランブック。SSM ランブックは、マネージドインスタンスで Systems Manager が実行するアクションを定義します。SSM ランブックは JavaScript Object Notation (JSON) や YAML を使用し、これにはユーザーが指定するステップおよびパラメータが含まれます。このトピックでは、2 つのオートメーション用 Systems Manager SSM ランブックを使用します。詳細については、「AWS Systems Manager ユーザーガイド」の「AWS Systems Manager オートメーションランブックリファレンス」を参照してください。

実行オプション

Systems Manager コンソールで [Automation] を選択する際、[実行] を選択します。Automation ドキュメントを選択すると、自動化の実行オプションを選択するよう求められます。以下のオプションから選択します。このトピックで後ほど示すパスのステップでは、[シンプルな実行] オプションを使用します。

シンプルな実行

1 つのインスタンスを更新するが、自動化の各ステップを実行して結果を監査しない場合は、このオプションを選択します。このオプションについては、以降のアップグレード手順で詳しく説明します。

レート制御

アップグレードを複数のインスタンスに適用する場合は、このオプションを選択します。以下の設定を定義します。

  • [Parameter] (パラメータ)

    [マルチアカウント] および [リージョン] でも設定されているこの設定では、自動化の分岐方法を定義します。

  • [Targets] (ターゲット)

    自動化を適用するターゲットを選択します。この設定は、[マルチアカウント] および [リージョン] でも設定されます。

  • パラメータ値

    オートメーションドキュメントのパラメータで定義されている値を使用します。

  • Resource Group (リソースグループ)

    AWS では、リソースはユーザーが操作できるエンティティです。例えば、Amazon EC2 インスタンス、AWS CloudFormation スタック、または Amazon S3 バケットなどがあります。複数のリソースを使用する場合は、タスクごとに 1 つの AWS サービスから別のサービスに移動するのではなく、グループとしてそれらを管理する方が有益な場合があります。場合によっては、アプリケーション層を構成する EC2 インスタンスなど、多数の関連リソースを管理する場合があります。この場合は、これらのリソースに対して一括してアクションを実行する必要があります。

  • タグ

    タグは、AWS リソースを目的、所有者、環境などさまざまな方法で分類するのに役立ちます。この分類は、同じ種類のリソースが多い場合に便利です。割り当てたタグを使用して、特定のリソースをすばやく識別することができます。

  • レート制御

    レート制御は、[マルチアカウント] および [リージョン] でも設定されます。レート制御のパラメータを設定する際、ターゲットカウントまたはターゲットの割合 (%) によって、自動化を適用するフリートの数を定義します。

マルチアカウントおよびマルチリージョン

マルチアカウントとマルチリージョンの設定でも使用されるレート制御で指定されたパラメータに加えて、2 つの設定があります。

  • アカウントと組織単位 (OU)

    自動化を実行する複数のアカウントを指定します。

  • AWS リージョン

    自動化を実行する複数の AWS リージョン を指定します。

手動による実行

このオプションは、[シンプルな実行] に似ていますが、このオプションでは、自動化の各ステップを進め、結果を監査することができます。

Windows Server をアップグレードする

AWSEC2-CloneInstanceAndUpgradeWindows ランブックでは、アカウントの Windows Server インスタンスから Amazon マシンイメージ (AMI) を作成し、この AMI を、サポートされている希望のバージョンにアップグレードします。このマルチステッププロセスは、完了するまで 2 時間かかる場合があります。

Windows Server 2008 R2 インスタンスを Windows Server 2016、2019、または 2022 にアップグレードするには、まず Windows Server 2008 R2 から Windows Server 2012 R2 へ、次に Windows Server 2012 R2 から Windows Server 2016、2019、または 2022 へと、インプレースアップグレードを 2 回実行します。Windows Server 2008 R2 から Windows Server 2016、2019、または 2022 への直接のアップグレードはサポートされていません。

自動化はインスタンスから AMI を作成し、指定したサブネットで新しい AMI を起動します。自動化ワークフローは、Windows Server 2008 R2、2016、2019 から選択したバージョン (Windows Server 2012 R2、2016、2019、または 2022) へのインプレースアップグレードを実行します。また、アップグレードされたインスタンスに必要な AWS ドライバーを更新またはインストールします。アップグレードが完了したら、ワークフローで新しい AMI が作成され、アップグレードされたインスタンスは終了します。Windows Server 2008 R2 から Windows Server 2016、2019、または 2022 にアップグレードすると、インプレースアップグレードが 2 回実行されるため、自動化によって AMI が 2 つ作成されます。

自動アップグレードプロセスには 2 つの AMI が含まれています。

  • 現在実行中のインスタンス。最初の AMI は現在実行中のインスタンスです。このインスタンスはアップグレードされません。この AMI は、別のインスタンスを起動してインプレースアップグレードを実行するために使用されます。プロセスが完了したら、この AMI はアカウントから削除されます。ただし、元のインスタンスを保持するように特別にリクエストした場合を除きます。この設定を行うには、KeepPreUpgradeImageBackUp パラメータを使用します (デフォルト値は false です。つまり、AMI はデフォルトで削除されます)。

  • 更新された AMI。この AMI は、自動化プロセスの結果です。

最終結果は、1 つの AMI です。つまり、AMI の更新されたインスタンスです。

アップグレードが完了したら、Amazon VPC で新しい AMI を起動して、アプリケーション機能をテストできます。テストが終了したら、別のアップグレードを実行する前に、アプリケーションのダウンタイムをスケジュールしてから、アップグレードされたインスタンスに完全に切り替えます。

Windows Server の自動アップグレードパス

Systems Manager オートメーションランブック AWSEC2-CloneInstanceAndUpgradeWindows は次のアップグレードパスをサポートしています。

  • Windows Server 2008 R2 から Windows Server 2012 R2 へ

  • Windows Server 2012 R2 から Windows Server 2016 へ

  • Windows Server 2012 R2 から Windows Server 2019 へ

  • Windows Server 2012 R2 から Windows Server 2022 へ

  • Windows Server 2016 から Windows Server 2019 へ

  • Windows Server 2016 から Windows Server 2022 へ

  • Windows Server 2019 から Windows Server 2022 へ

前提条件

AWS Systems Manager オートメーションドキュメントを使用して Windows Server のアップグレードを自動化するには、以下のタスクを実行する必要があります。

  • 指定された IAM ポリシーを使用して IAM ロールを作成することで、Systems Manager が Amazon EC2 インスタンスに対して自動化タスクを実行できるようにし、Systems Manager を使用するための前提条件を満たしていることを確認します。詳細については、「AWS Identity and Access Management ユーザーガイド」の「AWS のサービスにアクセス許可を委任するロールの作成」を参照してください。

  • 自動化の実行方法に関するオプションを選択します。実行のオプションには、[シンプルな実行]、[レートの制御]、[複数のアカウントとリージョン]、[手動の実行] があります。これらのパラメータの詳細については、「実行オプション」を参照してください。

  • インスタンスに SSM Agent がインストールされていることを確認します。詳細については、「Installing and configuring SSM Agent on Amazon EC2 instances for Windows Server (Windows Server の Amazon EC2 インスタンスで SSM Agent をインストールして設定する)」を参照してください。

  • Windows PowerShell 3.0 以降をインスタンスにインストールする必要があります。

  • Microsoft Active Directory ドメインに参加しているインスタンスの場合は、ホスト名の競合を避けるために、ドメインコントローラーに接続できない SubnetId を指定することをお勧めします。

  • インスタンスサブネットにはインターネットへのアウトバウンド接続が必要です。これにより、Amazon S3 などの AWS のサービス へのアクセスと、Microsoft からのパッチのダウンロードが可能になります。この要件は、サブネットがパブリックサブネットでインスタンスにパブリック IP アドレスがある場合、またはサブネットがインターネットトラフィックをパブリック NAT デバイスに送信するルートを持つプライベートサブネットの場合に満たされます。

  • このオートメーションは、Windows Server 2008 R2、Windows Server 2012 R2、Windows Server 2016、および Windows Server 2019 を実行しているインスタンスで機能します。

  • インスタンスでブートディスクに 20 GB の空きディスク領域があることを確認します。

  • インスタンスが AWS の提供する Windows ライセンスを使用しない場合は、Windows Server 2012 R2 インストールメディアを含む Amazon EBS スナップショット ID を指定します。これを実行するには:

    1. Amazon EC2 インスタンスで Windows Server 2012 以降が実行されていることを確認します。

    2. インスタンスが実行されているのと同じアベイラビリティーゾーンに 6 GB の Amazon EBS ボリュームを作成します。ボリュームをインスタンスにアタッチします。それをマウントします (例えばドライブ D として)。

    3. ISO を右クリックし、インスタンスにマウントします (例えばドライブ E として)。

    4. ISO の内容をドライブ E:\ からドライブ D:\ にコピーします。

    5. 上記のステップ 2 で作成した 6 GB ボリュームの Amazon EBS スナップショットを作成します。

Windows Server のアップグレードの制限事項

このオートメーションでは、Windows のドメインコントローラー、クラスター、または Windows デスクトップオペレーティングシステムのアップグレードはサポートされていません。さらに、このオートメーションでは、以下のロールがインストールされた Windows Server の Amazon EC2 インスタンスもサポートされていません。

  • リモートデスクトップセッションホスト (RDSH)

  • リモートデスクトップ接続ブローカー (RDCB)

  • リモートデスクトップ仮想化ホスト (RDVH)

  • リモートデスクトップウェブアクセス (RDWA)

Windows Server の自動アップグレードの実行のステップ

以下のステップに従い、AWSEC2-CloneInstanceAndUpgradeWindows オートメーションランブックを使用して Windows Server インスタンスをアップグレードします。

  1. AWS マネジメントコンソールから Systems Manager を開きます。

  2. 左のナビゲーションペインの [Change Management] (変更管理) で、[Automation] (オートメーション) を選択します。

  3. [Execute automation (自動化の実行)] を選択します。

  4. AWSEC2-CloneInstanceAndUpgradeWindows と呼ばれるオートメーションドキュメントを検索します。

  5. ドキュメント名が表示されたら、選択します。選択すると、ドキュメントの詳細が表示されます。

  6. [Execute automation] (オートメーションの実行) を選択して、このドキュメントのパラメータを入力します。ページの上部にある [シンプルな実行] は選択したままにします。

  7. 次のガイダンスに従って、リクエストされたパラメータを入力します。

    • InstanceID

      型: 文字列

      (必須) SSM エージェントがインストールされている Windows Server 2008 R2、2012 R2、2016、2019 を実行しているインスタンス。

    • InstanceProfile.

      型: 文字列

      (必須) IAM インスタンスプロファイル。この IAM ロールは、Amazon EC2 インスタンスと AWS AMI に対して Systems Manager のオートメーションを実行するために使用されます。詳細については、 AWS Systems Manager ユーザーガイドの「Systems Manager の IAM インスタンスプロファイルを作成する」を参照してください。

    • TargetWindowsVersion

      型: 文字列

      (必須) ターゲットの Windows バージョンを選択します。

    • SubnetId

      型: 文字列

      (必須) このサブネットはアップグレードプロセス用であり、ソース EC2 インスタンスの場所を指します。サブネットに Amazon S3 などの AWS サービス や Microsoft (パッチのダウンロード用) へのアウトバウンド接続があることを確認します。

    • KeepPreUpgradedBackUp

      型: 文字列

      (オプション) このパラメータが true に設定されている場合は、自動化によって、インスタンスから作成されたイメージが保持されます。デフォルトの設定は、false です。

    • RebootInstanceBeforeTakingImage

      型: 文字列

      (オプション) デフォルトは false です (再起動なし)。このパラメータが true に設定されている場合は、Systems Managerによって、アップグレード用の AMI を作成する前にインスタンスが再起動されます。

  8. パラメータを入力したら、[実行] を選択します。自動化が開始したら、実行の進行状況をモニタリングすることができます。

  9. 自動化が完了すると、AMI ID が表示されます。Windows OS がアップグレードされたことを確認するには、AMI を起動します。

    注記

    自動化のすべてのステップを実行する必要はありません。それぞれのステップには、自動化とインスタンスの動作に基づいた条件が付けられています。Systems Manager は、必須でない一部のステップをスキップする場合があります。

    さらに、いくつかの手順がタイムアウトすることもあります。Systems Manager では、すべての最新パッチについて、インストールとアップグレードが試みられます。ただし、場合によっては、特定のステップの定義可能なタイムアウト設定に基づいてパッチがタイムアウトします。この場合、Systems Manager の自動化は、次のステップに進み、内部 OS ターゲットの Windows Server バージョンにアップグレードされるようにします。

  10. 自動化が完了したら、AMI ID を使用して Amazon EC2 インスタンスを起動して、アップグレードを確認することができます。AWS AMI から Amazon EC2 インスタンスを作成する方法の詳細については、「カスタムの Amazon マシンイメージ (AMI) から EC2 インスタンスを起動する方法」を参照してください。

SQL Server のアップグレード

AWSEC2-CloneInstanceAndUpgradeSQLServer スクリプトでは、アカウントで SQL Server を実行している Amazon EC2 インスタンスから AMI を作成し、その AMI を SQL Server の新しいバージョンにアップグレードします。このマルチステッププロセスは、完了するまで 2 時間かかる場合があります。

自動化はインスタンスから AMI を作成し、指定したサブネットで新しい AMI を起動します。その後、オートメーションは、SQL Server のインプレースアップグレードを実行します。アップグレードが完了したら、自動化によって、アップグレードされたインスタンスを終了する前に新しい AMI が作成されます。

自動アップグレードプロセスには 2 つの AMI が含まれています。

  • 現在実行中のインスタンス。最初の AMI は現在実行中のインスタンスです。このインスタンスはアップグレードされません。この AMI は、別のインスタンスを起動してインプレースアップグレードを実行するために使用されます。プロセスが完了したら、この AMI はアカウントから削除されます。ただし、元のインスタンスを保持するように特別にリクエストした場合を除きます。この設定を行うには、KeepPreUpgradeImageBackUp パラメータを使用します (デフォルト値は false です。つまり、AMI はデフォルトで削除されます)。

  • 更新された AMI。この AMI は、自動化プロセスの結果です。

最終結果は、1 つの AMI です。つまり、AMI の更新されたインスタンスです。

アップグレードが完了したら、Amazon VPC で新しい AMI を起動して、アプリケーション機能をテストできます。テストが終了したら、別のアップグレードを実行する前に、アプリケーションのダウンタイムをスケジュールしてから、アップグレードされたインスタンスに完全に切り替えます。

SQL Server の自動アップグレードパス

AWSEC2-CloneInstanceAndUpgradeSQLServer オートメーションランブックでは、以下のアップグレードパスをサポートしています。

  • SQL Server 2008 から SQL Server 2017、2016、または 2014 へ

  • SQL Server 2008 R2 から SQL Server 2017、2016、または 2014 へ

  • SQL Server 2012 から SQL Server 2019、2017、2016、または 2014 へ

  • SQL Server 2014 から SQL Server 2019、2017、または 2016 へ

  • SQL Server 2016 から SQL Server 2019 または 2017 へ

  • SQL Server 2017 から SQL Server 2019 へ

前提条件

AWS Systems Manager オートメーションドキュメントを使用して SQL Server のアップグレードを自動化するには、以下のタスクを実行する必要があります。

  • 指定された IAM ポリシーを使用して IAM ロールを作成することで、Systems Manager が Amazon EC2 インスタンスに対して自動化タスクを実行できるようにし、Systems Manager を使用するための前提条件を満たしていることを確認します。詳細については、「AWS Identity and Access Management ユーザーガイド」の「AWS のサービス に許可を委任するロールの作成」を参照してください。

  • 自動化の実行方法に関するオプションを選択します。実行のオプションには、[シンプルな実行]、[レートの制御]、[複数のアカウントとリージョン]、[手動の実行] があります。これらのパラメータの詳細については、「実行オプション」を参照してください。

  • Amazon EC2 インスタンスでは、Windows Server 2008 R2 以降および SQL Server 2008 以降を使用する必要があります。

  • インスタンスに SSM Agent がインストールされていることを確認します。詳細については、「Windows Server の Amazon EC2 インスタンスで SSM Agent を使用する」を参照してください。

  • インスタンスに十分な空きディスク容量があることを確認します。

    • Windows Server 2008 R2 から 2012 R2 にアップグレードする場合、または Windows Server 2012 R2 からそれ以降のオペレーティングシステムにアップグレードする場合は、インスタンスのブートディスクに 20 GB の空きディスク容量があることを確認してください。

    • Windows Server 2008 R2 から 2016 以降にアップグレードする場合は、インスタンスのブートディスクに 40 GB の空きディスク領域があるか、インスタンスを確認します。

  • Bring Your Own License (BYOL) SQL Server バージョンを使用するインスタンスの場合、次の前提条件が追加で適用されます。

    • ターゲットの SQL Server インストールメディアを含む Amazon EBS スナップショット ID を提供します。これを実行するには:

      1. Amazon EC2 インスタンスで Windows Server 2008 R2 以降が実行されていることを確認します。

      2. インスタンスが実行されているのと同じアベイラビリティーゾーンに 6 GB の Amazon EBS ボリュームを作成します。ボリュームをインスタンスにアタッチします。それをマウントします (例えばドライブ D として)。

      3. ISO を右クリックし、インスタンスにマウントします (例えばドライブ E として)。

      4. ISO の内容をドライブ E:\ からドライブ D:\ にコピーします。

      5. ステップ 2 で作成した 6 GB ボリュームの Amazon EBS スナップショットを作成します。

SQL Server 自動アップグレードの制限事項

AWSEC2-CloneInstanceAndUpgradeSQLServer ランブックを使用して自動アップグレードを実行する場合は、以下の制限が適用されます。

  • アップグレードは、Windows 認証を使用して SQL Server 上でのみ実行できます。

  • インスタンスに保留中のセキュリティパッチの更新がないことを確認します。[Control Panel (コントロール パネル)] を開き、[Check for updates (更新の確認)] を選択します。

  • HA およびミラーリングモードでの SQL Server のデプロイはサポートされていません。

SQL Server の自動アップグレードの実行のステップ

以下のステップに従い、AWSEC2-CloneInstanceAndUpgradeSQLServer オートメーションランブックを使用して SQL Server をアップグレードします。

  1. まだダウンロードしていない場合は、SQL Server 2016 の .iso ファイルをダウンロードして、ソースサーバーにマウントします。

  2. .iso ファイルがマウントされたら、コンポーネントファイルをすべてコピーし、任意のボリューム上に置きます。

  3. そのボリュームの Amazon EBS スナップショットを取得し、後で使用できるようにそのスナップショット ID をクリップボードにコピーします。EBS スナップショットの作成の詳細については、「Amazon EBS スナップショットの作成」を参照してください。

  4. インスタンスプロファイルを Amazon EC2 ソースインスタンスにアタッチします。これにより、Systems Manager は、EC2 インスタンスと通信し、AWS Systems Manager サービスに追加されているコマンドを実行できるようになります。例えば、ロールに SSM-EC2-Profile-Role という名前を付け、そのロールに AmazonSSMManagedInstanceCore ポリシーをアタッチします。「AWS Systems Manager ユーザーガイド」の「Systems Manager の IAM インスタンスプロファイルを作成する」を参照してください。

  5. AWS Systems Manager コンソールの左のナビゲーションペインで、[マネージドインスタンス] を選択します。EC2 インスタンスがマネージドインスタンスのリストに含まれていることを確認します。数分後にインスタンスが表示されない場合は、AWS Systems Manager ユーザーガイドの「インスタンスがある場所」を参照してください。

  6. 左のナビゲーションペインの [Change Management] (変更管理) で、[Automation] (オートメーション) を選択します。

  7. [Execute automation (自動化の実行)] を選択します。

  8. AWSEC2-CloneInstanceAndUpgradeSQLServer と呼ばれるオートメーションドキュメントを検索します。

  9. AWSEC2-CloneInstanceAndUpgradeSQLServer SSM ドキュメントを選択し、[Next] (次へ) を選択します。

  10. [シンプルな実行] オプションが選択されていることを確認します。

  11. 次のガイダンスに従って、リクエストされたパラメータを入力します。

    • InstanceId

      型: 文字列

      (必須) SQL Server 2008 R2 (またはそれ以降) を実行しているインスタンス。

    • IamInstanceProfile

      型: 文字列

      (必須) IAM インスタンスプロファイル。

    • SQLServerSnapshotId

      型: 文字列

      (必須) ターゲット SQL Server インストールメディア用のスナップショット ID。このパラメータは、SQL Server ライセンス込みインスタンスには必要ありません。

    • SubnetId

      型: 文字列

      (必須) このサブネットはアップグレードプロセス用であり、ソース EC2 インスタンスの場所を指します。サブネットに Amazon S3 などの AWS サービス や Microsoft (パッチのダウンロード用) へのアウトバウンド接続があることを確認します。

    • KeepPreUpgradedBackUp

      型: 文字列

      (オプション) このパラメータが true に設定されている場合は、自動化によって、インスタンスから作成されたイメージが保持されます。デフォルトの設定は、false です。

    • RebootInstanceBeforeTakingImage

      型: 文字列

      (オプション) デフォルトは false です (再起動なし)。このパラメータが true に設定されている場合は、Systems Managerによって、アップグレード用の AMI を作成する前にインスタンスが再起動されます。

    • TargetSQLVersion

      型: 文字列

      (オプション) ターゲット SQL Server のバージョン。デフォルト: 2016

  12. パラメータを入力したら、[実行] を選択します。自動化が開始したら、実行の進行状況をモニタリングすることができます。

  13. [実行ステータス] に [成功] と表示されている場合は、[出力] を展開して AMI 情報を確認します。AMI ID を使用して、任意の VPC で SQL Server インスタンスを起動します。

  14. Amazon EC2 コンソールを開きます。左のナビゲーションペインで [AMI] を選択します。新しい AMI が表示されます。

  15. SQL Server の新しいバージョンが正常にインストールされていることを確認するには、新しい AMI を選択して、[Launch] (起動) を選択します。

  16. AMI で使用するインスタンスのタイプ、デプロイする VPC とサブネット、使用するストレージを選択します。AMI から新しいインスタンスを起動しているため、起動している新しい EC2 インスタンスに含めるボリュームがオプションとして提示されます。これらのボリュームは、必要に応じて削除または追加できます。

  17. インスタンスを識別しやすいようにタグを追加します。

  18. 1 つ以上のセキュリティグループをインスタンスに追加します。

  19. [インスタンスの作成] を選択します。

  20. インスタンスのタグ名を選択し、[アクション] ドロップダウンの [接続] を選択します。

  21. SQL Server の新しいバージョンが新しいインスタンスのデータベースエンジンとして表示されていることを確認します。