この記事について
インフラが超苦手なエンジニアが、AWSのEC2に Postgres を立て、そのあとに Apache NiFi (をラップした Cloudera の製品である Cloudera Data Flow)でクエリかけられるようにするまでの全手順をメモしたものです。
Postgres をたてる手順は詳細にメモしていますが、Apache NiFi の部分はかなり端折っています。
手順
EC2をたてる
- パブリックアクセスが可能なVPCの中で
- t2.medium
- RHEL9
- SGの設定で、自分のPCからのSSH(ポート20)と5432を開放しておく
Postgresをインストール
こちらの手順を実施。(ルートで)
テストデータを入れる
こちらの手順を実行
※途中で unzip コマンドを実行するが、デフォでは入っていなかったのでまず yum install unzip をやってから⏬を実施
通信を通す
こちらの手順を実施。
👆のとおりだが、初心者(のわたし)向けにもう少し詳しいメモを残します。
postgresql.conf の編集
Vimで /var/lib/pgsql/data/postgresql.conf
を開く
vi /var/lib/pgsql/data/postgresql.conf
/listen
で検索して、listen_address と port を以下のように編集しコメントを外す
※本来は listen_address はもう少し粒度細かく設定すべきだろうけども、今回は検証目的なので全開放。
pg_hba.conf の編集
pg_hba.conf
のパスを確認
find / -name pg_hba.conf
Vim で pg_hba.conf
を開く
vi /var/lib/pgsql/data/pg_hba.conf
最後の行にこれを追加(md5メソッドを全開放)
host all all 0.0.0.0/0 md5
サービスを再起動
systemctl restart postgresql.service
postgres のパスワードの設定
ルートのままで
しかるべきディレクトリに移動して・・・
cd /var/lib/pgsql/
パスワード変更のコマンドをたたく
sudo -u postgres psql -c "alter user postgres password 'postgres';"
ALTER ROLE
と返って来ればOK
Apache NiFi でクエリ
ExecuteSQLプロセッサのプロパティ設定
(Database Connection Pool と SQL select query 以外はデフォルト)
PostgreSQLConnectionPoolの中身
以上で、クエリをかけることができました!