インスタンスの更新中にルートボリュームを置き換える - Amazon EC2 Auto Scaling

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

インスタンスの更新中にルートボリュームを置き換える

仕組み

ルートボリュームの置き換えは、インスタンスの実行中にルート EBS ボリュームのみを置き換えることでインスタンスを更新します。これにより、新しいインスタンスを起動する必要がなくなり、潜在的な容量の制約を回避できます。このプロセスでは、以下を含む他のすべてのインスタンスリソースが保持されます。

  • ネットワークインターフェイスと IP アドレス

  • 非ルート EBS ボリューム

  • インスタンスストアボリュームとデータ

  • セキュリティグループと IAM ロール

ルートボリュームの置き換え中、アプリケーションは既存のインスタンスで引き続き実行されます。元のルートボリュームはデタッチされ、指定された AMI から新しいルートボリュームが作成され、同じインスタンスにアタッチされます。元のルートボリュームは、置き換えが成功すると自動的に削除されます。

ルートボリュームの置き換え戦略を使用すると、インスタンスは次のライフサイクル状態になります。

  1. ReplacingRootVolume - ルートボリュームの置換が開始されます

  2. ReplacingRootVolume:Wait - ライフサイクルフックの完了を待機します (設定されている場合)

  3. ReplacingRootVolume:Proceed - 置き換えを続行します

  4. RootVolumeReplaced - 置き換えが正常に完了しました

ルートボリュームの置換が完了すると、Auto Scaling は更新されたインスタンスに対してヘルスチェックを実行します。インスタンスのルートボリュームの置換が失敗した場合、Auto Scaling はそのインスタンスを終了としてマークし、新しいインスタンスに置き換えます。

要件

  • Auto Scaling グループは混合インスタンスポリシーを使用する必要があります

  • 混合インスタンスポリシーのすべてのオーバーライドでは、 を指定する必要があります。 ImageId

  • AMIs には 1 つのルートボリュームのみを含める必要があります

  • すべてのインスタンスは、グループの起動テンプレート設定と一致する必要があります

  • ImageId オーバーライドを含む混合インスタンスポリシーを使用して、必要な設定でインスタンスの更新を開始する必要があります。

ルートボリュームを置き換えてインスタンスの更新を開始する

ルートボリュームの置き換え (AWS CLI) を使用してインスタンスの更新を開始するには

次の start-instance-refresh コマンドを使用して、 からインスタンスの更新を開始します AWS CLI。JSON 設定ファイルでは、変更する任意の設定を指定できます。設定ファイルを参照するとき、次の例に示すように、ファイルパスおよび名前を指定します。

aws autoscaling start-instance-refresh --cli-input-json file://config.json

config.json の内容:

{ "AutoScalingGroupName": "my-asg", "Strategy" : "ReplaceRootVolume", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateId":"my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType":"c5.large", "ImageId":"ami-1234example" }, { "InstanceType":"m5.large", "ImageId":"ami-2345example" } ] } } }, "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 90, "AutoRollback": true, "ScaleInProtectedInstances": Ignore, "StandbyInstances": Ignore } }

設定が指定されない場合、デフォルト値が使用されます。詳細については、「インスタンスの更新のデフォルト値について説明する」を参照してください。

出力例:

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }

制限事項

  • EC2 Auto Scaling グループまたはインスタンスの更新に必要な設定が $Latestまたは $Default起動テンプレートバージョンを使用している場合、ルートボリュームの置換でインスタンスの更新を開始することはできません。

  • 混合インスタンスポリシーにインスタンスタイプが存在しないインスタンスが含まれている場合、Amazon EC2 Auto Scaling グループのルートボリュームの置換でインスタンスの更新を開始することはできません。

  • ルートボリュームの置き換えによるインスタンスの更新中、必要な設定の混合インスタンスポリシーに存在するタイプのインスタンスのみをアタッチできます。

  • ウォームプールがある EC2 Auto Scaling グループでは、ルートボリュームの置き換えを使用してインスタンスの更新を開始することはできません。

  • アクティブなインスタンス更新がある Amazon EC2 Auto Scaling グループにウォームプールをルートボリュームの置き換えで追加することはできません。