{Aurora}MySQL DB インスタンスから Aurora MySQL への移行

(1)Aurora への RDS for MySQL スナップショットの移行
(1-1)暗号化なしの場合

-- テスト用MySQL RDS作成

aws rds create-db-instance        \
--db-instance-identifier mysql01  \
--allocated-storage 20            \
--db-instance-class db.t3.micro   \
--engine mysql                    \
--master-username root            \
--master-user-password 'password' \
--no-multi-az                     \
--engine-version 5.7.34           \
--storage-type gp2                \
--no-publicly-accessible


-- スナップショット作成
aws rds create-db-snapshot           \
--db-snapshot-identifier snap01      \
--db-instance-identifier mysql01


-- インスタンススナップショットの一覧
aws rds describe-db-snapshots
aws rds describe-db-snapshots | jq -c '.DBSnapshots | [ .DBInstanceIdentifier, .DBSnapshotArn ] '

 

-- Auroraへのスナップショットの移行

aws rds restore-db-cluster-from-snapshot \
--db-cluster-identifier cluster01 \
--snapshot-identifier arn:aws:rds:ap-northeast-1:999999999999:snapshot:snap01 \
--engine aurora-mysql

aws rds create-db-instance \
--db-instance-identifier cluster01-instance01 \
--db-cluster-identifier cluster01 \
--db-instance-class db.t3.small \
--engine aurora-mysql

(1-2)暗号化ありの場合

-- テスト用MySQL RDS作成

aws rds create-db-instance        \
--db-instance-identifier mysql02  \
--allocated-storage 20            \
--db-instance-class db.t3.micro   \
--engine mysql                    \
--master-username root            \
--master-user-password 'password' \
--no-multi-az                     \
--engine-version 5.7.34           \
--storage-type gp2                \
--no-publicly-accessible          \
--storage-encrypted

-- スナップショット作成
aws rds create-db-snapshot           \
--db-snapshot-identifier snap02      \
--db-instance-identifier mysql02


-- インスタンススナップショットの一覧
aws rds describe-db-snapshots
aws rds describe-db-snapshots | jq -c '.DBSnapshots | [ .DBInstanceIdentifier, .DBSnapshotArn ] '

 

-- Auroraへのスナップショットの移行

aws rds restore-db-cluster-from-snapshot \
--db-cluster-identifier cluster02 \
--snapshot-identifier arn:aws:rds:ap-northeast-1:999999999999:snapshot:snap02 \
--engine aurora-mysql

aws rds create-db-instance \
--db-instance-identifier cluster02-instance01 \
--db-cluster-identifier cluster02 \
--db-instance-class db.t3.small \
--engine aurora-mysql

 

(2)Aurora リードレプリカを使用した、MySQL DB インスタンスから Amazon Aurora MySQL DB クラスターへのデータの移行

1 つの MySQL DB インスタンスに対して作成できる Aurora リードレプリカは、1 つだけです。

(2-1)暗号化なしの場合


-- テスト用MySQL RDS作成

aws rds create-db-instance        \
--db-instance-identifier mysql01  \
--allocated-storage 20            \
--db-instance-class db.t3.micro   \
--engine mysql                    \
--master-username root            \
--master-user-password 'password' \
--no-multi-az                     \
--engine-version 5.7.34           \
--storage-type gp2                \
--no-publicly-accessible


-- Aurora リードレプリカの作成
aws rds create-db-cluster \
--db-cluster-identifier cluster01 \
--engine aurora-mysql \
--replication-source-identifier arn:aws:rds:ap-northeast-1:999999999999:db:mysql01

aws rds create-db-instance \
--db-instance-identifier cluster01-instance01 \
--db-cluster-identifier cluster01 \
--db-instance-class db.t3.small \
--engine aurora-mysql

 

-- Aurora リードレプリカの昇格
aws rds promote-read-replica-db-cluster \
--db-cluster-identifier cluster01

aws rds describe-events

(2-2)暗号化ありの場合


-- テスト用MySQL RDS作成

aws rds create-db-instance        \
--db-instance-identifier mysql02  \
--allocated-storage 20            \
--db-instance-class db.t3.micro   \
--engine mysql                    \
--master-username root            \
--master-user-password 'password' \
--no-multi-az                     \
--engine-version 5.7.34           \
--storage-type gp2                \
--no-publicly-accessible          \
--storage-encrypted


-- Aurora リードレプリカの作成
aws rds create-db-cluster \
--db-cluster-identifier cluster02 \
--engine aurora-mysql \
--replication-source-identifier arn:aws:rds:ap-northeast-1:999999999999:db:mysql02 \
--storage-encrypted

aws rds create-db-instance \
--db-instance-identifier cluster02-instance01 \
--db-cluster-identifier cluster02 \
--db-instance-class db.t3.small \
--engine aurora-mysql


-- Aurora リードレプリカの昇格
aws rds promote-read-replica-db-cluster \
--db-cluster-identifier cluster02

aws rds describe-events