View a markdown version of this page

AWSSupport-CloneXenEC2InstanceAndMigrateToNitro - AWS Systems Manager オートメーションランブックリファレンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWSSupport-CloneXenEC2InstanceAndMigrateToNitro

説明

AWSSupport-CloneXenEC2InstanceAndMigrateToNitro ランブックは、現在 Amazon EC2 Xen プラットフォームで実行されているクローン Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスを Amazon EC2 Nitro プラットフォームで実行するように準備して移行します。 Amazon EC2 この自動化は 3 つの異なるブランチに分割されます。

  • 予備チェック: 移行を進めるためのすべての前提条件を評価します。これには、ターゲット Amazon EC2 インスタンスが Nitro プラットフォームで既に実行されているかどうかの確認、ライフサイクルステータスの決定、オペレーティングシステムの検証、Systems Manager の接続の検証が含まれます。

  • テスト: ターゲット Amazon EC2 インスタンスAMIからテストを作成し、テスト Amazon EC2 インスタンスを起動して移行プロセスを検証してから続行します。

  • CloneAndMigrate: ターゲット Amazon EC2 インスタンスのクローンを作成し、必要なドライバーをインストールし、Nitro プラットフォームのシステムを設定し、インスタンスタイプを目的の Nitro タイプに変更します。

重要

ターゲット Amazon EC2 インスタンスを停止する承認を提供する前に、インスタンスで実行されているすべてのアプリケーションが正常に閉じていることを確認してください。Amazon EC2 インスタンスに Elastic IP アドレスが関連付けられていない場合、インスタンスが停止および起動されると、自動パブリック IPv4 アドレスが変更されます。

重要

免責事項: このランブックを実行すると、Amazon EC2 インスタンス、Amazon EBS Volumes & AMIのアカウントに追加料金が発生する場合があります。詳細については、Amazon EC2 料金表Amazon EBS 料金表を参照してください。

重要

前提条件

ターゲット Amazon EC2 インスタンスでは、必要に応じてパッケージマネージャーunzipを使用して、、kernel-devel、、gccpatchrpm-buildwgetdracutmake、 などのドライバーと依存関係をインストールするためにlinux-headers、リポジトリへのアウトバウンドアクセスが必要です。

サポートされるオペレーティングシステム

  • Red Hat Enterprise Linux (RHEL) 8 および 9

  • Amazon Linux 2 および AL2023

  • Ubuntu Server 18.04 LTS、20.04 および 22.04

  • Debian 11 および 12 (AWS パーティションのみ)

  • SUSE12SP5 および SUSE15SP(5,6)

動作の仕組み

ランブックは、以下の大まかなステップを実行します。

  • 前提条件を検証し、インスタンスが移行に適しているかどうかを確認します。

  • を作成してテストしAMI、移行が成功することを確認します。

  • 拡張ネットワーキング (ENA) 属性を有効にし、最新の ENA ドライバーをインストールします。

  • initramfs で NVMe モジュールを検証して設定します。

  • /etc/fstab を分析して変更し、デバイス名を UUIDs。

  • 予測可能なインターフェイスの命名を無効にし、永続的なネットワークルールを削除します。

  • クローンされたインスタンスタイプを目的の Nitro タイプに変更します。

  • Nitro インスタンスを起動するためのゴールデンイメージとしてAMI使用できるファイナルを作成します。

このオートメーションを実行する (コンソール)

ドキュメントタイプ

オートメーション

[所有者]

Amazon

[Platforms] (プラットフォーム)

Linux

パラメータ

必要な IAM アクセス許可

AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。

  • autoscaling:DescribeAutoScalingInstances

  • ec2:CreateImage

  • ec2:CreateTags

  • ec2:DescribeImages

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeInstances

  • ec2:DescribeInstanceStatus

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DeregisterImage

  • ec2:ModifyInstanceAttribute

  • ec2:RunInstances

  • ec2:StartInstances

  • ec2:StopInstances

  • ec2:TerminateInstances

  • iam:PassRole

  • sns:Publish

  • ssm:DescribeAutomationExecutions

  • ssm:DescribeInstanceInformation

  • ssm:SendCommand

IAM ポリシーの例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingInstances", "ec2:CreateImage", "ec2:CreateTags", "ec2:DescribeImages", :ec2:DescribeInstanceAttribute:, "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeInstanceTypes", "ec2:DeregisterImage", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:PassRole", "ssm:DescribeAutomationExecutions", "ssm:DescribeInstanceInformation", "ssm:SendCommand" ], "Resource": "*" } ] }

指示

次の手順に従って自動化を設定します。

  1. ドキュメントの Systems Manager AWSSupport-CloneXenEC2InstanceAndMigrateToNitroで に移動します。

  2. Execute automation を選択します。

  3. 入力パラメータには、次のように入力します。

    • AutomationAssumeRole(オプション):

      • 説明: (オプション) Systems Manager Automation がユーザーに代わってアクションを実行できるようにする AWS Identity and Access Management (IAM) ロールの ARN。ロールを指定しない場合、Systems Manager Automation はこのランブックを開始するユーザーのアクセス許可を使用します。

      • 型: AWS::IAM::Role::Arn

    • TargetInstanceId (必須):

      • 説明: (必須) Nitro プラットフォームに移行するターゲット Amazon EC2 インスタンスのインスタンス ID。

      • 型: AWS::EC2::Instance::Id

    • NitroInstanceType (オプション):

      • 説明: (オプション) 送信先の Nitro インスタンスタイプを入力します。Nitro M5, M6, C5, C6, R5, R6および T3 インスタンスのみがサポートされています (例: t3.small)。デフォルト: m5.xlarge。

      • 型: String

      • 許可されたパターン: ^(m5a?z?d?n?|c5a?d?n?|r5a?d?n?b?|(c|m|r)6(a|i)?d?)\\.(2|4|8|12|16|24|32)?xlarge$|^t3a?\\.((x|2x)?large|nano|micro|small|medium)$

      • デフォルト: m5.xlarge

    • SNSTopicArn (必須):

      • 説明: (必須) 承認通知用に Amazon SNS トピックの ARN を指定します。この Amazon SNS トピックは、自動化の実行中に承認通知を送信するために使用されます。

      • 型: String

      • 許可されたパターン: ^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):sns:(us(-gov|-isob?)?|ap|ca|af|me|cn|eu|sa)-(central|(north|south)?(east|west)?)-\\d:\\d{12}:[a-zA-Z0-9_.-]{1,256}$

    • ApproverIAM (必須):

      • 説明: (必須) アクションを承認または拒否できる AWS 認証済みプリンシパルのリストを指定します。承認者の最大数は 10 です。

      • 型: StringList

      • 許可されたパターン: ^[a-zA-Z0-9_+=,.@\\-\/]{1,128}$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):(sts|iam)::[0-9]{12}:[a-zA-Z0-9_+=,.@\\-\/]{1,256}$

    • MinimumRequiredApprovals (オプション):

      • 説明: (オプション) 自動化を再開するために必要な承認の最小数。デフォルト: 1。

      • タイプ: 整数

      • デフォルト: 1

    • DeleteResourcesOnFailure (オプション):

      • 説明: (オプション) クローンされた Amazon EC2 インスタンスを終了するかどうか、および自動化が失敗したAMIかどうか。

      • 型: Boolean

      • 使用できる値: [true, false]

      • デフォルト: true

    • 確認 (必須):

      • 説明: (必須) このオートメーションランブックによって実行されるアクションの完全な詳細を読み、ステップを承認した場合は「はい、理解して承認します」と書いてください。

      • 型: String

      • 許可されたパターン: ^Yes, I understand and acknowledge$

    • AllowInstanceStoreInstances (オプション):

      • 説明: (オプション) yes を指定すると、インスタンスストアボリュームがアタッチされているインスタンスでランブックを実行できるようになります。警告: インスタンスが停止すると、インスタンスストアボリューム内のデータが失われます。このパラメータは、偶発的なデータ損失を回避するのに役立ちます。

      • 型: Boolean

      • 使用できる値: [yes, no]

      • デフォルト: no

  4. [実行] を選択します。

  5. 自動化が開始されます。

  6. ドキュメントは以下のステップを実行します。

    • checkConcurrency:

      現在の Amazon EC2 インスタンスを対象とするこのランブックの実行が 1 つだけであることを確認します。

    • getTargetInstanceProperties:

      ターゲット Amazon EC2 インスタンスの詳細を取得します。

    • checkIfNitroInstanceTypeIsSupportedInAZ:

      ターゲット Nitro インスタンスタイプがターゲット Amazon EC2 インスタンスと同じアベイラビリティーゾーンでサポートされているかどうかを判断します。

    • createTestImage:

      指定されたインスタンスAMIからテストを作成します。

    • launchTestInstanceInSameSubnet:

      ターゲット Amazon EC2 インスタンスと同じ設定AMIを使用して、テストからテスト Amazon EC2 インスタンスを起動します。

    • approvalToStopTargetInstance:

      指定されたプリンシパルの承認がターゲットインスタンスを停止するのを待ちます。

    • createBackupImage:

      提供されたインスタンスAMIからバックアップ用の を作成します。

    • launchInstanceInSameSubnet:

      ソース Amazon EC2 インスタンスと同じ設定AMIを使用して、バックアップから新しい Amazon EC2 インスタンスを起動します。

    • checkAndInstallENADrivers:

      Amazon EC2 インスタンスでの拡張ネットワーキングアダプタ (ENA) ドライバーの可用性を判断し、不足している場合は をインストールします。

    • checkAndAddNVMEDrivers:

      クローンされた Amazon EC2 インスタンスでの NVMe ドライバーの可用性を判断し、欠落している場合は をインストールします。

    • checkAndModifyFSTABEntries:

      デバイス名が で使用されるかどうかを決定/etc/fstabし、見つかった場合はUUIDs に置き換えます。

    • setNitroInstanceTypeForClonedInstance:

      クローンされた Amazon EC2 インスタンスに指定されたターゲット Amazon EC2 インスタンスタイプを設定します。

    • approvalForCreatingImageAfterDriversInstallation:

      クローンされた Amazon EC2 インスタンスが Nitro プラットフォームで正常に起動すると、ユーザーの承認を待ちます。

    • createImageAfterDriversInstallation:

      Nitro Platform で新しい Amazon EC2 インスタンスが正常に起動した場合にのみ、新しい Amazon EC2 インスタンスからイメージを作成します。

  7. 完了したら、出力セクションで実行の詳細な結果を確認します。

リファレンス

AWS Systems Manager Automation