現場で即使える！AWS RDSセットアップ～クライアント接続まで完全攻略【無料枠対応】

![amazon_rds.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/c5379816-f864-4069-9b29-211f3542705e.jpeg)

エスプリフォートでは、業務内でのシステム開発以外でも、日々アンテナを張りながら仲間同士お互いに技術力を磨き合っています。
そして高めた技術力を顧客のために如何に生かしていくのかということを考え、日々の開発に取り入れることで顧客から頼られる存在としてあり続けています。

今回は当社でもよく利用するAWS RDSをご紹介いたします。

# はじめに
今回は、[Amazon RDS](https://aws.amazon.com/jp/rds/)（以下、RDS）を試してみます。

目標として、「RDSを無料枠でセットアップし、クライアントPCから接続できる」までを行っていきます。

RDSではいくつかのOracleやPostgreSQL、MySQL等、いくつかのDBを選ぶことができますが、今回はPostgreSQLを試用してみます。

なお、AWSは日々修正が行われるため、画面のイメージ等は、本記事作成（2025.03.20）時点のものであることをご了承ください。

# そもそもAWS RDSとは？
AWS RDS（アールディーエス）はかんたんに言うと、

:::note info
データベースサーバーの作成・運用・管理をAWSが代わりにやってくれるサービス
:::

です。
データベースの種類を選んで、スペック（CPU、メモリ、ストレージ）を決めるだけで使い始めることができます。

あとは、
・バックアップ（毎日自動）
・障害対応（ハードが壊れても勝手に復旧）
・セキュリティ（ネットワーク制御や暗号化）
・バージョン管理（マイナーバージョンアップ自動）

これら全部AWS側がやってくれます。

普通はデータベースを使うとき、
・OS（Linuxなど）をインストール
・DBエンジン（MySQLやPostgreSQLなど）をインストール
・チューニング、セキュリティ設定
・バックアップスクリプトを書く
・障害時は手動で復旧

これら全部、自分でやる必要がありました。
でもRDSだと、これらがAWSマネジメントコンソール（管理画面）でクリック、またはAPI・CLIでコマンド実行だけで完了します。
だからエンジニアがDBサーバーを運用する手間が、ほぼゼロになります。

それでは、実際にRDSを触ってみましょう。

# まずはAmazon アカウントの取得
まずは、Amazonアカウントを保持していない場合、その取得が必要です。
[Amazon RDS 無料利用枠](https://aws.amazon.com/jp/rds/free/?loc=ft#Free_Tier)から、アカウントの登録を行います。

![aws_rds01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/351b05f2-467c-457c-b786-d9ff185c30ab.png)

ここから先は英語ですが、さほど難しい内容ではないので落ち着いて内容に従い、アカウントを作成していきます。
メールアドレスが認証として必要になります。

メールアドレスの認証が終わると、AWSにアクセスするためのROOTパスワードを登録します。忘れないようにしましょう。

![aws_rds03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/f7deb5ed-2e15-4986-bb4a-7972c67c2bf7.png)

その後は、連絡先情報等を順次入力していきます。
途中、請求情報としてカード情報を入力する欄がありますが、無料制限枠内では課金はされません。

# Amazon RDS無料枠の設定
いったんログアウトし、再度[Amazon RDS 無料利用枠](https://aws.amazon.com/jp/rds/free/?loc=ft#Free_Tier)から、先程取得したアカウントでログインしなおします。

![aws_rds04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/cade0f8b-7c4e-4206-9df1-86c76d777834.png)

「IAMユーザとしてのログイン」を要求されますが、いったんIAMユーザは作成せず、「ルートユーザのEメールを使用したサインイン」を選択します。

![aws_rds05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/51c4582d-f01f-4922-a6ac-2b73adf76a4c.png)

コンソールのホーム画面に遷移します。

ここから「すべてのサービス」を選択後、データベースの「Aurora And RDS」を選択します。

![aws_rds07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/0008e8f9-8be1-42d2-9998-93e8c5a1eb51.png)

![aws_rds08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/27de2f98-2ba7-489b-8352-e75728e6443d.png)

左のメニューから「データベース」を選択し、右端の「データベースの作成」をクリックします。

「データベースの作成」では、「データベースの作成方法を選択：簡単に作成」、「設定：PostgreSQL」を選択します。

「DBインスタンスサイズ」では、「無料利用枠」を間違いないように選択してください。「マスタパスワード」にも、任意の値を入力します。

「マスターユーザー名」と「マスタパスワード」は、クライアント側で設定する際に重要になりますので、忘れないようにメモをしておきましょう。

![aws_rds10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/69a01cbe-4213-4bd3-a6b3-6aadce50e6d8.png)

![aws_rds11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/eb804722-8d62-4e38-b78e-211e07ee042c.png)

最後に、「データベースの作成」を選択します。

![aws_rds12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/044bff6b-7a29-4837-a426-4bb55f6a51a6.png)

データベースの起動が終わるまでしばらく待ちます。

起動が終わると、以下のような画面となります。

![aws_rds13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/88fcf3a0-73e0-4503-b935-1d42ea5182a9.png)

# Amazon RDSの接続設定確認
先程設定した「DBインスタンス識別名（今回の例では mydatabase）」を選択すると、「接続とセキュリティ」が表示されます。

その中の「エンドポイント」と「ポート」の値を確認します。

![aws_rds14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/2ded1491-410b-4c2c-aa1b-37fb9d1db53d.png)

# 外部からの接続ができるようにするための設定
ここまでで、RDSを無料枠でセットアップできました。DBが起動状態にもなっています。そこで、クライアントPCからこのRDBに接続してみようと思います。

但し、このままではクライアントPC等外部からの接続ができません。
その為、外部からの接続ができるようにするため、以下の設定が必要です。

1. 「パブリックアクセス」を「あり」に変更
2. 「セキュリティグループ」の「インバウンドルール」にpostgreSQLからの接続許可設定を追加

順に説明します。

## 1.「パブリックアクセス」を「あり」に変更
「変更」を選択し、「接続」の追加設定から「パブリックアクセス」を「パブリックアクセス可能」に設定します。

画面一番下の「続行」ボタンを押すと変更が開始されます。

しばらく待って「mydatabase」を選択して「更新」ボタンを選択すると、「パブリックアクセス可能」が「あり」になっていることを確認できます。

![aws_rds17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/87434f77-6aa2-40ed-80af-ad64947435a5.png)

## 2.「セキュリティグループ」の「インバウンドルール」にpostgreSQLからの接続許可設定を追加

「VPCセキュリティグループ」を選択後、「インバウンドルール」タブの「インバウンドのルールを編集」を選択します。

その後、「ルールを追加」から「タイプ」に「カスタムTCP」、「ポート」に「5432」、「ソース」に「マイIP」を選択して、「追加を保存」を押下します。

変更後は、以下のインバウンドルールが追加されます。

![aws_rds18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/9b3ca01f-fa3e-4958-9860-9deec2e01933.png)

# クライアントPC側からの接続
いよいよクライアントPCから接続してみます。

クライアントツールには、[A5](https://a5m2.mmatsubara.com/)を使用します。クライアントPCへのインストールは済んでいるものとします。

A5を起動し、「データベースの追加と削除」から「追加」を選択します。
続いて「専用接続 オープンソースデータベース（クライアント/サーバー）」から、「PostgreSQL（直接接続）」を選択します。

![aws_rds15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/d53d6ddc-9145-4c4a-adab-ee374f21cc6e.png)

以下のように値を設定します。

【基本】タブ
* DBの種類 : PostgreSQL
* サーバー名 : Amazon RDS で設定したエンドポイント
* データベース名 : postgres
* データベース名 : Amazon RDS で設定したマスターユーザー名
* パスワード : Amazon RDS で設定したマスタパスワード

さらに、SSLの設定も必要です。[^1]

【SSL】タブ
* SSLモード : 優先（SSL接続を優先）
* サーバ証明書を信用する にチェック

![aws_rds19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/4b59fba9-8d6a-47d7-bbd9-238b9c1a7993.png)

![aws_rds20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/efb1c9c0-8766-42a9-97e7-6bd8c6ab157d.png)

「テスト接続」ボタンを押下して、「接続に成功しました。」と出力されれば問題ありません。
A5から設定したDBに接続をすると、SQLを実行できるようになります。

![aws_rds21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/13012f2f-81b2-4299-a3b4-7092e059da06.png)

# まとめ
というわけで、Amazon RDSをセットアップして、クライアントPCから接続できるまでを確認できました。

このようにAWSでは、データベースの作成もほんの数クリックとわずかの設定でできるようになることが確認できました。すごく便利ですね。

ご興味がある方は、一度試してみてはいかがでしょうか。[^2][^3]

https://www.esprit-fort.co.jp/

https://www.esprit-fort.co.jp/recruit/

[^1]:RDS（PostgreSQL）のバージョン15以降では、SSL接続が必須となっているために、この設定が必要です。（[参照：PostgreSQL DB インスタンスへの SSL 接続を必須にする](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html#PostgreSQL.Concepts.General.SSL.Requiring)）

[^2]:なお、今回はあくまでも「試用」であり、実運用ではまだまだ多くの設定が必要です。
AWSでは、「ROOTユーザ」ではなく「IAMユーザ」を作成して実操作を行う事が推奨されています。また、セキュリティの面でも考慮すべき点がまだまだ多くあります。
[^3]:筆者も「試用」後は、作成した内容は全て削除するようにしています。