InfraAcademy

InfraAcademy Blog

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

| #aws

こんにちは、フルスタックエンジニアの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はサーバーレスでコンテナを制御できる便利なサービスなのでぜひ使って見ましょう!

あわせて読みたい - 【AWS】Fargateのコンテナに接続する方法を解説 - AWSを動画で学習するならUdemyがオススメ!AWSのオンライン講座を紹介 - 【入門から応用まで】AWSのオススメ参考書5選!【現役クラウドエンジニアが解説します】

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る