【AWS】RDS(MySQL)の構築(はじめてのAWS構築 6) - とあるインフラエンジニアのテクニカルノート

今回は、プライベートサブネット内にRDSを構築したいと思います。

RDSは、MySQLを選び、下の構成図のプライベートサブネット内にRDSをたて、パブリックサブネットのPublicServerからアクセスできるようにする構成とします。

なお、RDSは2つのアベイラビリティゾーンにサブネットを作成し、DBサブネットとして設定する必要があります。本構成のプライベートサブネット(10.0.11.0/24)の構築は本サイトでは明示的に紹介していないため、こちらを参照に作成ください。

 
RDS構築設計図


 では、構築していきましょう。

1.セキュリティグループの作成

では、まずDB用のセキュリティグループを作成し、パブリックサブネットのPubclicServerのEC2インスタンスからのみアクセスできるような設定にしていきたいと思います。
 
AWSマネージドコンソールから、EC2の管理画面に行き、左メニューから「セキュリティグループ」をクリック。
「セキュリティグループの作成」をクリックします。
セキュリティグループの作成 1



 
「セキュリティグループを作成」画面の「基本的な詳細」(?)で、下記項目を入力・選択します。
 
  • セキュリティグループ名:tancox-rds-sg
  •  説明:何かを記入(書かないとエラーとなる)
  • VPC:「tancox」を選択

下にスクロールしていきます。
 
セキュリティグループの作成 2


「インバウンドルール」で「ルールを追加」ボタンをクリックします。
セキュリティグループの作成 3



下記のように入力していきます。
 
  • タイプ:「MYSQL/Aurora」を選択します。
  • ソース:「カスタム」を選択します。
  • ソースの値入力欄:PublicServerのセキュリティグループを選択します。
 
「アウトバンドルール」はデフォルトのままにします。
そのまま画面一番下までスクロールします。
 
セキュリティグループの作成 4


 
「セキュリティグループを作成」ボタンをクリックします。
セキュリティグループの作成 5



下図のように「正常に作成されました。」と表示されればOKです。

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


 

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

次にDBを格納するサブネットグループを作成します。
AWSマネージドコンソールから、RDSの管理画面に行き、左メニューから「DBサブネットグループ」をクリック。
「DBサブネットグループの作成」をクリックします。

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



「DBサブネットグループを作成」画面の「サブネットグループの詳細」で、下記項目を入力・選択します。
 
  • 名前:tancox DB Subnet
  • 説明:何かを記入(書かないとエラーとなる)
  • VPC:「tancox」を選択

下にスクロールしていきます。
 
DBサブネットグループの作成 2


「サブネットを追加」で、下記のように入力していきます。
 
  • アベイラビリティゾーン:「ap-northeast-1a」、「ap-northeast-1c」を選択します。
  • サブネット:「10.0.1.0/24」、「10.0.11.0/24」を選択します。
 
DBサブネットグループの作成 3


 
一番下にスクロールし、「作成」ボタンをクリックします。

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



下図のように「正常に作成されました。」と表示されればOKです。

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



3.RDSインスタンスの作成

次にRDSインスタンスを作成します。
AWSマネージドコンソールから、RDSの管理画面に行き、「データベースの作成」をクリックします。

 
RDSインスタンスの作成 1



「データベースの作成」画面で、下記項目を入力・選択します。
 
  • データベース作成方法を選択:標準作成
  • エンジンのオプション
    • エンジンのタイプ:MySQL
    • エディション:MySQL Community
    • バージョン:最新のものを選択(今回はMySQL 8.0.20) 
    • テンプレート:適切なものを選択(今回は無料利用枠を選択)
  • 設定
    • DBインスタンス識別子:tancox-db 
    • マスターユーザー名:admin(デフォルトのまま)
    • マスターパスワード/パスワードを確認:(任意のもの)
  • DBインスタンスクラス:任意のものを選択
  • ストレージ
    • ストレージタイプ:汎用(SSD)(デフォルトのまま)
    • ストレージ割り当て:20(デフォルトのまま)
    • ストレージの自動スケーリング:(デフォルトのまま)
  •  可用性と耐久性
    • マルチAZ配置:任意のものを選択(商用であれば「スタンバイインスタンスを作成する」 を選択した方がよいです)
  •  接続
    • VPC:tancoxのVPCを選択
    • サブネットグループ:tancox db subnet(デフォルトのまま)
    •  パブリックアクセス可能:なし
    • 既存のVPCセキュリティグループ:「default」に先ほど作成した「tancox-rds-sg」を追加
    • アベイラビリティゾーン:ap-northeast-1aを選択
    • データベースポート:3306(デフォルトのまま)
  •  データベース認証:パスワード認証(デフォルトのまま)
  •  追加設定:最初からバックアップや拡張モニタリング等の設定が可能であれば設定ください
RDSインスタンスの作成 2




画面一番下にある「データベースの作成」ボタンをクリックします。
下図のように画面が遷移され、データベース作成中の案内が表示されます。作成完了までは数分かかります。

RDSインスタンスの作成 3


  
画面更新ボタンをクリックし、作成したDBの情報が下図のように「正常に作成されました」、「利用可能」(赤枠部分)になったことが確認できれば、作成完了です。 

RDSインスタンスの作成 4



これで構築作業は完了です。
 

5.確認

RDSにmysqlコマンドで情報が閲覧できるかを確認します。
※なお、Amazon Linux2をデフォルトでインストールした場合には、mysqlが特にインストールされているわけではないため、mysqlコマンドもありません。mysqlコマンドをインストールする手順は、こちらで紹介します。
 
 まず、mysqlコマンドでRDSを指定するために、エンドポイント情報を取得しておきます。
 先ほどのRDS画面から、対象のRDSのリンク先をクリックします。
 
 
RDSインスタンスの作成の確認1

 
遷移した画面でエンドポイント情報をコピーしておきます。
 
RDSインスタンスの作成の確認2


 
RDSへ接続を許可しているパブリックゾーンのPublicServerのインスタンスへ sshでログインします。
ログイン後、下記のコマンドで接続や内容が確認できるか、確認します。
 $ mysql -u admin -p -h tancox-db.xxx.ap-northeast-1.rds.amazonaws.com
Enter password: (設定したパスワードを入力)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> exit
Bye

mysqlコマンドでログインができ、DB内の情報を「show database;」コマンドで閲覧できていることが確認できました。
 
これでRDSの構築は完了です。
 
(参考・引用元)https://aws.amazon.com/jp/


コメント