aws

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

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

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

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

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
ryu@InfraAcademyというインフラ学習サービス運営
大手企業→上場ベンチャー→スタートアップでエンジニアをしていました。 インフラエンジニア歴10年以上。 Linuxやネットワークの学習ができるサービスInfraAcademyを運営中。
RELATED POST