11
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

Organization

[AWS]DBサーバーの構築方法

2020年2月1日現在の内容です。

構築するDB
スクリーンショット 2020-02-01 17.42.23.png

用語説明

RDS(Relational Database Service)

AWSクラウド上のフルマネージドリレーショナルデータベースのサービス

  • 構築・運用の手間を軽減できる
  • AWSエンジニアがデータベース設計のベストプラクティスを適用している

     ↓

コア機能の開発に注力できる

オンプレミス On EC2 RDS
アプリ最適化 アプリ最適化 アプリ最適化
スケーリング スケーリング スケーリング
バックアップ バックアップ バックアップ
アップデート アップデート アップデート
OSインストール OSインストール OSインストール
物理サーバー設置 物理サーバー設置 物理サーバー設置
  • 利用可能エンジン
    • MySQL
    • PostgreSQL
    • Oracle
    • Microsoft SQL Server
    • Amazon Aurora
    • MariaDB
  • 各種設定グループ
    • DBパラメータグループ:DB設定値を制御
    • DBオプショングループ:RDSへの機能追加を制御
    • DBサブネットグループ:RDSを起動させるサブネットを制御

特徴

  • 高い可用性
    • マルチAZ(複数のアベイラビリティゾーンに配置)を簡単に構築
      • あるアベイラビリティゾーンで障害が発生しても、別のアベイラビリティゾーンのDBを利用できる
  • パフォーマンスの向上
    • リードレプリカ(マスターDBを複製した読み込み専用DB)を簡単に構築
      • DBを参照する時はリードレプリカ、DBを更新する時はマスターに分けることで負荷を分散できる
  • 運用負荷の軽減
    • 自動的なバックアップ
      • 1日1回バックアップを自動取得(スナップショット)
      • スナップショットを元にDBインスタンスを作成(リストア)
    • 自動的なソフトウェアメンテナンス
      • メンテナンスウインドウで指定した曜日・時間帯にアップデートを自動実施
    • 監視
      • 各種メトリクス(監視対象のデータ)を60秒間隔で取得・確認可能

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

AWSコンソールからVPCを検索し、クリック
スクリーンショット 2020-01-26 21.06.22.png

サイドバーから「サブネット」をクリック
スクリーンショット 2020-01-26 21.08.20.png

現在プライベートサブネットはアベイラビリティゾーン「1a」のみ存在することを確認
スクリーンショット 2020-01-26 21.11.48.png

「サブネットの作成」をクリック
スクリーンショット 2020-01-26 21.12.56.png

以下の通り入力し、「作成」をクリック
スクリーンショット 2020-01-26 21.15.59.png

サブネットが作成されていることを確認
スクリーンショット 2020-01-26 21.18.03.png

RDSの作成準備

セキュリティグループの作成(EC2)

AWSコンソールからEC2を検索し、クリック
スクリーンショット 2020-01-26 21.26.08.png

サイドバーから「セキュリティグループ」をクリック
スクリーンショット 2020-01-26 21.27.35.png

「セキュリティグループの作成」をクリック
スクリーンショット 2020-01-26 23.06.58.png

任意のグループ名、説明、作成したVPCを入力
スクリーンショット 2020-01-26 23.10.36.png

「ルールの追加」 → 以下の画像の通り入力し、「作成」をクリック
タイプはMySQLの構築のため「MYSQL/Aurora」、ソースはEC2インスタンスのグループIDを指定
スクリーンショット 2020-01-26 23.14.51.png

作成したセキュリティグループのインバウンドから設定内容を確認
スクリーンショット 2020-01-26 23.25.02.png

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

サービスから「RDS」を検索
スクリーンショット 2020-02-01 14.03.17.png

サイドバーの「サブネットグループ」をクリック
スクリーンショット 2020-02-01 14.05.37.png

「DBサブネットグループの作成」をクリック
スクリーンショット 2020-02-01 14.08.33.png

任意の名前・設定、作成したVPCを選択
スクリーンショット 2020-02-01 14.12.37.png

作成した2つのプライベートサブネットを追加し、「作成」をクリック
スクリーンショット 2020-02-01 14.16.17.png

DBサブネットグループが作成されていることを確認
スクリーンショット 2020-02-01 14.18.27.png

DBパラメータグループの作成

サイドバーの「パラメータグループ」をクリック
スクリーンショット 2020-02-01 14.22.16.png

「パラメータグループの作成」をクリック
スクリーンショット 2020-02-01 14.24.53.png

以下の通り設定し、「作成」をクリック
パラメータグループファミリー:対象のDBを指定
グループ名・説明:任意の名前
スクリーンショット 2020-02-01 14.26.57.png

パラメータグループが作成されていることを確認
スクリーンショット 2020-02-01 14.32.05.png

パラメータを編集する際は、対象のパラメータグループをチェックし、パラメータグループアクション → 編集をクリック
スクリーンショット 2020-02-01 14.36.13.png

編集したい項目の値を変更し、「変更の保存」をクリックすることで変更できる
「変更可能」のtrue/falseで変更可能な項目を判別できる
「適用タイプ」がdynamicはRDSインスタンスが起動中でも反映され、staticはRDSインスタンスが起動されるまで反映されない
スクリーンショット 2020-02-01 14.38.45.png

DBオプショングループの作成

サイドバーの「オプショングループ」をクリック
スクリーンショット 2020-02-01 14.47.59.png

「グループの作成」をクリック
スクリーンショット 2020-02-01 14.50.06.png

以下の通り設定し、「作成」をクリック
名前・説明:任意の名前
エンジン:対象のDB
メジャーエンジンのバージョン:DBのバージョン
スクリーンショット 2020-02-01 15.02.32.png

デフォルトと自分が作成したグループの2つが作成されていることを確認
基本的にオプショングループを編集する際は自分の作成したグループを指定する
スクリーンショット 2020-02-01 15.05.39.png

RDSの作成

サイドバーの「データベース」をクリック
スクリーンショット 2020-02-01 15.20.15.png

「データベースの作成」をクリック
スクリーンショット 2020-02-01 16.01.59.png

以下の通り設定し、「作成」をクリック
VPC,サブネットグループ,セキュリティグループ,DBパラメータグループ,オプショングループは作成したものを選択
スクリーンショット 2020-02-01 16.16.15.png
スクリーンショット 2020-02-01 16.17.33.png
スクリーンショット 2020-02-01 16.19.04.png
スクリーンショット 2020-02-01 16.20.51.png
スクリーンショット 2020-02-01 16.23.48.png
スクリーンショット 2020-02-01 16.28.29.png
スクリーンショット 2020-02-01 16.30.19.png
スクリーンショット 2020-02-01 16.32.10.png

DBインスタンスが作成中になっていることを確認
スクリーンショット 2020-02-01 16.37.57.png

DBインスタンスを停止させる場合は、アクション → 停止をクリック
本番環境のDBインスタンスは停止させないこと → 停止に時間がかかる・AWSのRDSインスタンスのリソースが余っていなかった場合、しばらく起動できないため
スクリーンショット 2020-02-01 16.51.05.png

WebサーバーからRDSへ接続

ターミナルからEC2へSSHログイン
スクリーンショット 2020-02-01 17.03.06.png
ssh -i test-ssh-key.pem ec2-user@18.179.167.73

MySQLのインストール
sudo yum -y install mysql

RDSインスタンスのエンドポイントを確認
スクリーンショット 2020-02-01 17.08.08.png

DBへログインできることを確認

[ec2-user@ip-10-0-10-10 ~]$ mysql -h test-web.czelx3q0xopr.ap-northeast-1.rds.amazonaws.com -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.16 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)]>

参考

AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
11
Help us understand the problem. What are the problem?