Amazon Linux 2 で MySQL を使用する
はじめに
近年の情報化社会を形作る上で多くの企業が利用している重要な技術として、データベースを利用したWebアプリケーションがあります。LAMP 環境※1という言葉を目にしたこともあるかもしれません。
今回は Amazon EC2 上で徐々に人気の高めているOS「Amazon Linux 2」と、データベース管理システムの中でも世界中で高いシェアを獲得している「MySQL」についてまとめていきます。
そもそも Amazon Linux 2 とはどのようなOSなのか
Amazon Linux 2 はアマゾン ウェブ サービス(AWS)より提供されている、次世代の Amazon Linux オペレーティングシステムです。ベースは RedHat 系のディストリビューションであり、操作は RHEL7 や CentOS7 に近いOSとなります。Amazon EC2 での使用に最適化された設定となっており、AWS との連携が非常に容易に行えることが大きな特徴となります。
データベース MySQL と MariaDB の違い
実は Amazon Linux 2 にはデフォルトで MariaDB という MySQL とは別のデータベースが既にインストールされています。MySQL と MariaDB のどちらを使用していくか判断するためにも、これらデータベースの特徴について記載していきます。
- ■ MySQL の特徴
- MySQL はオープンソースで提供されているリレーショナルデータベース管理システムです。MySQL には主に以下のような特徴があります。
- オープンソースで基本的に無料で使用可能
- どんなアプリケーションにも対応できる高い拡張性
- 複数のOS(Linux、Mac、Windowsなど)で動作する柔軟性
- 巨大サイトでの利用に耐える頑丈さ
- Oracle 社によって開発やソースコード管理が行われている
- 世界中でも高いシェアを獲得している
- デュアルライセンス(GPLと商用)を採用
- ■ MariaDB の特徴
- MariaDB は MySQL から派生したオープンソースのリレーショナルデータベース管理システムです。MariaDB には主に以下のような特徴があります。
- MySQL との高い互換性
- クラスタ構成でのデータベース構築を手軽に行うことができる
- MySQLよりも煩雑な暗号化設定による、より高い堅牢性
- 複数のストレージエンジンに対応
- 「列単位」で処理を行うカラム型DBエンジンが採用されており、ビッグデータなどの集計作業を得意とする
- 純粋なオープンソースプロジェクトのため、ベンダーによる関与がない
- 拡張性や処理性能が評価され、世界中で急速にシェアを拡大している
- GPLライセンスを採用
- Amazon Linux 2 にデフォルトでインストールされている MariaDB をアンインストールします。
例)
$ sudo yum list installed | grep mariadb
$ sudo yum remove mariadb-libs
※MySQL をインストールする際に mariaDB と入れ替えが行われるため、必ずしも mariaDB のアンインストールを行わなくてはならないわけではありませんが、使用しないのであればアンインストールしておいた方が無難でしょう。 - MySQL公式のyumリポジトリを追加します。
例)
$ sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
※上記で指定しているのはMySQL8.0のリポジトリとなりますが、この中にMySQL5.7も入っています。 - インストールするバージョンの有効化を行います。(※ MySQL8.0 を使用する場合、この3.の手順は飛ばしても問題ありません。)
<MySQL8.0 を使用する場合>
例)
$ sudo yum-config-manager –enable mysql80-community
<MySQL5.7 を使用する場合>
例)
$ sudo yum-config-manager –disable mysql80-community
$ sudo yum-config-manager –enable mysql57-community - MySQL のインストールを実行します。
例)
$ sudo yum install mysql-community-server - 希望したバージョンが入っていることを確認します。
例)
$ mysqld –version - 使用可能なトピックのリストを表示する
例)$ amazon-linux-extras list - トピックを有効にし、パッケージを最新バージョンの状態で維持する
例)$ sudo amazon-linux-extras install topic - トピックを有効にし、パッケージの特定のバージョンをインストールする
例)$ sudo amazon-linux-extras install topic=version topic=version
基本的に MariaDB の方が MySQL よりも高い性能を誇る場面が多いと言われます。その為、MySQL と MariaDB のどちらを使用するか悩んだ場合には、MariaDB を選んでおいて問題は無いでしょう。
Amazon Linux 2 に MySQL をインストールする
Amazon Linux 2 で MariaDB ではなく、MySQL を使用したい、という方向けに簡単にインストール方法について記載しておきます。なお、MySQL は Extras※2 を利用したインストールはできないため注意が必要です。
まとめ
これまでデータベース管理システムとして主に使用されてきた MySQL ですが、今後は MariaDB が主流になっていくと考えられます。その理由としてはやはり MariaDB の方が高機能であり、MySQL との互換性も保持している点でしょう。実際に世界的なWebサービスである Google や Linux の主要なディストリビューション(RedHat Enterprise Linux、Ubuntu等)では MariaDB が採用されており、Amazon Linux 2 でもデフォルトでは MariaDB がインストールされています。
とは言え、MySQL 8.0、MariaDB 10.3 からは次第に別の方向性で進んでいく、という話もあり、いずれはどちらか一方の方が良いと決めつけることが困難になるでしょう。システム開発の際には、データベースの特徴をしっかりと認識した上でどれを利用するか検討していくことが大切です。
<注釈>
※1 … LAMP とは
LAMP とは、動的なWebサイトやWebサービスなどの構築に適した、人気の高いオープンソースソフトウェアの組み合わせの一つです。具体的には、OSの「Linux」、Webサーバーの「Apache」、データベースの「MySQL(もしくは「MariaDB」)」、プログラミング言語および実行環境の「PHP(もしくは「Perl」「Python」のいずれか)」の組み合わせを指しており、それぞれの頭文字を繋ぎ合わせて LAMP と呼称します。いずれもオープンソースソフトウェアであるため、低コストで構築でき、かつ、高いカスタマイズ性を持つことが特徴です。
※2 … Extras とは
Extras は、最新のアプリケーションソフトウェア更新をインストールできるようにする Amazon Linux 2 のメカニズムを指します。ソフトウェア更新はトピックと呼ばれ、各トピックには Amazon Linux 2 にソフトウェアをインストールし機能させるために必要となる依存関係がすべて含まれています。
具体的な使用方法としては、”amazon-linux-extras”というコマンドを使用します。このコマンドにより、例えば以下のことが実施できます。