dshimizu/blog

アルファ版

Amazon Linux 2023 で MySQL 公式クライアントを使おうと思うならどうするのが良いかと思ってちょろっと調べたことの雑多なメモ

はじめに

Amazon Linux 2023 で動いている EC2 から RDS MySQL や Aurora MySQL に接続したいことが結構あります(Fargate の踏み台使えとかはなし)。

しかし、Amazon Linux 2023 の公式 yum リポジトリにも MySQL クライアントのパッケージはなさそうでした。

実際どうするのが一番良さそうなのか気になりつつ、2023/7時点での対応状況などなどを軽く調べてみました。

AWSのドキュメント

RDS MySQL DBインスタンスの接続には MariaDB クライアントを使うように促されてます。

Aurora MySQL への接続は、Aurora MySQL のバージョンと互換性のあるバージョンのMySQLクライアントを使え、ということみたいです。

一方でアプリケーションで使うドライバは以下を使うのがよさそうに思われました。フェイルオーバー時の挙動に対応してそうに思われました。 * GitHub - awslabs/aws-mysql-jdbc: The Amazon Web Services (AWS) JDBC Driver for MySQL is a driver that enables applications to take full advantage of the features of clustered MySQL databases. * Amazon Web Services (AWS) JDBC Driver for MySQL

MySQL

一方で、MySQL 側では、RHEL/Oracle Linux/Fedora 向けの yum リポジトリは提供されています。 これらを使うことでインストールして使えそうですが(試してない)、厳密には Amazon Linux 2023 のものではありません。

ソースビルドも考えましたが、今のところ glibc で合っているものがなさそうでした。

Amazon Linux 2023 で公式のMySQLクライアントを使おうと思うと、以下のような感じで Docker イメージを使うのが楽そうに思いました。

% docker run --rm -it mysql:8.0.33 mysql -h db-hostname -u db-user -p

MariaDBMySQL

MariaDBMySQLの対応ってどんな感じかあまり分かってなかったのでこれも少し見てみました。

サーバー側は MariaDB 10.3 あたりから微妙に非互換が出てきているようです。

一部コネクターでは問題があったりするようでした。

でもMariaDB クライアントを利用して接続すること自体は通常は大丈夫そうな感じはします。

まとめ

Amazon Linux 2023 から、通常のちょっとしたオペレーションで Aurora MySQL へ接続する分には MariaDB クライアントでもよさそうに思いました。 Amazon Linux 2023 で公式のMySQLクライアントを使おうと思うと、Dockerイメージを使うのが楽そうに思いました。 アプリケーションで利用する場合は、aws-mysql-jdbcを使うのが良さそうに思いました。

参考