0
0

Aurora Serverless v1 (MySQL) からのアップグレード

Posted at

Aurora Serverless v1 のサポート終了

2024/12/31 を以って Aurora Serverless v1(MySQL 5.7互換)のサポートが終了します。

ただし、対応する Aurora MySQL 22024/10/31 までとなっており、後述する移行手順の中で一時的に Aurora 2 を経由するので早めの対応が望ましいでしょう。

なお、単純に Serverless v2 に移行すればよいかというと、かなり性格の違うサービスになっているようなので検討が必要です。

v1とv2の違い

  • クラスター内のインスタンスは不可視なのがv1
  • 同一クラスター内でサーバーレスのインスタンスとプロビジョンドのインスタンスが同居もできるのがv2

  • スケーリング性能が大きく向上
  • 一方、コストはACU単価が倍になり、かつアイドル状態のときにACUをゼロにする(=停止する)オプションがなくなった

特にコスト面で見たとき、v2よりもプロビジョンドでリザーブドインスタンスを適用するなどしたほうがメリットが出るプロダクトもあるのではないでしょうか。
(開発環境で利用していたアイドル時停止オプションがないのは痛いです…)

アップグレード手順

手順はほぼ以下のサイトのとおりです。

(1) サーバーレス → プロビジョンドに変換

これはAWSコンソールからは作業できず、CLIでの作業となります。

例)
aws rds modify-db-cluster \
    --db-cluster-identifier CLUSTER_NAME \
    --engine-mode provisioned \
    --allow-engine-mode-change \
    --db-cluster-instance-class db.t4g.medium

CLIバージョン 2.11.14以上が必要です(おそらく)
https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst

コマンドが成功すると、自動でスナップショットが保存され、クラスターが「変更中」になり、インスタンスも1つ作成されます。

(2) Aurora MySQL 2 → 3 へのアップグレード

ここは以前書いた記事と同様です。

(3) Aurora Serverless v2 への変更

※必要に応じて
コンソール上、インスタンスの「変更」からプロビジョンドからサーバーレスに変更します。

v2は簡単にプロビジョンドとサーバーレスの変更ができるようになりました。

Data API の対応

さて、実は非常に困ったことになったのがこれです。
あるフルサーバーレスプロダクトでは、LambdaからのアクセスをData API(aws-sdk の RDSDataService)を使っていたので、アップグレードすると完全に動作しなくなってしまいます。

Aurora MySQL では、Data API に対応しているのが Serverless v1 のみ。
Serverless v2 も プロビジョンドの Aurora 3 も非対応なので、アップグレード先の選択肢がありません。
PostgreSQL は対応しているんだから、MySQL も対応してくれるのか…?

0
0
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
0