はじめに
AWSのRDSにMySQLのデータベースを作ります。こちらで作成したEC2から接続できるようにします。
全体概要
下記のツリーのようにオブジェクトを作っていきます。「AAA」は任意の名前に読み替えしてください。
- VPC AAAvpc01 10.0.0.0/16 こちらで作ったものを使います。
- EC2 RDSに適用するためのセキュリティグループを作ります。
- セキュリティグループ AAASGRDS01
- MYSQL/Aurora 3306/TCP from 0.0.0.0/0
- セキュリティグループ AAASGRDS01
- RDS
- DBサブネットグループ AAADBSUB01
- MySQLデータベース aaamysql01
MySQLデータベースの作成
先にセキュリティグループとDBサブネットを作ってからRDSを作成します。
セキュリティグループの作成
-
EC2のセキュリティグループ新規作成画面を開きます。セキュリティグループの名前と説明を入れてVPCはRDSの置き場所を選びます。
- セキュリティグループのインバウンドルールを追加します。タイプはMYSQL/Auroraでソースを0.0.0.0/0とします。アウトバウンドはそのままでセキュリティグループを作成します。
- セキュリティグループが完成しました。
DBサブネットグループの作成
-
RDSのサブネットグループメニューからDBサブネットグループの作成画面を開きます。名前と説明を入力します。
- VPCに対象のVPCを入力して、このVPCに関連するすべてのサブネットを追加します。作成ボタンを押します。
- DBサブネットグループが完成しました。
データベースを作成する
-
RDBのデータベース作成画面を開きます。エンジンのタイプでMySQLを選択します。
- テンプレートで無料利用枠を選びます。DBインスタンス識別子でデータベース名を入力します。
- 認証情報としてマスターユーザー名とパスワードを入力します。
- VPCは対象のVPC、先ほど作ったDBサブネットグループを選択します。パブリックアクセスはなしにしました。
- セキュリティグループは既存で先ほど作成したもの、アベイラビリティゾーンはどれか一つを選択してデータベースの作成を行います。
- データベースの作成が正常に始まりました。これは10分ほど時間がかかります。
MySQLクライアントの作成
$ sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
$ yum info mysql
$ sudo yum-config-manager --disable mysql57-community
$ sudo yum-config-manager --enable mysql80-community
$ sudo yum install -y mysql-community-client
$ mysql --version
接続テスト
下記のように接続テストを行います。HOSTNAMEは作成したデータベースの接続とセキュリティの設定にあるエンドポイント(例:aaamysql01.c3xhaaxcxwwl.ap-northeast-1.rds.amazonaws.com)を入力します。
$ mysql -h HOSTNAME -P 3306 -u admin -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.20 Source distribution
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
EC2から接続ができました!
おわりに
- データベースのセキュリティグループでインバウンドのソースを無制限にしていますが、RDSのパブリックアクセスを「なし」にしたので、VPC内からのみ接続可能になります。パブリックアクセスをありにするとインターネットからデータベース接続が可能になると思います。
- データベースのテンプレートとして無料枠を利用して作成しましたが、本番環境を選ぶとマルチAZにより可用性を高めることができると思います。