AWS クラウドサービス

Amazon AWS EC2内のシェルスクリプトからRDS(PostgreSQL)に接続して情報を取得する方法

Amazon AWS からRDSに接続するコマンド

まずAWSのEC2サーバーからRDSに正常に接続可能かEC2にログインした後に以下のコマンドを実行し確認してみます。

psql -h [RDSエンドポイント] -U [RDSID] 

パスワードが聞かれるので[RDSパスワード]を入力するとRDSのPostgreSQLにつながります。繋がらない場合はAWSの管理画面から設定を確認してみてください。

シェルスクリプトからPostgreSQLに接続し情報を取得する

パスワードを記憶させる

シェル内からPsqlコマンド叩くときパスワードをオプションで記述したりできなさそうなので、パスワード等を記憶させていきます。ユーザのホームディレクトリに遷移します。【.pgpass】ファイルを作成します。

コマンド

cd ~
vi ./.pgpass

.pgpassファイル



[RDSエンドポイント]:[DB名]:[RDSID]:[password]

ShellScript

ユーザめんどくさいので適当にルートユーザにしてますが、適宜ユーザは作成した方が良いと思います。

#!/bin/bash

SelectSQL="SELECT COUNT(*) FROM [テーブル名];"
result=`su -c"psql -h [RDSエンドポイント] -U [RDSID] [DB名] -Atqc \"${SelectSQL}\""`

echo ${result}

実行結果

1

-AWS, クラウドサービス
-, ,