はじめに
こんにちは、山田です。
今回は、FargateからRDSに接続する方法について記載していきます。
全体構成図
全体構成図はシンプルですが以下の通りです。
今回使用するデータベースは、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イメージをプッシュしておきます。
コンテナの起動
ECSの管理コンソール上より、タスク定義を作成していきます。
起動タイプはFargateを選択します。
タスク定義名を入力し、タスクロールはRDSへのアクセス権限
が付与されているIAMロールを選択します。
コンテナの追加よりコンテナ名を入力し、イメージURLには先ほど作成したDockerイメージのURLを入力します。
対象のクラスターを選択し、コンテナを起動させます。
動作確認
タスクの状態が停止状態になっていることを確認します。
停止状態になっているタスクのログを確認し、Connection successful
と出力されていれば接続が成功しています。