LoginSignup
0
1

More than 5 years have passed since last update.

[aws-cli]json形式設定ファイルを元にスナップショットからRDSを復元する。

Posted at

[aws-cli]json形式設定ファイルを元にスナップショットからRDSを復元する。

RDSをスナップショットから復元するコマンドはrestore-db-instance-from-db-snapshot
restore-db-instance-from-db-snapshot — AWS CLI 1.10.39 Command Reference

スナップショット取得元の設定内容は下記記事を参照
[aws-cli]RDSをjson形式設定ファイルから起動する。

デフォルトの設定ファイルを出力


$ aws rds  restore-db-instance-from-db-snapshot --generate-cli-skeleton > default.json
$ cat default.json
{
    "DBInstanceIdentifier": "",
    "DBSnapshotIdentifier": "",
    "DBInstanceClass": "",
    "Port": 0,
    "AvailabilityZone": "",
    "DBSubnetGroupName": "",
    "MultiAZ": true,
    "PubliclyAccessible": true,
    "AutoMinorVersionUpgrade": true,
    "LicenseModel": "",
    "DBName": "",
    "Engine": "",
    "Iops": 0,
    "OptionGroupName": "",
    "Tags": [
        {
            "Key": "",
            "Value": "" 
        }
    ],
    "StorageType": "",
    "TdeCredentialArn": "",
    "TdeCredentialPassword": "",
    "CopyTagsToSnapshot": true
}

各項目について確認

DBInstanceIdentifier: DBインスタンス名 アカウント内で一意
DBSnapshotIdentifier: 起動の元となるDBスナップショット名
DBInstanceClass: インスタンスタイプ
Port: ポート 未定義であればデフォルト
AvailabilityZone: アベイラビリティゾーン
DBSubnetGroupName: DBサブネットグループ名
MultiAZ: マルチAZ構成にするか否か
PubliclyAccessible: 外部アクセス可否
AutoMinorVersionUpgrade: マイナーバージョンアップを適用するか否か
LicenseModel: ライセンシングモデル license-included | bring-your-own-license | general-public-license
DBName: database名
Engine: DBエンジン
Iops: ストレージへの秒間IO上限
OptionGroupName: オプショングループ名
Tags: タグの配列
StorageType: ストレージタイプ standard | gp2 | io1
TdeCredentialArn: HAパーティショングループのリソース番号
TdeCredentialPassword: HAパーティショングループの初期化時に使用したパーティションパスワード
CopyTagsToSnapshot: スナップショットにタグをコピーするか否か

書き換え


$ cat modify.json
{
    "DBInstanceIdentifier": "test2",
    "DBSnapshotIdentifier": "snapshotName",
    "DBInstanceClass": "db.t2.micro",
    "AvailabilityZone": "ap-northeast-1a",
    "DBSubnetGroupName": "subnet-xxxxxxxx",
    "MultiAZ": false,
    "PubliclyAccessible": false,
    "AutoMinorVersionUpgrade": true,
    "LicenseModel": "general-public-license",
    "Engine": "MySQL",
    "Iops": 0,
    "OptionGroupName": "",
    "Tags": [
        {
            "Key": "test",
            "Value": "test" 
        }
    ],
    "StorageType": "standard",
    "CopyTagsToSnapshot": true
}

作成


$ aws --region ap-northeast-1 rds  restore-db-instance-from-db-snapshot --cli-input-json file:///tmp/modify.json
{
    "DBInstance": {
        "PubliclyAccessible": false,
        "MasterUsername": "root",
        "LicenseModel": "general-public-license",
        "VpcSecurityGroups": [
            {
                "Status": "active",
                "VpcSecurityGroupId": "sg-xxxxxxxx" 
            }
        ],
        "CopyTagsToSnapshot": true,
        "OptionGroupMemberships": [
            {
                "Status": "pending-apply",
                "OptionGroupName": "default:mysql-5-6" 
            }
        ],
        "PendingModifiedValues": {},
        "Engine": "mysql",
        "MultiAZ": false,
        "DBSecurityGroups": [],
        "DBParameterGroups": [
            {
                "DBParameterGroupName": "default.mysql5.6",
                "ParameterApplyStatus": "in-sync" 
            }
        ],
        "AutoMinorVersionUpgrade": true,
        "PreferredBackupWindow": "19:00-19:30",
        "DBSubnetGroup": {
            "Subnets": [
                {
                    "SubnetStatus": "Active",
                    "SubnetIdentifier": "subnet-xxxxxxxx",
                    "SubnetAvailabilityZone": {
                        "Name": "ap-northeast-1c" 
                    }
                },
                {
                    "SubnetStatus": "Active",
                    "SubnetIdentifier": "subnet-xxxxxxxx",
                    "SubnetAvailabilityZone": {
                        "Name": "ap-northeast-1a" 
                    }
                }
            ],
            "DBSubnetGroupName": "subnet-xxxxxxxx",
            "VpcId": "vpc-xxxxxxxx",
            "DBSubnetGroupDescription": "for db subnet",
            "SubnetGroupStatus": "Complete" 
        },
        "ReadReplicaDBInstanceIdentifiers": [],
        "AllocatedStorage": 5,
        "BackupRetentionPeriod": 3,
        "DBName": "test",
        "PreferredMaintenanceWindow": "sat:18:00-sat:18:30",
        "DBInstanceStatus": "creating",
        "EngineVersion": "5.6.27",
        "AvailabilityZone": "ap-northeast-1a",
        "StorageType": "standard",
        "DbiResourceId": "db-xxxxxxxxxxxxxxxxxxxxxxxx",
        "CACertificateIdentifier": "rds-ca-2015",
        "StorageEncrypted": false,
        "DBInstanceClass": "db.t2.micro",
        "DbInstancePort": 0,
        "DBInstanceIdentifier": "test2" 
    }
}

エラー

A client error (InvalidParameterValue) occurred when calling the RestoreDBInstanceFromDBSnapshot operation: DBName must be null when Restoring for this Engine.
MySQLをリストアする場合にはDBNameを設定できないよう。
DBNameを削除して解消。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1