翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWSSupport-StartEC2RescueWorkflow
説明
AWSSupport-StartEC2RescueWorkflow
ランブックは、指定された base64 エンコードのスクリプト (Bash または Powershell) を、インスタンスをレスキューするために作成されたヘルパーインスタンス上で実行します。インスタンスのルートボリュームは、インスタンスとも呼ばれるヘルパーインスタンスにアタッチおよびマウントされますEC2Rescue。インスタンスが Windows の場合、Powershell スクリプトを指定します。それ以外の場合は、Bash を使用します。このランブックでは、スクリプトで使用するための、いくつかの環境変数が設定されます。環境変数には、入力した入力情報とオフラインルートボリュームに関する情報が含まれています。オフラインボリュームはすでにマウントされており、すぐに使用できます。たとえば、Desired State Configuration ファイルをオフラインの Windows ルートボリュームに保存するか、または chroot をオフラインの Linux ルートボリュームに保存して、オフライン修復を実行することができます。
重要
Marketplace Amazon マシンイメージ (AMIs) から作成された Amazon EC2インスタンスは、このオートメーションではサポートされていません。
追加情報
Powershell または Bash を使用し、スクリプトを Base64 にエンコードにすることができます。Powershell:
[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.IO.File]::ReadAllText('PATH_TO_FILE')))
Bash:
base64 PATH_TO_FILE
以下に示しているのは、ターゲットの OS に応じて、オフラインスクリプトで使用できる環境変数のリストです
Windows :
可変 | 説明 | 値の例 |
---|---|---|
$env:EC2RESCUEACCOUNT_ID |
{{ グローバル:ACCOUNT_ID }} |
123456789012 |
$env:EC2RESCUE_DATE |
{{ グローバル:DATE }} |
2018-09-07 |
$env:EC2RESCUE_DATE_TIME |
{{ グローバル:DATE_TIME }} |
2018-09-07_18.09.59 |
$env:EC2RESCUE_EC2RW_DIR |
EC2Rescue for Windows のインストールパス |
C:\Program Files\Amazon\EC2Rescue |
$env:EC2RESCUE_EC2RW_DIR |
EC2Rescue for Windows のインストールパス |
C:\Program Files\Amazon\EC2Rescue |
$env:EC2RESCUEEXECUTION_ID |
{{ オートメーション:EXECUTION_ID }} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
$env:EC2RESCUE_OFFLINE_CURRENTCONTROL__SET |
オフラインの Windows Current Control Set のパス |
|
$env:EC2RESCUE_OFFLINE_DRIVE |
オフラインの Windows ドライブ文字 |
D:\ |
$env:EC2RESCUE_OFFLINEEBS__DEVICE |
オフラインルートボリュームEBSデバイス |
xvdf |
$env:EC2RESCUE_OFFLINEKERNEL__VER |
オフラインの Windows カーネルバージョン |
6.1.7601.24214 |
$env:EC2RESCUEOFFLINE_OS_ARCHITECTURE |
オフラインの Windows アーキテクチャ |
AMD64 |
$env:EC2RESCUEOFFLINE_OS_CAPTION |
オフラインの Windows キャプション |
Windows Server 2008 R2 Datacenter |
$env:EC2RESCUEOFFLINE_OS_TYPE |
オフラインの Windows OS タイプ |
[サーバー] |
$env:EC2RESCUE_OFFLINE_PROGRAMFILES__DIR |
オフラインの Windows Program files のディレクトリパス |
D:\Program Files |
$env:EC2RESCUEOFFLINE_PROGRAM_FILES_X86_DIR |
オフラインの Windows Program files (x86) のディレクトリパス |
D:\Program Files (x86) |
$env:EC2RESCUE_OFFLINEREGISTRY__DIR |
オフラインの Windows レジストリのディレクトリパス |
D:\Windows\System32\config |
$env:EC2RESCUE_OFFLINESYSTEM__ROOT |
オフラインの Windows システムのルートディレクトリパス |
D:\Windows |
$env:EC2RESCUE_REGION |
{{ グローバル:REGION }} |
us-west-1 |
$env:EC2RESCUE_S3_BUCKET |
{{ S3BucketName }} |
amzn-s3-demo-bucket |
$env:EC2RESCUE_S3_PREFIX |
{{ S3Prefix }} |
myprefix/ |
$env:EC2RESCUE_SOURCE_INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
$script:EC2RESCUE_OFFLINEWINDOWS__INSTALL |
オフラインの Windows インストールメタデータ |
Customer Powershell Object |
Linux:
可変 | 説明 | 値の例 |
---|---|---|
EC2RESCUEACCOUNT__ID |
{{ グローバル:ACCOUNT_ID }} |
123456789012 |
EC2RESCUE_DATE |
{{ グローバル:DATE }} |
2018-09-07 |
EC2RESCUE_DATE_TIME |
{{ グローバル:DATE_TIME }} |
2018-09-07_18.09.59 |
EC2RESCUE_EC2RL_DIR |
EC2Rescue for Linux のインストールパス |
/usr/local/ec2rl-1.1.3 |
EC2RESCUEEXECUTION__ID |
{{ オートメーション:EXECUTION_ID }} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
EC2RESCUE_OFFLINE_DEVICE |
オフラインのデバイス名 |
/dev/xvdf1 |
EC2RESCUE_OFFLINE_EBS_DEVICE |
オフラインルートボリュームEBSデバイス |
/dev/sdf |
EC2RESCUE_OFFLINE_SYSTEM_ROOT |
オフラインのルートボリュームのマウントポイント |
/mnt/mount |
EC2RESCUE_PYTHON |
Python バージョン |
python2.7 |
EC2RESCUE_REGION |
{{ グローバル:REGION }} |
us-west-1 |
EC2RESCUE_S3_BUCKET |
{{ S3BucketName }} |
amzn-s3-demo-bucket |
EC2RESCUE_S3_PREFIX |
{{ S3Prefix }} |
myprefix/ |
EC2RESCUE_SOURCE_INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
ドキュメントタイプ
Automation
[所有者]
Amazon
[Platforms] (プラットフォーム)
Linux、macOS、Windows
パラメータ
-
AMIPrefix
型: 文字列
デフォルト:
AWSSupport-EC2Rescue
説明: (オプション) バックアップAMI名のプレフィックス。
-
AutomationAssumeRole
型: 文字列
説明: (オプション) Systems Manager Automation がユーザーに代わってアクションを実行できるようにする () ロールARNの AWS Identity and Access Management Amazon リソースネーム (IAM)。ロールを指定しない場合、Systems Manager Automation はこのランブックを開始するユーザーのアクセス許可を使用します。
-
CreatePostEC2RescueBackup
型: 文字列
有効な値: true | false
デフォルト: false
説明: (オプション) スクリプトの実行後に を起動する前に、 AMIを InstanceId
true
に設定する。AMI は、自動化が完了した後も保持されます。へのアクセスを保護するかAMI、削除するのはお客様の責任です。 -
CreatePreEC2RescueBackup
型: 文字列
有効な値: true | false
デフォルト: false
説明: (オプション) スクリプトを実行する前に を
true
に設定して AMI InstanceIdを作成します。AMI は、自動化が完了した後も保持されます。へのアクセスを保護するかAMI、削除するのはお客様の責任です。 -
EC2RescueInstanceType
型: 文字列
有効な値: t2.small | t2.medium | t2.large
デフォルト: t2.small
説明: (オプション) EC2インスタンスのEC2Rescueインスタンスタイプ。
-
InstanceId
型: 文字列
説明: (必須) EC2インスタンスの ID。IMPORTANT: AWS Systems Manager Automation はこのインスタンスを停止します。インスタンスストアボリュームに保存されているデータは失われます。Elastic IP を使用していない場合、パブリック IP アドレスが変わります。
-
OfflineScript
型: 文字列
説明: (必須) ヘルパーインスタンスに対して実行する Base64 エンコードのスクリプト。ソースインスタンスが Linux の場合は Bash を使用し、Windows PowerShell の場合は Bash を使用します。
-
S3BucketName
型: 文字列
説明: (オプション) トラブルシューティングのログをアップロードするアカウントの S3 バケット名。収集されたログにアクセスする必要がないユーザーへの不必要な読み取り/書き込みアクセス権限をバケットポリシーに付与しないようにします。
-
S3Prefix
型: 文字列
デフォルト:
AWSSupport-EC2Rescue
説明: (オプション) S3 ログのプレフィックス。
-
SubnetId
型: 文字列
デフォルト: SelectedInstanceSubnet
説明: (オプション) EC2Rescueインスタンスのサブネット ID。デフォルトでは、指定されたインスタンスが存在しているのと同じサブネットが使用されます。IMPORTANT: カスタムサブネットを指定する場合は、 と同じアベイラビリティーゾーンに存在し InstanceId、SSMエンドポイントへのアクセスを許可する必要があります。
-
UniqueId
型: 文字列
デフォルト: {{ automation:EXECUTION_ID }}
説明: (オプション) オートメーションの一意の識別子。
必要なIAMアクセス許可
AutomationAssumeRole
パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。
オートメーションを実行するユーザーには、mazonSSMAutomationロールIAM管理ポリシーがアタッチされていることをお勧めします。そのポリシー以外にも、ユーザーには次のものが必要です。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:An-AWS-Account-ID:function:AWSSupport-EC2Rescue-*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::awssupport-ssm.*/*.template", "arn:aws:s3:::awssupport-ssm.*/*.zip" ], "Effect": "Allow" }, { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile" ], "Resource": [ "arn:aws:iam::An-AWS-Account-ID:role/AWSSupport-EC2Rescue-*", "arn:aws:iam::An-AWS-Account-ID:instance-profile/AWSSupport-EC2Rescue-*" ], "Effect": "Allow" }, { "Action": [ "lambda:CreateFunction", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DeleteVpc", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:DetachInternetGateway", "ec2:DeleteInternetGateway", "ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:CreateRoute", "ec2:DeleteRoute", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:DisassociateRouteTable", "ec2:DeleteRouteTable", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }
ドキュメントステップ
-
aws:executeAwsApi
- 提供されたインスタンスを記述します -
aws:executeAwsApi
- 提供されたインスタンスのルートボリュームを記述します -
aws:assertAwsResourceProperty
- ルートボリュームのデバイスタイプが であることを確認します EBS -
aws:assertAwsResourceProperty
- ルートボリュームが暗号化されていないことを確認します -
aws:assertAwsResourceProperty
- 指定するサブネット ID を確認します-
(現在のインスタンスサブネットを使用) - *SubnetId = SelectedInstanceSubnet* の場合は、 を実行してEC2Rescue CloudFormationスタック
aws:createStack
をデプロイします。 -
(新しい を作成するVPC) - *SubnetId = CreateNewVPC* の場合は、
aws:createStack
を実行してEC2Rescue CloudFormationスタックをデプロイします。 -
(カスタムサブネットの使用) - それ以外の場合:
aws:assertAwsResourceProperty
- 指定されたサブネットが、指定されたインスタンスと同じアベイラビリティーゾーンにあることを確認しますaws:createStack
- EC2Rescue CloudFormationスタックをデプロイする
-
-
aws:invokeLambdaFunction
- 追加入力の検証を実行します -
aws:executeAwsApi
- EC2Rescue CloudFormation スタックを更新してEC2Rescueヘルパーインスタンスを作成する -
aws:waitForAwsResourceProperty
- EC2Rescue CloudFormation スタックの更新が完了するまで待ちます。 -
aws:executeAwsApi
- EC2Rescueヘルパーインスタンス ID を取得するためのEC2Rescue CloudFormation スタック出力を記述する -
aws:waitForAwsResourceProperty
- EC2Rescueヘルパーインスタンスがマネージドインスタンスになるのを待ちます -
aws:changeInstanceState
- 指定されたインスタンスを停止します -
aws:changeInstanceState
- 指定されたインスタンスを停止します -
aws:changeInstanceState
- 指定されたインスタンスを強制停止します -
aws:assertAwsResourceProperty
- 入力値を確認する CreatePreEC2RescueBackup-
(事前バックアップの作成) -EC2Rescue *CreatePreEC2RescueBackup = true* の場合
-
aws:executeAwsApi
- 提供されたインスタンスのAMIバックアップを作成する -
aws:createTags
- AMIバックアップにタグを付ける
-
-
aws:runCommand
- EC2RescueヘルパーインスタンスEC2Rescueに をインストールする -
aws:executeAwsApi
- 指定されたインスタンスからルートボリュームをデタッチします -
aws:assertAwsResourceProperty
- 指定されたインスタンスのプラットフォームを確認します-
(インスタンスが Windows の場合):
aws:executeAwsApi
- ルートボリュームを *xvdf* としてEC2Rescueヘルパーインスタンスにアタッチするaws:sleep
- 10 秒間スリープしますaws:runCommand
- Powershell で提供されるオフラインスクリプトを実行します -
(インスタンスが Linux の場合):
aws:executeAwsApi
- ルートボリュームを */dev/sdf* としてEC2Rescueヘルパーインスタンスにアタッチします。aws:sleep
- 10 秒間スリープしますaws:runCommand
- Bash で提供されるオフラインスクリプトを実行します
-
-
aws:changeInstanceState
- EC2Rescueヘルパーインスタンスを停止する -
aws:changeInstanceState
- EC2Rescueヘルパーインスタンスを強制停止する -
aws:executeAwsApi
- EC2Rescueヘルパーインスタンスからルートボリュームをデタッチする -
aws:executeAwsApi
- 指定されたインスタンスへ戻りルートボリュームをアタッチします -
aws:assertAwsResourceProperty
- 入力値を確認する CreatePostEC2RescueBackup-
(ポストEC2Rescueバックアップの作成) - *CreatePostEC2RescueBackup = true* の場合
-
aws:executeAwsApi
- 提供されたインスタンスのAMIバックアップを作成する -
aws:createTags
- AMIバックアップにタグを付ける
-
-
aws:executeAwsApi
- 提供されたインスタンスのルートボリュームの終了状態での最初の削除を復元します -
aws:changeInstanceState
- 指定されたインスタンスの初期状態を復元します (実行中/停止中) -
aws:deleteStack
- EC2Rescue CloudFormation スタックを削除する
[Outputs] (出力)
runScriptForLinux.Output
runScriptForWindows.Output
preScriptBackup.ImageId
postScriptBackup.ImageId