#4: インフラについて簡単に理解する [RDS]DBサーバーを構築
- RDSについて
- プライベートサブネットの作成
- RDSを設置
- WebサーバーからRDSに接続する
RDS
今回構築するもの
- プライベートサブネットにDBを置くことで外部からのインターネットによる接続をできないようにして安全性を担保する。 - RDSは複数のアベイラビリティーゾーンに用意しておくことを推奨しているため、別のアベイラビリティーゾーンを用意しておく必要がある。そのため、2つ以上のプライベートサブネットを2つ以上の別のアべイラビリティゾーンにおく必要がある。
1. RDSについて
マルチAZというRDSの可用性(DBが死んでも復活させやすいこと)を保つシステムがあるが、このシステムを使うのに複数のアベイラビリティゾーンに複数のプライベートサブネットが必要。マルチAZについてはググったら色々出てくるので割愛。
例えばリンク: AWSでマルチAZ構成にする?しない?
2. プライベートサブネットの作成
前回同様
3.RDSの作成
DB用のセキュリティグループを作成
今回はMySQLを使ってDBを作るので、プライベートサブネットにはMySQLのポートのみ接続できる状態に設定する。
- セキュリティグループはMySWL/Auroraというものを選択すると3306ポートが開く。
- ソースにはどこから接続するかを選ぶのだが、個別に繋ぎたいサーバーのIPを選択しても良いが、複数台サーバがある時に全てを設定する必要があるため煩雑。それを避けるためソースにセキュリティグループを選択するとそのセキュリティグループ内にあるもの全てに対して接続を許可することができる。
作成後
RDS DBサブネットグループの作成
rdsインスタンスを起動する時にDBサブネットを選択するので、必要。 ※これがないと、RDSをサブネットに紐付けられないので必ず作成
RDS > サブネットグループから作成
前回作成した二つの別々のアベイラビリティゾーンにあるサブネットを追加してサブネットを作成する。 また、VPCも前回作成したものを選択。
DBパラメータグループ設定
オプショングループの作成
何かDBにオプションを設定したい時に使う。
RDSの作成
RDS > データベースからDBを作成する
4. WEBサーバーからRDSに接続する
MySQLをwebサーバーにインストール
sshでサーバーに接続
インストール
$ sudo yum -y install mysql
データベース のエンドポイント
RDSからエンドポイントを確認する。
$ mysql -h tokyo-ecole-staging01.cxrffzyjnal4.ap-northeast-1.rds.amazonaws.com -u root -p
接続できると、ターミナルに以下のように表示される。
$ mysql -h aws-and-infra-web.cxrffzyjnal4.ap-northeast-1.rds.amazonaws.com -u root -p -P 3306 Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 1097 Server version: 8.0.15 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)]>
この設定を.envなどのDB設定のファイルに接続することで、railsなどからDBに接続可能。