AWS で MySQL を利用する場合、主に2つの選択肢が存在します。
マネージドサービスの「RDS」か、自前で管理する「EC2」の2択です。
- Amazon RDS を利用する
- EC2 に MySQL をインストールする
基本的には RDS を推奨しますが、コストを最小化したい場合は EC2 も選択肢に入ります。
運用負荷が楽な「RDS」、コストが低い「EC2 + MySQL」
RDS と EC2 + MySQL の構成について表にまとめました。
メリット・デメリットは、運用負荷とコストのどちらを重視するかで決まります。
構成 | メリット | デメリット |
---|---|---|
Amazon RDS | データベースの運用負荷が低い | コストが高い |
EC2 + MySQL | コストが低い | データベースの運用負荷が高い |
個人利用などで可用性を求めない場合は、EC2 + MySQL もアリです。
構成 | 向いているパターン | 不向きなパターン |
---|---|---|
Amazon RDS | 規模の増減が見込まれる アプリ側の開発に集中したい |
データベース構築・運用の学習用途 |
EC2 + MySQL | 小規模なシステム DB 構築の学習がしたい |
高い可用性が求められるシステム |
RDS は運用の手間が掛からずサイズの変更にも強い
Amazon RDS を利用する大きなメリットは、運用負荷が低いことです。
データベースだけを借りられるため、OS のメンテナンスやディスク残量の心配が不要です。
バックアップやパッチの適用も AWS が行ってくれます。
クラスタも簡単に作成でき、インスタンスの追加や削除が画面上から行えます。
拡張性も高く、データベースを止めずにサーバーサイズの変更も可能です。
ただし、小規模システムの場合は、コスト面でデメリットになることがあります。
RDS 専用にインスタンスを動かし続ける必要があり、月額2,000円前後が最低ラインです。
必要に応じて、リザーブドインスタンスなどを活用しましょう。
⇒ AWS の EC2 インスタンス料金を節約する3つのワザ
EC2 + MySQL は安価だが自前運用が必須
EC2 インスタンスを用意し、MySQL をインストールする手もあります。
インスタンスサイズを引き上げた場合は、MySQL のパラメータも修正が必要です。
RDS の場合とは異なり、MySQL の面倒を見るという運用が発生します。
EC2 に MySQL を入れるメリットは、コストを抑えられることです。
Web サーバーと同じインスタンスを活用できれば、DB で追加費用が掛かりません。
ただし、サーバーを同居させることはリスクの増大の一因となります。
インスタンスに障害が発生した場合は、Web にも DB にも影響が出てしまいます。
リスク面や運用の手間を踏まえてでもコストを下げたい場合は、有力な選択肢です。
まとめ
AWS における「RDS」と「EC2 + MySQL」の構成を比較しました。
マネージドサービスのメリットが大きいため、殆どのシーンにおいて RDS が推奨です。
EC2 + MySQL で利用する場合は、運用やリスクの検討を怠らないようにしましょう。
【関連記事】
⇒ AWS 用語の解説(データベース編)
⇒ Aurora エンドポイントの使い分け
⇒ MySQL 8 のインストール手順 (CentOS)
⇒ MySQL 8 のインストール手順 (Ubuntu)
⇒ MySQL のクエリ結果を整形・縦表示する
⇒ MySQL データベースが遅いときの調査方法