データベースとは何か、実際に構築してみた!RDS編

    データベースとは何か、実際に構築してみた!RDS編

    目次

      本記事の内容

      前回の記事ではデータベースとはそもそも何かを記述し、
      実際にDynamoDBの構築を行いました。
      本記事ではRDS(リレーショナルデータベースサービス)の構築をし、DynamoDBと比較したいと思います!

      DynamoDBについては「データベースとは何か実際に構築してみた!DynamoDB編」が別記事でありますので
      そちらを参照してください。

      RDS構築

      RDSを作成するにあたり、事前にVPC、EC2インスタンス、サブネットの作成が必要ですが今回は割愛させていただきます。事前準備に関してはこちらが参考になるかと思います。
      【初心者向け】 Amason EC2インスタンスを立ち上げてみよう

      マネジメントコンソールからRDSを選択し、データベースの作成をします。
      「簡単に作成」を選択すると、推奨設定に基づいて作成することができますが、
      今回は「標準作成」で行っていきます。

      202401_what_is_the_database_rds_edition_01


      エンジンは様々ありますが、MySQLの無料利用枠を使用します。

      202401_what_is_the_database_rds_edition_02
      任意のDBインスタンス識別子を付け、マスターユーザー名はadminとします。また、任意のマスターパスワードを設定します。

      202401_what_is_the_database_rds_edition_04
      サイズはどれでも良いのですが、今回は一番小さいサイズのt2.microを使用します。ストレージタイプも何も変えずに進めます。

      202401_what_is_the_database_rds_edition_05


      次に接続設定です。事前に作成したVPC、セキュリティグループ、AZを選択します。

      202401_what_is_the_database_rds_edition_06202401_what_is_the_database_rds_edition_07
      他はすべてそのままにしてデータベースの作成を行います。

      202401_what_is_the_database_rds_edition_08


      データベースが作成できたら事前準備で作成したEC2インスタンスと接続します。
      DynamoDBの接続と同様にセッションマネージャーを開きます。

      MySQLをダウンロードするために
      sudo yum install mysqlと打ち、最終確認を問われるので
      yと打ちます。
      下記画像のように"complete!"と表示されればMySQLのインストール完了です!
      202401_db_rds_09


      インストールが完了したら、MySQLにログインするためのコマンドを打ちます。
      mysql -u admin -p -h <RDSのエンドポイント>
      RDSのエンドポイントは接続とセキュリティから見ることができます。
      RDS作成時に決めたマスターパスワードを求められるので、入力します。
      ※パスワード入力の際、セキュリティ上、パスワードが表示されません。
      しかし、正確なパスワードを入力し、enterを押すとログインすることができます。
      202401_db_rds_10202401_db_rds_11


      これでEC2インスタンスからRDSへの接続は完了です!

      構成図

      RDSとDynamoDBの構成図を作成しました!
      AWSサービスは、AZごとに作成するのか、リージョンごとに作成するのか、リージョンをまたいで作成できるのかが決まっています。
      今回構築したRDSはAZサービス、DynamoDBはリージョンサービスに該当します。
      AWSサービスの「サービスカテゴリ」が詳しく書かれている記事がありますので参考にしてみてください。

      AWSサービスの場所をまとめてみた

      ・DynamoDBの構成図

      202401_what_is_the_database_rds_edition_12

      ・RDSの構成図

      202401_what_is_the_database_rds_edition_13

      まとめ

      それぞれを構築してみて、違いがあったのでまとめます。

      • RDSは垂直スケーリングと水平スケーリング、DynamoDBは水平スケーリング ができる。
      • RDSはAZサービス、DynamoDBはリージョンサービス である。
      • RDSはインターネットを経由せずに利用可能。
        DynamoDBはインターネットを経由してアクセスするか、VPCエンドポイントを利用してアクセスする。
      • RDSは強整合性、DynamoDBは結果整合性(オプションで強整合性にできる)である。

      以上です!