📒

RDSでデータベースを構築する - AWSをはじめからていねいに

2021/11/29に公開

ていねいを心掛けたAWS記事です。スクリーンショット満載でやった気になれます。
AWS関連の他の記事はAWSをはじめからていねいにからどうぞ。

概要

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

ゴール

EC2からMySQLに接続してデータベースの一覧を表示します。
Goal

必要なもの

  • 作業時間:30分
  • 費用:無料※
  • AWSアカウント
  • EC2
    RDSへの接続に使用します。構築していない場合は「とにかくEC2を立ててログインする」を参考に構築してください。
    OSはAmazonLinux2を使っています。

登場する主なコンポーネント

  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にセッションマネージャーで接続します。セッションマネージャーでの接続方法がわからない場合は「とにかくEC2を立ててログインする」の「手順20. EC2に接続する」を確認してください。

  14. EC2にMySQLインストール用のリポジトリを追加する
    AmazonLinux2にはMySQLのリポジトリが登録されていません。このため以下のコマンドでMySQLのリポジトリを追加します。

    sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
    

    add mysql repository

  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を停止します。停止の手順がわからない場合は「とにかくEC2を立ててログインする」の26項を参考にして終了させてください。

  21. MySQLの停止を始める
    確認が終わったのでMySQLを停止します。
    RDSメニューの「データベース」を選択し、停止する「mysql」データベースの左側のラジオボタンを選択して「アクション」から「停止」を選択します。
    install mysql client

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

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

感想

個人的にはRDSならAurora一択なのですが(記事を作成予定)、残念なことに無料枠が準備されていません。
初心者向けのAWS記事で有料サービスを使用するのはハードルが高いと考えて無料枠のあるRDSにしました。
Auroraの無料枠作ってくれないかな。。。

次はこれをやろう

AWS関連の他の記事はAWSをはじめからていねいにからどうぞ。

GitHubで編集を提案

Discussion