aws

【AWS】FargateからRDSへ接続できない場合の対処方法

こんにちは、フルスタックエンジニアのryuです。

今回の記事では、FargateからRDSへ接続できない場合の対処方法について解説します。FargateのコンテナからRDSで接続できないエラーがいくつか出たので、それぞれに対しての対処方法を詳しく解説します。

FargateからRDSへ接続できない場合の対処方法

今回の記事では、以下の3つの接続できないパターンについて解説します。FargateからRDSへ接続できない方は是非参考にしてください。

  • FargateとRDSの接続先の設定
  • RDSのセキュリティグループの設定
  • 初期データベースが作成されていない

では、それぞれにのエラーの原因の対処方法について解説します。

FargateとRDSの接続先の設定

まず、FargateとRDSの接続先の設定です。

RDSの接続先は、RDSのコンソール上の[接続とセキュリティ]の[エンドポイント]に記載されています。

このエンドポイントをアプリのDBの接続先として設定します。例えば”.env”ファイルやFargateの[タスク定義]の環境変数へ設定します。

RDSのセキュリティグループの設定

次は、RDSのセキュリティグループの設定です。RDSを作成時に自動でセキュリティグループを作成すると、Fargateからの接続が拒否されます。なぜなら、FargateのIPからのアクセスが許可されていないからです。

Fargateは起動しているタスクによってIPアドレスが変わるので、インバウンドを”0.0.0.0/0″の”3306″を許可するようにしましょう。

先ほど説明した、RDSの接続先とセキュリティグループの設定が正しければ、RDSにアクセスできるはずです。ただ、RDSに接続できても、まだエラーが出ていたので、ほかの原因の対処方法についても引き続き解説します。

初期データベースが作成されていない

最後に私が躓いた部分は、初期のデータベースが作成されていないことでした。DB インスタンス識別子がDBとして作成されると思いきや全然違いました。

初期のデータベースを作成するためには、RDSのデータベース作成時に[追加設定]より最初のデータベース名を指定する必要があります。

画面に書いてあるように、データベース名を指定しないと、RDSはデータベースを作成しないので、Fargateからデータベースに接続しようしてもデータベースが無いをエラーが出てしまいました。

データベースを作成するには、RDSの作成時にデータベース名を指定するか、RDSを作成後にEC2などで接続してコマンドで作成するかする必要があります。

まとめ

今回の記事では、FargateからRDSへ接続できない場合の対処方法について解説しました。Fargateはサーバーレスでコンテナを制御できる便利なサービスなのでぜひ使って見ましょう!

About me
大手メーカのIT部門→上場ベンチャーでフルスタックエンジニアやってます。エンジニア歴は8年目。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!

UdemyでIT講座をチェック!

  • セールだと1500円前後!
  • 無料サンプル講義動画・無料講義動画あり!
  • 気に入らなければ30日間返金保証!