既存環境とAWS環境におけるMySQLやPosgresqlのバージョン比較と移行方針

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

渡辺です。

既存の環境をAWSに移行したいケースは多いかと思います。 CentOSなどRedhat Enterprise Linux(以下RHEL)系のLinuxで構築された環境であれば、基本的にはスムーズにAWS環境に移行できます。 しかし、利用されているOSやデータベース(RDS)のバージョンが古い場合はその限りではありません。

特にデータベース(RDB)をAWSのRDSに移行することが出来れば、多くのメリットがあります。 一方で、RDSはバージョンをあげるのに慎重になるのも致し方ありません。

今回はCentOS5を利用している環境で、AWS環境(Amazon Linux + RDS)に移行することを想定し、MySQL, PostgresqlのRDSで利用できるバージョンと、Amazon Linux, CentOS 5等でのバージョンを比較してみます。

Amazon Linux

Amazon Linuxは、AWSで提供するRedhat Enterprise Linux(RHEL)系のLinuxです。 Amazon Linuxは、定期的なアップデートが行われるだけでなく、ビジネスサポートやエンタープライズサポートの対象となるOSです。 したがって、AWS環境に移行するのであればAmazon Linuxへの移行が推奨されます。 同様に、RDSもAmazon Linuxをベースにサービスが提供されています。 大雑把に言えばRHEL系のLinuxにRDBをインストールしてDBサーバとして運用しているのであれば、RDSへの移行は難しくありません。

ただし、Amazon LinuxはRHEL6系のOSです。 このため、RHEL6やCentOS6を利用しているならば移行は容易ですが、CentOS 5.xなどRHEL5系から移行する場合はOSののメジャーバージョンをあげることになります。 インストールされているミドルウェア等もバージョンをあげることになるでしょう。

MySQL

MySQLのバージョン一覧です。

Version CentOS 5.10 Amazon Linux RDS
5.6.13 X
5.6.12 X
5.5.37 X
5.5.36 X
5.5.33 X
5.5.31 X
5.5.27 X
5.5.25a X
5.5.23 X
5.5.12 X
5.5.8 X
5.1.73 X
5.1.71 X
5.1.70 X
5.1.69 X
5.1.63 X
5.1.62 X
5.1.61 X
5.1.57 X
5.1.50 X
5.0.95 X

※xがついているものがインストール可能なバージョン

これらはデフォルトのyumリポジトリからインストールできるバージョンです。 RDSではyumリポジトリを追加できないのですが、多くのバージョンに対応しています。

CentOS 5系でMySQL5.0系をインストールしている環境を、Amazon LinuxやRDSに移行する場合、MySQLのバージョンアップを検討しなければなりません。RDBのバージョンアップによるリスクを避けてCentOS5系で移行することも選択肢のひとつですが、古いバージョンのOSやRDBを利用すること自体がリスクとなる事も考慮しなければなりません。

Postgresql

続けてPostgresqlのバージョンです。

同様にデフォルトのyumリポジトリからインストールできるバージョンです。

Version CentOS 5.10 Amazon Linux RDS
9.3.3 X
9.3.2 X
9.3.1 X
9.2.7 X
8.4.20 X X
8.1.23 X

※xがついているものがインストール可能なバージョン

RDSでPostgresqlがサポートされるようになりましたが、利用可能なバージョンは9.3系のみとなっています。 古いバージョンのPostgresqlを利用する場合は、まだまだAmazon LinuxやCentOS5などを利用する必要があります。

現時点においては、新規プロジェクトでPostgresqlを選択するのであればAWS環境を充分に活用できますが、既存システムをAWS環境に移行する場合は、同時にバージョンアップをすると考えておきましょう。ただし、一時的にAWS環境に既存システムと同じバージョンのPostgresqlをインストールし、後日バージョンアップする方針もあります。

バージョンアップを推奨

AWS環境へ移行するならば、可能な限りRDSでサポートされるバージョンへのバージョンアップを考慮すべきです。

なぜならば、RDSに移行することができれば、バックアップ冗長化など、それまで個別で管理しなければならなかった保守作業のほとんどを自動的に行えるためです。また、AWSサポートを受けられるのであれば、トラブルやバージョンアップなどの時に有効です。

また、各RDBにはプロダクトのサポートを行うライフサイクルも設定されています。古いバージョンのRDBは脆弱性などが発見されたとしてもパッチが提供されず、セキュリティ上のリスクも増大することを忘れないようにしてください。

とはいえ、既存のデータによっては移行がスムーズに行かない可能性もあります。十分な検証は行いましょう。