AWS BackupでEC2をリストアしたときに引き継がれる設定・再設定が必要な設定(2026年版)

AWS BackupでEC2をリストアしたときに引き継がれる設定・再設定が必要な設定(2026年版)

AWS BackupからEC2を復元すると、停止保護やタグなど一部の設定は引き継がれません。 コンソールとAWS CLIで復元した結果を比較し、どの項目が引き継がれ、どの項目が既定値に戻るかをまとめました。
2026.09.24

こんにちは、林です。

AWS BackupでEC2を復元すると、元のインスタンスの設定はそのまま引き継がれるのでしょうか。
調べてみると、2020年に同じテーマの記事がありました。

https://dev.classmethod.jp/articles/aws_backup_genmanage/

ただし、6年前の記事のため、その後に登場した設定(停止保護やgp3のIOPS・スループットなど)は載っていません。また、コンソールの復元画面も当時とは変わっています。

そこで、2026年版として改めて確認してみました。

検証方法

次の手順で、元のインスタンスと復元後のインスタンスの設定を比較しました。

  1. 既定値と違う設定を入れたEC2インスタンスを作り、設定を記録する
  2. AWS Backupのオンデマンドバックアップで復旧ポイントを取る
  3. 同じ復旧ポイントから、コンソールとAWS CLI(start-restore-job)の2通りで復元する
  4. 復元した2台の設定を、1で記録した元の設定と比較する

CLIではプライベートIPも元と同じ値を指定して復元しました。同じIPのインスタンスが2台あると復元に失敗するため、CLI復元の前に元のインスタンスを終了しています。

元のインスタンスの設定は以下のとおりです。
復元後に設定が引き継がれたかどうかを判断できるように、既定値のある項目はどれも既定値とは違う値にしています。

インスタンス

項目
OS Windows Server 2025 日本語版
インスタンスタイプ t3.large
キーペア / IAM インスタンスプロファイル 検証用に作成したものを指定
ユーザーデータ 設定あり
シャットダウン動作 停止
終了保護 有効
停止保護 有効
詳細モニタリング 有効
EBS 最適化 有効
プレイスメントグループ spread のグループに配置
休止動作 有効
キャパシティ予約 特定の予約を指定
クレジット仕様 standard(t3 の既定は unlimited)
自動復旧 無効

インスタンスメタデータ

項目
IMDSv2 必須
メタデータレスポンスのホップ制限 3
メタデータのタグを許可 有効
メタデータの IPv6 エンドポイント 有効

ネットワーク

項目
VPC / サブネット / セキュリティグループ 検証用に作成したものを指定
プライマリプライベート IPv4 アドレス 10.0.1.54
セカンダリプライベート IPv4 アドレス 10.0.1.55
IPv6 アドレス 1つ割り当て
パブリック IP の自動割り当て 有効
送信元/送信先チェック 無効
ホスト名タイプ リソース名
ネットワークインターフェイスの説明 設定あり

ストレージ

項目
Cドライブ(/dev/sda1) 160 GiB / gp3 / 4000 IOPS / 250 MB/s / 暗号化(カスタマー管理キー) / 終了時に削除 = はい
Dドライブ(/dev/sdb) 100 GiB / gp3 / 3000 IOPS / 125 MB/s / 暗号化(カスタマー管理キー) / 終了時に削除 = いいえ

タグ

項目
インスタンス / ボリューム / ネットワークインターフェイス NameSystem を付与

以下の項目は確認対象外としました。

  • AMI ID: 復元のたびに新しいAMIが作られ、元と同じにはならないため
  • スポットインスタンス、Dedicated Hosts、ライセンス設定、Elastic Fabric Adapter、Elastic Graphics / Elastic Inference: 特定の用途向けの設定で、今回の構成では使っていないため
  • Nitro Enclaves、ネットワーク帯域幅の重み付け: t3 では使えないため

検証結果

CLIで引き継がれたのは、復旧ポイントのメタデータに入っている項目でした。
コンソールでは、復元画面に入力欄がある項目だけでした。

項目ごとに分けると次のとおりです。全項目の比較表は記事の最後に載せています。

両方で引き継がれる

  • インスタンス: インスタンスタイプ、キーペア、IAM インスタンスプロファイル、シャットダウン動作、終了保護、EBS 最適化、テナンシー、プレイスメントグループ、CPU オプション、休止動作
  • インスタンスメタデータ: IMDSv2(HttpTokens)
  • ネットワーク: VPC、サブネット、セキュリティグループ
  • ストレージ: すべて(サイズ、タイプ、IOPS、スループット、暗号化、終了時に削除)

CLIのみ引き継がれる

  • インスタンス: 詳細モニタリング、クレジット仕様、キャパシティ予約
  • ネットワーク: プライベート IPv4 アドレス(プライマリ・セカンダリ)、IPv6 アドレス、パブリック IP の自動割り当て、ネットワークインターフェイスの説明

コンソールのみ引き継がれる

  • タグ: インスタンス(「保護されたリソースのタグをコピー」を選んだ場合)

両方で引き継がれない

  • インスタンス: 停止保護、自動復旧、ユーザーデータ
  • インスタンスメタデータ: HttpTokens 以外(ホップ制限、タグを許可、IPv6 エンドポイント)
  • ネットワーク: 送信元/送信先チェック、ホスト名タイプ
  • タグ: ボリューム、ネットワークインターフェイス

引き継がれなかった項目は、いずれも既定値に戻っていました。

復元手順

コンソール

復元画面は、[AWS Backup] → [バックアップボールト] → 復旧ポイントを選択 → [復元] で開きます。
設定値はすべて既定のまま復元しました。

復元画面:ネットワーク設定

復元画面:ストレージ

復元画面:ロール・タグ・詳細設定

入力欄がある項目は上の復元画面のとおりで、検証結果の「両方で引き継がれる」「コンソールのみ引き継がれる」に入った項目と一致します。

例外は「T2/T3 無制限」です。復元画面では「無効」になっていましたが、復元後は unlimited(無制限)になっていました。

CLI

CLIで復元するには、start-restore-job に復元後のインスタンスの設定値をメタデータとして渡します。コンソールの復元画面に入力する内容を、自分で用意することになります。

設定値は復旧ポイントに記録されているため、get-recovery-point-restore-metadata で取り出せます。渡せる項目の一覧は公式ドキュメントにあります。

https://docs.aws.amazon.com/aws-backup/latest/devguide/restoring-ec2.html

# 復旧ポイントに記録されている元インスタンスの設定値(メタデータ)を取り出してファイルに保存する
aws backup get-recovery-point-restore-metadata \
  --backup-vault-name sample-backup-vault \
  --recovery-point-arn <復旧ポイントのARN> \
  | jq '.RestoreMetadata' > restore.json

get-recovery-point-restore-metadata の出力です。
値はすべて文字列で、PlacementNetworkInterfaces のような入れ子の設定はJSON文字列として入っています。長い値は一部省略しています。

{
    "RestoreMetadata": {
        "Architecture": "x86_64",
        "BlockDeviceMappings": "[{\"DeviceName\":\"/dev/sda1\",\"Ebs\":{\"DeleteOnTermination\":true,\"Iops\":4000,\"VolumeSize\":160,\"VolumeType\":\"gp3\", ...}}, ...]",
        "CapacityReservationSpecification": "{\"CapacityReservationTarget\":{\"CapacityReservationId\":\"cr-xxxxxxxxxxxxxxxxx\"}}",
        "CpuOptions": "{\"CoreCount\":1,\"ThreadsPerCore\":2}",
        "CreditSpecification": "{\"CpuCredits\":\"standard\"}",
        "DisableApiTermination": "true",
        "EbsOptimized": "true",
        "EnaSupport": "true",
        "HibernationOptions": "{\"Configured\":true}",
        "IamInstanceProfileName": "sample-instance-role",
        "InstanceInitiatedShutdownBehavior": "stop",
        "InstanceType": "t3.large",
        "KeyName": "sample-key",
        "Monitoring": "{\"State\":\"enabled\"}",
        "NetworkInterfaces": "[{\"AssociatePublicIpAddress\":true,\"Description\":\"sample primary ENI\",\"Groups\":[\"sg-xxxxxxxxxxxxxxxxx\"],\"NetworkInterfaceId\":\"eni-xxxxxxxxxxxxxxxxx\",\"PrivateIpAddress\":\"10.0.1.54\",\"SubnetId\":\"subnet-xxxxxxxxxxxxxxxxx\", ...}]",
        "Placement": "{\"AvailabilityZone\":\"ap-northeast-1a\",\"GroupName\":\"sample-placement-group\",\"Tenancy\":\"default\",\"GroupId\":\"pg-xxxxxxxxxxxxxxxxx\"}",
        "Platform": "windows",
        "RequireIMDSv2": "true",
        "RootDeviceType": "ebs",
        "SecurityGroupIds": "[\"sg-xxxxxxxxxxxxxxxxx\"]",
        "SubnetId": "subnet-xxxxxxxxxxxxxxxxx",
        "VirtualizationType": "hvm",
        "VpcId": "vpc-xxxxxxxxxxxxxxxxx",
        "aws:backup:request-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
}

検証結果で「両方で引き継がれない」に入れた項目は、出力には入っていません。
渡す値がないため、既定値が設定されるということですね。

この出力をそのまま渡すと復元ジョブが失敗するため、以下の3箇所を削除しました。

  • PlacementGroupId: GroupNameGroupId の両方があると「どちらか一方しか指定できない」というエラーになるため
  • NetworkInterfacesNetworkInterfaceIdPrivateIpAddressSecondaryPrivateIpAddressCountIpv6AddressCount: 元と同じプライベートIPで復元するため
  • トップレベルの SubnetIdSecurityGroupIds: NetworkInterfaces の中に同じ指定があるため

2つ目と3つ目は、こちらの記事を参考にさせていただきました。

https://dev.classmethod.jp/articles/aws-backup-fixed-private-ip-restore-with-jq/

3箇所をまとめて削除する jq コマンドです。

jq 'del(.SubnetId, .SecurityGroupIds)
  | .Placement = (.Placement | fromjson | del(.GroupId) | @json)
  | .NetworkInterfaces = (.NetworkInterfaces | fromjson
      | map(del(.NetworkInterfaceId, .PrivateIpAddress, .SecondaryPrivateIpAddressCount, .Ipv6AddressCount))
      | @json)' \
  restore.json > restore2.json

加工したメタデータを渡して、復元ジョブを開始します。

# --iam-role-arn は AWS Backup が復元に使うIAMロール
aws backup start-restore-job \
  --recovery-point-arn <復旧ポイントのARN> \
  --iam-role-arn arn:aws:iam::123456789012:role/sample-backup-role \
  --metadata file://restore2.json

復元ジョブIDは start-restore-job の出力に入っています。
describe-restore-job で状態を確認し、StatusCOMPLETED になれば完了です。CreatedResourceArn が復元されたインスタンスです。

aws backup describe-restore-job --restore-job-id <復元ジョブID> \
  --query '{Status: Status, CreatedResourceArn: CreatedResourceArn}'
{
    "Status": "COMPLETED",
    "CreatedResourceArn": "arn:aws:ec2:ap-northeast-1:123456789012:instance/i-xxxxxxxxxxxxxxxxx"
}

比較に使ったコマンド

元のインスタンスと復元後のインスタンスで次のコマンドを実行し、出力を比較しました。比較表の括弧内に書いたAPIパラメータ名は、この出力の項目名です。

ID=<インスタンスID>

# インスタンス、インスタンスメタデータ(MetadataOptions)、ネットワーク、インスタンスのタグ
aws ec2 describe-instances --instance-ids $ID

# 終了保護、停止保護、シャットダウン動作、ユーザーデータは describe-instances に含まれないため、属性ごとに取得する
aws ec2 describe-instance-attribute --instance-id $ID --attribute disableApiTermination
aws ec2 describe-instance-attribute --instance-id $ID --attribute disableApiStop
aws ec2 describe-instance-attribute --instance-id $ID --attribute instanceInitiatedShutdownBehavior
aws ec2 describe-instance-attribute --instance-id $ID --attribute userData

# クレジット仕様
aws ec2 describe-instance-credit-specifications --instance-ids $ID

# セカンダリプライベート IPv4 アドレス、IPv6 アドレス、ネットワークインターフェイスの説明とタグ
aws ec2 describe-network-interfaces --filters Name=attachment.instance-id,Values=$ID

# ストレージ(BlockDeviceMappings)とボリュームのタグ
aws ec2 describe-volumes --filters Name=attachment.instance-id,Values=$ID

まとめ

AWS BackupでEC2を復元したときに、元のインスタンスの設定が引き継がれるかを、コンソールとCLIで確認しました。

  • CLIでは、復旧ポイントのメタデータに入っている項目が引き継がれる
  • コンソールでは、復元画面に入力欄がある項目だけが引き継がれる
  • 停止保護、自動復旧、ユーザーデータ、HttpTokens 以外のメタデータオプション、送信元/送信先チェック、ホスト名タイプ、タグは、どちらでも引き継がれない

2020年の記事にあった「タグが消える」「詳細モニタリングが無効になる」は、2026年も同じでした。復元手順には、引き継がれない項目を設定し直す手順も入れておく必要があります。

この記事がどなたかの参考になれば幸いです。最後までご覧いただきありがとうございました!

参考:全項目の比較表

○は引き継がれた項目、×は引き継がれなかった項目です。×には復元後の値を併記しています。

インスタンス

項目(APIパラメータ) コンソール CLI
インスタンスタイプ(InstanceType)
キーペア(KeyName)
IAM インスタンスプロファイル(IamInstanceProfile)
ユーザーデータ(UserData) ×(なし) ×(なし)
シャットダウン動作(InstanceInitiatedShutdownBehavior)
終了保護(DisableApiTermination)
停止保護(DisableApiStop) ×(無効) ×(無効)
詳細モニタリング(Monitoring) ×(無効)
EBS 最適化(EbsOptimized)
テナンシー(Placement.Tenancy)
プレイスメントグループ(Placement.GroupName)
クレジット仕様(CreditSpecification、T系のみ) ×(unlimited)
CPU オプション(CpuOptions)
休止動作(HibernationOptions)
キャパシティ予約(CapacityReservationSpecification) ×(open)
自動復旧(MaintenanceOptions.AutoRecovery) ×(default) ×(default)

インスタンスメタデータ(MetadataOptions)

項目(APIパラメータ) コンソール CLI
IMDSv2(HttpTokens)
メタデータのアクセス(HttpEndpoint)
メタデータレスポンスのホップ制限(HttpPutResponseHopLimit) ×(2) ×(2)
メタデータのタグを許可(InstanceMetadataTags) ×(無効) ×(無効)
メタデータの IPv6 エンドポイント(HttpProtocolIpv6) ×(無効) ×(無効)

ホップ制限の2は、Windows Server 2025 AMI の既定値です。

ネットワーク

項目(APIパラメータ) コンソール CLI
VPC / サブネット(SubnetId)
セキュリティグループ(SecurityGroupIds)
プライマリプライベート IPv4 アドレス(PrivateIpAddress) ×(別のアドレス)
セカンダリプライベート IPv4 アドレス(SecondaryPrivateIpAddresses) ×(なし)
パブリック IP の自動割り当て(AssociatePublicIpAddress) ×(割り当てなし)
IPv6 アドレス(Ipv6Addresses) ×(なし)
送信元/送信先チェック(SourceDestCheck) ×(有効) ×(有効)
ホスト名タイプ / リソースベースの DNS 名(PrivateDnsNameOptions) ×(ip-name) ×(ip-name)
ネットワークインターフェイスの説明(Description) ×(空)

ストレージ(BlockDeviceMappings)

項目(APIパラメータ) コンソール CLI
デバイス名・ボリューム数・サイズ(DeviceName / VolumeSize)
ボリュームタイプ(VolumeType)
IOPS / スループット(Iops / Throughput)
暗号化 / KMS キー(Encrypted / KmsKeyId)
ルートボリュームの終了時に削除(DeleteOnTermination)
データボリュームの終了時に削除(DeleteOnTermination)

タグ

項目 コンソール CLI
インスタンスのタグ ○(「保護されたリソースのタグをコピー」を選んだ場合) ×(なし)
ボリュームのタグ ×(インスタンスのタグが付く) ×(なし)
ネットワークインターフェイスのタグ ×(なし) ×(なし)

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事