2021/03/15

AWS上で手軽にデータベースを構築する方法|Amazon RDS + MySQLの組み合わせ

 
  

AWS上で手軽にデータベースを構築する方法

最近ではアプリケーションの開発にAWSなどのクラウドサービスを利用することが当たり前になってきましたが、避けて通れないのがデータベースの運用をどうするかということです。 個人がローカル環境でミニマムサービスを開発するだけなら、データベースの運用も難しくないかもしれませんが、クラウド開発となるとセキュリティ面の不安や管理の煩雑さが問題となってきます。 この記事では、AWS上で手軽にデータベースを構築する方法として、AWSが提供する「Amazon RDS」を利用する方法を、DBMS(データベース管理システム)の一つであるMySQLを例にとってご紹介します。

AWSでMySQLを使うには?

AWSでMySQLなどのデータベースを利用するには、EC2インスタンス(AWSが提供する仮想サーバー)の中に直接データベースを作成する方法と、「Amazon RDS」を利用する方法があります。この記事では、後者の「Amazon RDS」を利用する方法について説明していきます。

Amazon RDSとは?

Amazon RDS(Relational Database Service)とは、AWSが提供するマネージド型リレーショナルデータベースサービスです。 EC2インスタンスにデータベースを作成すると、インストールから管理、メンテナンスなどを全て自分で行う必要がありますが、Amazon RDSを利用するとこれらのデータベースのマネジメントをAWSが代行してくれます。 具体的を挙げると、データベースは既にセットアップされた状態で提供され、バックアップやバージョンアップも自動で行ってくれるため、ユーザーはアプリケーションの開発のみに集中できるようになります。

Amazon RDSで使えるデータベース

Amazon RDSでは、MySQL、PostgreSQL、MariaDB、SQL Server、OracleDB、Amazon Auroraの計6つのRDBMSの利用が可能です。 この内、MySQL、PostgreSQL、MariaDBはオープンソース系、SQL Server、OracleDBは商用系であり、Amazon AuroraはAWSが独自に開発・提供しているクラウド向けRDBMSです。

MySQLとは?

ここで改めて、今回使用するMySQLについて簡単にご説明します。 MySQLは、データベース初心者から大企業まで幅広く支持されており、世界中で非常に高い人気とシェアを誇っているオープンソース系のRDBMSです。日本国内においても、ソニーや富士通グループ、スクウェア・エニックスなどで導入事例があります。 人気の理由としては、オープンソース系なので導入へのハードルが低いこと、対応するOSが多く汎用性が高いこと、TIPSやトラブルシューティングの情報が充実していることなどが挙げられます。

事前準備

具体的にAWSでMySQLを利用するにはAmazon RDS for MySQLというサービスを使うのですが、その前にいくつか必要な準備作業がありますので、順を追って説明していきます。

DB用のセキュリティグループの作成

まずは、Amazon RDS for MySQLインスタンス用のセキュリティグループを作成します。これは、既存のEC2インスタンス以外からのDBへのアクセスを制御するためです。 AWSのサービスから、[EC2]⇒[セキュリティグループ]⇒[セキュリティグループの作成]をクリックします。 [基本情報]セクションで、任意のセキュリティグループ名、説明、EC2インスタンスがあるVPC、[インバウンドルール]セクションで、タイプに「MYSQL/Aurora」、ソースにEC2のセキュリティグループを設定します。

DB用のサブネットグループの作成

次に、サブネットグループを作成します。これは、作成するAmazon RDS for MySQLインスタンスを、どのネットワークで稼動させるか指定するために行います。因みにサブネットとは各EC2インスタンスが属する小規模なネットワークのことで、これの集合体がサブネットグループです。 AWSのサービスから、[RDS]を選択し[サブネットグループ]⇒[DBサブネットグループを作成]の順にクリックします。 [サブネットグループの詳細]セクションで任意の名前、説明、EC2インスタンスがあるVPC、[サブネットを追加]セクションでEC2インスタンスがあるサブネットとそのサブネットを含むアベイラビリティーゾーンを選択してサブネットグループを作成します。

DBインスタンスの作成

いよいよDBインスタンスの作成です。設定できる項目は非常に多いのですが、特に注意すべきポイントに絞って説明していきます。 AWSのサービスから[RDS]を選択し、[データベースの作成]をクリックします。[エンジンのタイプ]セクションに「MySQL」を指定して、セクションの下部にある「RDS無料利用枠の対象オプションのみを有効化」にチェックを入れます。

データベースの設定

続いて、データベースの設定を行います。 [設定]セクションで、DBインスタンス識別子、ユーザー名、パスワードを任意に設定していきますが、これらはEC2からアクセスする際に必要になりますので、忘れないようにメモなどを取っておきましょう。 [詳細設定の設定]セクションで、VPCはEC2インスタンスと同じもの、サブネットグループは事前準備で作成したものを指定します。 次に[データベースのオプション]セクションで、データベースの名前を決めます。ポートはMySQLのポートである「3306」がデフォルト設定されているので、そのままで構いません。 最後に[データベースの作成]をクリックすると、DBインスタンスの作成が行われます。なお、この作成作業は完了まで数分程度かかります。ステータスが「利用可能」になったら[DB インスタンスの表示]をクリックして[エンドポイント]の値を控えておきましょう。

MySQLのインストール

それでは早速RDSに接続してみましょう。まずは接続元となるECインスタンスにMySQLをインストールします。EC2のコンソール上で以下のコマンドを入力してください。 sudo yum install mysql インストールが完了すると、コンソール上に「complete!」と表示されます。

RDSへの接続

インストールしたMySQLクライアントを使って、RDSに接続します。ここで、設定段階で控えておくようお伝えしたユーザー名、パスワード、エンドポイントが必要となってきます。コンソール上で以下のコマンドを入力してください。 mysql -h [RDSのエンドポイント] -P 3306 -u [マスターユーザー名] -p するとパスワードの入力を求められますので、RDSデータベースを作成した際に決めたパスワードを入力しましょう。パスワードが認証されコンソールに「mysql>」という文字列が表示されればMySQLへのログインは成功です。 MySQLのチュートリアルなどを参考にして、色々なコマンドを試してみましょう。

まとめ

今回は、AWSでデータベースを構築し接続する方法として、Amazon RDSを利用する手順をMySQLを例に取りながらご紹介しました。 EC2インスタンス内に直接データベースを構築する方法に比べて、一度作成してしまえば、煩雑な管理・運用に気を取られることが無く、アプリケーション開発に専念できるというのがメリットでした。 また、今回取り上げたMySQLはドキュメント類が充実しており、これから開発をしてみようという方にもお勧めのRDBMSです。AWSでのデータベース構築に迷われた際は、このAmazon RDS + MySQLの組み合わせを、是非お試しください。]]>

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

この記事の監修者・著者

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

おすすめの動画

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

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

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