AWS BackupでEC2をリストアしたときに引き継がれる設定・再設定が必要な設定(2026年版)
こんにちは、林です。
AWS BackupでEC2を復元すると、元のインスタンスの設定はそのまま引き継がれるのでしょうか。
調べてみると、2020年に同じテーマの記事がありました。
ただし、6年前の記事のため、その後に登場した設定(停止保護やgp3のIOPS・スループットなど)は載っていません。また、コンソールの復元画面も当時とは変わっています。
そこで、2026年版として改めて確認してみました。
検証方法
次の手順で、元のインスタンスと復元後のインスタンスの設定を比較しました。
- 既定値と違う設定を入れたEC2インスタンスを作り、設定を記録する
- AWS Backupのオンデマンドバックアップで復旧ポイントを取る
- 同じ復旧ポイントから、コンソールとAWS CLI(
start-restore-job)の2通りで復元する - 復元した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 / 暗号化(カスタマー管理キー) / 終了時に削除 = いいえ |
タグ
| 項目 | 値 |
|---|---|
| インスタンス / ボリューム / ネットワークインターフェイス | Name と System を付与 |
以下の項目は確認対象外としました。
- 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 で取り出せます。渡せる項目の一覧は公式ドキュメントにあります。
# 復旧ポイントに記録されている元インスタンスの設定値(メタデータ)を取り出してファイルに保存する
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 の出力です。
値はすべて文字列で、Placement や NetworkInterfaces のような入れ子の設定は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箇所を削除しました。
PlacementのGroupId:GroupNameとGroupIdの両方があると「どちらか一方しか指定できない」というエラーになるためNetworkInterfacesのNetworkInterfaceId、PrivateIpAddress、SecondaryPrivateIpAddressCount、Ipv6AddressCount: 元と同じプライベートIPで復元するため- トップレベルの
SubnetIdとSecurityGroupIds:NetworkInterfacesの中に同じ指定があるため
2つ目と3つ目は、こちらの記事を参考にさせていただきました。
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 で状態を確認し、Status が COMPLETED になれば完了です。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 |
|---|---|---|
| インスタンスのタグ | ○(「保護されたリソースのタグをコピー」を選んだ場合) | ×(なし) |
| ボリュームのタグ | ×(インスタンスのタグが付く) | ×(なし) |
| ネットワークインターフェイスのタグ | ×(なし) | ×(なし) |






