はじめに
AWSのステキな無料利用枠を使って、実際にAWSを触ってみるシリーズ!
前回までにEC2 インスタンスを作成したり、Apacheをインストールしたり、HTMLファイルをアップロードして公開したりしました。
これらが未作成な場合は、こちらの記事などをご参考にアカウント作成から始めてください。
これまでの作業は、公開用サブネット(Public subnet)を中心にインターネットからアクセスされるサービスを構築していました。
今回は、基本的にはインターネットから直接的にアクセスされないデータベースを構築します。
今回、データベースはRDSというサービスで構築します。
これはRelational Database Serviceの略で、現在 広く使われているデータベースの一種である「関係データベース」を提供します。
それでは、今回も実際の作成/設定画面をお見せしながら進めていきます。
構築しているAWSの全体像

RDSでデータベースを作成する
(事前準備)作成済みのVPCをマルチAZ化する
RDSに設定するVPCは複数のAZ(アベイラビリティーゾーン)にサブネットが作成されている必要があります。
そのため、VPCの設定を確認し、複数のAZにサブネットが作成されていることを確認しましょう!
以下の例では「ap-northeast-1a」に加え、「ap-northeast-1c」のサブネットも設定しています。

VPCの設定方法は、以下の記事を参考にしてください。
RDSでデータベースを作成する
検索バーに「RDS」と入力し、検索結果の中にある[RDS]をクリックします。

RDS設定画面が表示されたら、サイドメニューから[データベース]をクリックし、[データベースの作成]ボタンをクリックします。

データベースの作成のための設定を行います。
デフォルト設定から変更するところ、設定内容をチェックしておきたいところを中心に説明します。
まず、[エンジンのオプション] > [エンジンのタイプ] では[MySQL]を選択します。
MySQLはフリーで利用できる有名な「関係データベースの一種」です。
こちらは、AWSの無料利用枠が適用されます。

[テンプレート]では、[無料利用枠]を選択します。
その後、[設定]から[DBインスタンス識別子]、[認証情報の設定] > [マスターユーザー名] & [マスターパスワード]を設定します。
※[マスターユーザー名]はデフォルト値である「admin」から変更することをオススメします

[ストレージ] > [ストレージの自動スケーリング]の「チェックはなし」にしておきましょう。
もし、不注意で大量データを登録してしまった場合、料金が発生する恐れがあります。

[接続] > [Virtual Private Cloud (VPC)]は自分で作成済みのVPCを設定します。
続けて、[接続] > [VPCセキュリティーグループ]は(未作成なので)「新規作成」を選択します。
さらに、[新しいVPCセキュリティグループ名]と[アベイラビリティーゾーン]を設定します。

[データベース認証]は特に変更しません。

[追加設定]も特に変更しなくても大丈夫です。
操作ミスによる誤削除が心配ならば、[削除保護]にチェックをつけると良いでしょう。


最後に、[概算月間コスト]を確認し、問題がなければ[データベースの作成]ボタンをクリックします。

RDS設定画面に戻り、データベースの作成が始まります。

しばらく待って、ステータスが「利用可能」になれば成功です!

セキュリティーグループの設定
データベース「db-srv」が作成できましたが、このままではEC2からアクセスできません。
EC2がデータベース「db-srv」にアクセスできるように、「セキュリティーグループの設定」を行います。
まず、作成したデータベースの[DB識別子](db-srv)をクリックします。

「db-srv」の設定が表示されるので、[接続とセキュリティ] > [セキュリティ] > [VPCセキュリティグループ]のリンクをクリックします。

VPC設定画面が表示されるので、データベース設定で作成したセキュリティグループ「db-secgp」を選択します。
画面下部に「db-secgp」の詳細が表示されるので、[インバウンドルール]を選択します。
そして、[インバウンドのルールを編集]ボタンをクリックします。

[ルールの追加]ボタンをクリックして入力欄を増やし、EC2が属するセキュリティグループ「web-secgp」からのアクセスを追記します。

設定が完了したら[ルールを保存]ボタンをクリックします。

VPC設定画面の戻るので、「db-secgp」の[インバウンドルール]に設定した内容が追記されてればOKです。

EC2からRDSへアクセス
EC2からMySQL(RDSで作成したデータベース)へアクセスするためには、専用パッケージをインストールする必要があります。
作業を始める前に、お好みで更新パッケージのアップデートを行なってください。
※この作業を行わなくても大きな問題はありません。
sudo yum update -y


続いて、MySQLへ接続するためのパッケージをインストールします。
sudo yum -y install mysql

インストールが完了したら、MySQLのパッケージを使ってデータベースにアクセスします。
次のコマンドを実行するとパスワードの入力を求められます。
データベース作成時に設定したパスワードを入力して、[Enter]を押します。
# mysql -h [エンドポイント] -u [ユーザ名] -p
mysql -h db-srv.cbhln11jvbb2.ap-northeast-1.rds.amazonaws.com -u admin -p

[エンドポイント]は、db-srvの詳細設定画面で確認できます。

データベースでの作業を終了するときは、次のコマンドを実行してアクセスを切断します。
exit

最後に
今回は外側だけの設定になってしまいましたが、データベースを作成することができました。
さらに、EC2からデータベースにアクセスできるようになっています。
ここから、データベースの仕組みやデータベースを操作するSQLを学ぶことでプログラミングの幅も広がります。
焦らず、着実にレベルアップしていきましょう!!
コメント