2022/03/1

AWS EC2環境にMySQLをインストールする方法を紹介|EC2とRDSの比較

 
  

AWSでMySQLデータベースを使用する方法

MySQLはWordPressなどのCMS用のデータベースとしてはもちろん、本格的なECサイトでも広く使用されています。AWSでMySQLデータベースを利用するにあたっては大きく分けると2つのパターンがあります。 1つは、EC2上にMySQLをインストールして自前でデータベースを構築する方法です。もう1つはAWSのデータベース専用サービスであるRDSを使用する方法です。各々メリットとデメリットがあるため、用途に応じた選択が必要となります。

EC2とRDSの比較

商用サイト向けのデータベースを構築するにあたって、通常はRDSを選択したほうが良いでしょう。マネージドサービスであるAWS RDSは格段に安定性が高く、少ない労力でパフォーマンスを引き出す事ができます。 研究・開発の段階でコストを抑えたい場合や、RDSではサポートされていないmysqlの機能が必要になる場合についてはEC2を選択する事も視野に入れても良いでしょう。

EC2とMySQLを使用するメリット

まずEC2とMySQLを使用する主なメリット2つを紹介します。 EC2とMySQLの導入を考えている方は是非ご覧ください。

コストが低くシンプル

通常のEC2インスタンス起動なので、用途を問わず同じ費用感となります。AWSのEC2でウェブサーバーを動作させているなら同一サーバーにMySQLをインストールすれば追加の費用は特に発生しません。 専用サーバーを用意する場合も、通常のEC2インスタンスと同じくスペックに応じた時間料金とストレージの料金を考慮すればよいため、EC2を使い慣れている方であれば費用感もイメージしやすいものとなります。

MYSQLが提供するすべての機能を使える

商用サイト向けのデータベースを構築するにあたって、通常はRDSを選択したほうが良いでしょう。マネージドサービスであるAWSRDSは格段に安定性が高く、少ない労力でパフォーマンスを引き出す事ができます。 研究・開発の段階でコストを抑えたい場合や、RDSではサポートされていないMySQLの機能が必要になる場合についてはEC2を選択する事も視野に入れても良いでしょう。

EC2とMySQLを使用するデメリット

ここまではメリットを説明しましたが、ここではEC2とMySQLを使用する主なデメリット2つを紹介します。 EC2とMySQLの導入を考えている方は是非ご覧ください。

自前運用のため運用負荷が高い

すべての事項について自前で運用管理する必要があり運用負荷が高くなります。 OSやデータベースのセキュリティパッチ適用、CPU負荷やディスク容量といったリソース監視、ネットワーク設定やバックアップといった内容をすべて自前で対応する必要があります。 通常はデータベースに障害が発生するということはサイト障害とほぼイコールになりますので、緊急時の運用体制も確立しておく必要があります。

RDSでMySQLを使用するメリット

RDSはマネージドサービスのため、保守管理作業のかなりの部分が不要になります。 セキュリティパッチの適用は自動で適用され、モニタリングはCloudWatchで対応できます。MultiAZ配置にしておけばAWS本体の障害でない限りはmysqlの停止も発生しません。ディスク拡張やスナップショット作成なら無停止で行う事もできます。

RDSでMySQLを使用するデメリット

ここからはRDSでMySQLを使用する際のデメリット2つを紹介します。

コストが高い

RDSを使用する場合、コスト自体はEC2と比較して高くなる傾向があります。 専用インスタンスのためウェブサーバーと同居はできません。また本番サービスで無停止が要件となる場合はAWSのリージョン上でMultiAZ配置が必須となり、インスタンス2つ分の料金が発生します。

機能面で制限がある

OSにログインできなかったり、設定可能パラメーターに制限があります。OSへのログインができないためOSコマンドを実行したりファイルの直接操作といった操作はできません。 自前にインストールしたMySQLであればmy.cnfに記述することで各種パラメーターを自由に設定できますが、RDSでは変更不可となる項目もあります。 また、レプリカの作成方法に制限があるなど、MySQLが提供する機能をすべて使えるというわけではありませんのでご注意ください。

MySQL以外の選択肢

MySQLのためにRDSを使い始めるのであれば、AmazonAuroraへの移行も選択肢に入れてみましょう。AmazonAuroraはRDS専用のエンジンとなりパフォーマンスを発揮しやすく設計されています。 基本的にはMySQL互換となるため、既存のMySQLアプリケーションからの移行も容易となっています。RDSではMySQLの他にPostgreSQLやOracle、SQLServerといった選択肢もあります。

AWS EC2環境にMySQLをインストールする

ここでは、AWS EC2で稼働するAmazonLinuxにMySQLをインストールする事例を紹介します。 あくまで基本的なインストール手順となり、セキュリティやパフォーマンスに関する設定は省略されている点に注意してください。

前提条件

AmazonLinuxが正常動作するEC2インスタンスが起動している事が前提となります。 MySQLのインストールや設定はOSコマンドによる操作となるため、ターミナル上からSSH接続が可能な状態になっている必要があります。

MySQLパッケージをインストール

yumコマンドでMySQLパッケージをインストールします。MariaDBがインストールされている場合はsudo yum remove mariadb-libsとして事前にアンインストールしましょう。バージョン等は適宜読み替えてください。 sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpmとして公式のリポジトリを追加します。その後、sudo yum install mysql-community-serverとしてMySQL本体をインストールします。

接続と初期設定

インストールしたMySQLに接続し初期設定をします。初期パスワードは/var/log/mysqld.logに記載されています。 ログファイルの表示にはスーパーユーザー権限が必要となるためsudo suなどを使用して内容をチェックしてください。 mysql -u root -pを入力し、Enter password:が表示されたら上記で取得した初期パスワードを入力します。ログイン後はSET PASSWORDコマンドでMySQLパスワードを変更する事を忘れないでください。 設定ファイルは通常/etc/my.cnfとなります。MySQLのマニュアルを参照し必要な項目を設定してください。一通り設定が済んだ後は、アプリケーションから正常に接続できるかのチェックも行ってください。

EC2とMySQLで留意する点

EC2とMySQLで留意する点が2つあります。 ・データベースは専用サーバーにする ・データベースの運用には細心の注意を では詳しく説明していきます。

データベースは専用サーバーにする

MySQLを使用したウェブアプリケーションの入門書では、Apacheなどのウェブサーバーとデータベースを同一のサーバーにインストールしている事例が多々あります。 これはあくまで学習やテストといった限定的な用途において、環境構築の簡略化という観点から採用されている方法です。そのままではセキュリティ面の問題が出たりパフォーマンス面での拡張性が乏しくなってしまいます。 本番サービス環境ではデータベースサーバーは専用サーバーで構築するようにしましょう。

データベースの運用には細心の注意を

データベースサーバーはわずかな設定の漏れや誤りが重大なデータ漏洩事故に繋がります。ECサイトのデータベースには個人情報やカード番号といった重要な情報が記録されるケースもあります。細心の注意をはらって運用しましょう。 前項のように専用サーバーとして構築し、AWSセキュリティグループを活用して外部からデータベースへの接続を制限しましょう。運用面では定期的にログを検査する、監視ツールで接続状況をチェックする等により不穏な挙動が発生していないか確認するようにしましょう。

まとめ

今回はAWSでMySQLを使用するにあたり、EC2とRDSを比較しました。 EC2へmMySQLをインストールする手順も紹介しましたが、上記に挙げた様々な理由から通常はRDSを使用するようにしましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】