10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

FargateからRDSへ接続する方法について

Posted at

はじめに

こんにちは、山田です。
今回は、FargateからRDSに接続する方法について記載していきます。

全体構成図

全体構成図はシンプルですが以下の通りです。
image.png
今回使用するデータベースは、PostgreSQLとします。

スクリプト、DockerFileの作成

PostgreSQLに接続するスクリプトを作成します。
今回は接続に成功した場合にCloudWatchLogsにデータベースへの接続の結果をに出力させます。

test.py
# -*- coding: utf-8 -*-
import psycopg2
import os

try:
    print ("Connection successful")  #接続に成功した場合「Connection successful」と出力
except Exception as e:
    print ("Connection unsuccessful") #接続に失敗した場合「Connection unsuccessful」と出力

def connect():  #データベース情報
    con = psycopg2.connect("host=" + "database-2.cnujzrlbzwme.ap-northeast-1.rds.amazonaws.com" +
                           " port=" + "5432" +
                           " dbname=" + "testdb" +
                           " user=" + "postgres" +
                           " password=" + "password")

    return con
if __name__ == '__main__':
    con = connect()

同じフォルダにDockerFileを作成する。

Dockerfile
FROM python
RUN pip install psycopg2 cryptography
COPY rds.py /
CMD [ "python", "/rds.py" ]

完成したらECRにDockerイメージをプッシュしておきます。
image.png

コンテナの起動

ECSの管理コンソール上より、タスク定義を作成していきます。
起動タイプはFargateを選択します。
image.png

タスク定義名を入力し、タスクロールはRDSへのアクセス権限が付与されているIAMロールを選択します。
image.png

コンテナの追加よりコンテナ名を入力し、イメージURLには先ほど作成したDockerイメージのURLを入力します。
image.png

対象のクラスターを選択し、コンテナを起動させます。

動作確認

タスクの状態が停止状態になっていることを確認します。
image.png
停止状態になっているタスクのログを確認し、Connection successfulと出力されていれば接続が成功しています。
image.png

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?