【AWS】RDSの概要と設定確認(MySQL 8.0)

Amazon RDSRelational Database Service)というサービスにより、簡単にデータベースサーバを構築することができます。

この記事では、RDSの概要とMySQLエンジンのAmazonRDSを構築し、MySQL8.0 へアクセスできるまでを確認します。

スポンサーリンク

RDSの概要

RDSフルマネージドなデータベースサービスで、冗長化やバックアップ・ソフトウェアアップデートなどの運用をAmazon側で実施してくれます。

2021年8月現在、下記6つのエンジンが利用可能です。(この記事ではMySQL 8.0を使用します)

RDSはフルマネージドであるがゆえ、逆に管理者がデータベースに関して、下記のとおり、設定できる項目が決められています

  • パラメータグループエンジン固有の設定を行う。
  • オプショングループRDS固有の設定を行う。
  • サブネットグループ:データベースを複数のアベイラビリティゾーンに配置する設定を行う
スポンサーリンク

RDS構築(検証環境)

プライベートサブネットの作成

データベースは通常、セキュリティの観点からインターネットから接続できないプライベートサブネットへ配置します。

RDSを配置する際に、冗長化の観点で、複数のアベイラビリティゾーンに存在する複数のサブネットを選択する必要があります。

そのため、下記のとおり、複数アベイラビリティゾーンap-northeast-1aap-northeast-1c)にそれぞれ、10.0.2.0/2410.0.22.0/24を作成します。

サブネットの作成については、下記記事を参考にしてください。

  >> 参考記事 :  【AWS】ネットワーク(リージョン、AZ、VPC、サブネット)設定確認

セキュリティグループの設定

今回作成するデータベースは、下記のとおり、パブリックサブネットに配置されたEC2からのみ接続を許可したいと思います。

パブリックサブネットに配置した仮想インスタンス(EC2)は、下記の記事で作成したものを使用します。

  >> 参考記事 :  【AWS】仮想インスタンス(EC2)追加の設定確認

この仮想インスタンスに適用されているセキュリティグループは、EC2-publicです。

では、データベースサーバに適用するセキュリティグループを作成します。セキュリティグループの作成は、下記の記事を参考にしてください。

>> 参考記事 : 【AWS】セキュリティグループの概要と設定確認

VPCの設定画面よりセキュリティグループを作成します。

セキュリティグループ名・説明は任意の名前(今回は、DB-Private-sgとします)とし、適用するVPC(今回はMyVPC)を選択します。

インバウンドルールでは、EC2インスタンスからRDSへのデータベース通信のみ許可します。

タイプはMYSQL/Auroraを選択し、ソースはカスタムよりEC2インスタンスが適用されているセキュリティグループであるEC2-publicを選択します。

アウトバウンドルールは、すべて許可とするため、何も設定しません。

下記のとおり、作成されたことを確認してください。

準備ができましたので、これからRDSの構築をはじめます。

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

RDSの設定画面へ移動します。検索で”RDS”と入力することで、設定画面のリンクが表示されます。

まず、サブネットグループを設定します。複数のアベイラビリティゾーンにデータベースを配置する設定となります。

メニューから”サブネットグループ”を選択し、”DBサブネットグループを作成”をクリックします。

サブネットグループの詳細”より、名前・説明は任意(今回は、db-subnet-gとします) とし、対象のVPC(今回はMyVPC)を選択します。

サブネットを追加”でアベイラビリティゾーンap-northeast-1aap-northeast-1c)を選択します。

サブネットを選択” からは、プライベートサブネットである10.0.2.0/2410.0.22.0/24を選択します。

選択後、下記のとおりとなることを確認します。

作成”をクリックすると、下記のとおり登録されます。

パラメータグループの設定

メニューより”パラメータグループ”を選択し、”パラメータグループを作成” をクリックします。

  • パラメータグループファミリー:様々なDBファミリーを選択できます。今回は、mysql8.0を選択します。
  • グループ名説明:任意の名前。今回は、mysql8-pgとします。

設定後、”作成“ をクリックすると、下記のとおり登録されます。

オプショングループの設定

メニューより”オプショングループ”を選択し、”グループを作成” をクリックします。

  • 名前・説明:任意。今回はmysql8-ogとします。
  • エンジン:様々なDBエンジンを選択できます。今回はmysqlを選択。
  • メジャーエンジンバージョン8.0を選択。

作成”をクリックすると、下記のとおり登録されます。

RDS作成

メニューより”データベース“を選択し、”データベースの作成“をクリックします。

データベース作成方法の選択

標準作成“ を選択します。

エンジンオプション“の”エンジンタイプ“は MySQL を選択します。

エディションの選択で、バージョンは今回8.0系の中から、一番新しい8.0.25を選択します。

テンプレート

今回は検証用途のため、”無料利用枠”を選択します。

設定

DBインスタンス識別子“で任意の名前(今回はtestdb-1とします)と接続時に使用するマスタユーザID(今回はadmin)とパスワードを設定します。

DBインスタンスクラス

検証用で無償利用枠のため、db.t2.micro を選択します。本番利用の場合は、一般的に標準クラスからクラスを選択します。

ストレージ

デフォルト設定のまま、次へいきます。

可用性と耐久性

今回、無料利用枠のため、選択できません。本番利用の際のマルチAZ(複数のアベイラビリティーゾーン)構成の設定となります。

スタンバイインスタンスを作成する” を選択すると、マルチAZ環境となります。

接続

対象となるVPC(今回はMyVPC)を選択します。

サブネットグループはすでに作成済みのdb-subnet-gを選択します。また、パブリックからのアクセスは許可しませんので、なし を選択します。

VPCセキュリティグループ

すでに設定済みのセキュリティグループ(DB-Private-sg)を適用します。アベイラビリティゾーンはap-northeast-1aを選択します。

データベース認証

デフォルトのまま、パスワード認証 とします。

追加設定

すでに設定済みのパラメータグループオプショングループを選択します。

その他、自動バックアップの取得など設定されています。デフォルトのままとします。

上記設定完了したら、”データベースの作成” をクリックします。下記のとおり、データベースの作成がはじまります。

しばらくすると、ステータスが利用可能となります。

スポンサーリンク

EC2からRDSへアクセス

EC2(Amazon Linux)からRDSへ接続をします。まず、EC2にSSHでログインし、MySQLをインストールします。

mac:Desktop hirotano $ ssh -i "hirotano-key.pem" ec2-user@52.194.227.105
Last login: Wed Aug 18 10:03:33 2021 from softbank060072050193.bbtec.net


       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|


4 package(s) needed for security, out of 16 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-0-1-100 ~]$
[ec2-user@ip-10-0-1-100 ~]$ sudo yum -y install mysql
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                    | 3.7 kB  00:00:00
・
・ 出力省略
.
完了しました!
[ec2-user@ip-10-0-1-100 ~]$

RDSの接続先ですが、RDS設定画面のデータベース >>  testdb-1 より、接続とセキュリティ タブからエンドポイントの値を確認します。

エンドポイント情報をコピーして、下記のコマンドを実行することで、MYSQLへアクセスできます。-h でエンドポイントを指定します。

[ec2-user@ip-10-0-1-100 ~]$ mysql -h testdb-1.cswcm2gapwe0.ap-northeast-1.rds.amazonaws.com -u admin -p
Enter password: ★パスワードを入力
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.25 Source distribution


Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


MySQL [(none)]>

これで、DBへ接続ができました。

コメント