AWS RDS入門(RDSでデータベースを構築する)

AWS でデータベースを構築

MySQLデータベースをRDSを使ってEC2から接続します。
接続するためのセキュリティグループの設定も行います。

目的

Goal

主なコンポーネント

  1. RDS
    AWSのマネージドなリレーショナルデータベースす。ハードウェアを気にすることなくデータベースを構築することができます。
  2. セキュリティグループ
    AWSコンポーネントのファイアーウォールです。今回の記事ではデータベースに接続可能なのはEC2のみに制限します。

RDSを構築する

  1. RDSダッシュボードを表示する
    マネジメントコンソールの左上の「サービス」を押すと表示されるメニューから「データベース」を選択します。表示されるサブメニューから「RDS」を選択します。
    select rds
  2. データベースの作成を開始する
    「データベースの作成」ボタンを押してデータベースの作成を開始します。
    start create rds
  3. データベースの設定を入力する①
    「データベース作成方法を選択」は「簡単に作成」を選択します。「設定」は「MySQL」を選択します。「DBインスタンスサイズ」は「無料利用枠」を選択します。
    setting rds 1
  4. データベースの設定を入力する②
    「DBインスタンス識別子」「マスターユーザー名」「マスターパスワード」は自由に設定します。
    「DBインスタンス識別子」は構築するMySQLの名前のようなものです。今回は練習用なので「mysql」などを入れておけばよいでしょう。
    「マスターユーザー名」と「マスターパスワード」は構築するMySQLであらゆる権限を持つ特権ユーザーとなります。「マスターユーザー名」は慣例である「admin」で構いませんが「パスワード」は推測されにくい値を設定するようにしましょう。ここで指定した「マスターユーザー名」と「マスターパスワード」は後ほどEC2からの接続に使用するため覚えておきます。
    入力したら「データベースの作成」ボタンを押します。
    setting rds 2
  5. データベースが作成されるのを待ちます
    データベース一覧に切り替わりデータベース作成中の状態になるので、作成が完了するまで待ちます。
    wait rds creating
  6. 作成されたデータベースの詳細を確認します
    データベースの作成が完了したらデータベース名のリンク(以下のスクリーンショットではmysql)を押します。
    check rds created
  7. MySQLのエンドポイントを覚えてセキュリティグループの設定を始めます
    EC2からの接続に使用する「エンドポイント」を覚えておきます。
    つぎに「接続とセキュリティ」タブの「セキュリティ」の「VPCセキュリティグループ」項目の下のリンクを押します。(以下ののスクリーンショットでは「sg-0ea6476d34f6d6715」の部分です。)
    show rds endpoint
  8. インバウンドルールを表示します
    セキュリティグループ編集画面が表示されるので、画面下部のタブから「インバウンドルール」を選択します。
    show inbound
  9. インバウンドルールの設定変更を始めます
    「インバウンドのルールを編集」ボタンを押します。
    change inbound
  10. インバウンドルールに新しいルールを追加します
    左下の「ルールを追加」ボタンを押します。
    add inbound rule
  11. 新しいルールの設定を入力します
    新しいルールの行が追加されます。
    「タイプ」に「MYSQL/Aurora」を設定し、「ソース」にEC2の属するセキュリティグループを設定します。
    入力が終わったら「ルールを保存」ボタンを押します。
    add inbound rule
  12. インバウンドルールが増えたことを確認します
    セキュリティグループのインバウンドタブに入力したルールが追加されていることを確認します。
    これでセキュリティグループの設定は完了です。
    check inbound rule
  13. EC2にセッションマネージャーで接続する
    EC2にセッションマネージャーで接続します。
  14. EC2にMySQLインストール用のリポジトリを追加する
    AmazonLinux2にはMySQLのリポジトリが登録されていません。このため以下のコマンドでMySQLのリポジトリを追加します。
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y

15. EC2にMySQL接続するためのクライアントをインストールする
MySQL接続のためのクライアントをインストールするために以下のコマンドを実行します。

sudo yum install -y mysql-community-client

install mysql client

16. RDSに接続する
MySQL接続のコマンドを使用してMySQLに接続します。hostnameには7項で覚えた「エンドポイント」を、usernameには「マスターユーザー名」を指定します。
コマンド実行後にパスワードを聞かれるので「マスターパスワード」を入力します。

mysql -h hostname -u username -p

connect mysql

17. MySQLのデータベース一覧を表示する
MySQLのデータベース一覧を表示するクエリ「show databeses;」を実行します。

show databases;

show databases

18. MySQL接続を終了する
MySQL接続を終わるために「exit」コマンドを入力します。

exit

disconnect mysql

19. セッションマネージャーを終了する
セッションマネージャーを終わるために「exit」コマンドを入力します。

exit

exit session manager

20. EC2を停止する
確認が終わったのでEC2を停止します。

21. MySQLの停止を始める
確認が終わったのでMySQLを停止します。
RDSメニューの「データベース」を選択し、停止する

「mysql」データベースの左側のラジオボタンを選択して「アクション」から「停止」を選択します。
install mysql client

22. RDSを停止する
DBインスタンスの停止の確認ダイアログが表示されます。
スナップショットの作成は「なし」を選択し、「はい、今すぐ停止します」ボタンを押します。スナップショットとはバックアップのことです。今回の手順ではデータベースにデータを入れていないのでバックアップは不要です。
install mysql client

23. RDSの一覧でMySQLが停止するのを待ちます
データベース一覧の「mysql」のステータスが「停止済」になったら停止の完了です。
install mysql client