create a new rds (postgre) instance with terraformに問題ありません。しかし、インスタンスの準備ができたらSQL(init.sql
)を実行する必要があります。terraformで新しいpostgreインスタンスを作成した後にinit sqlを実行する方法
このSQLは一度だけ実行する必要がありますが、どうすればよいですか?
私はlocal-exec
またはremote-exec
を試しましたが、できません。 RDSはVPC内のプライベートサブネット(データレイヤー)に作成され、管理されているサービスです。 sql cliを実行するためにログインする方法はありません。
実際にここで何を達成しようとしていますか?インスタンスにスキーマ/ロールを作成する必要がありますか?または、作成時に実行したい特定のSQLスクリプトがありますか? – ydaetskcoR
同様、データベースの作成、initデータを持つテーブルなど。 – Bill
これを行う方法は現在ありません。理想的な方法は、アプリケーションサーバー(または同様のもの)から行うことです。いくつかのオプションがあります 1. Terraformを使用してアプリケーションサーバーをデプロイし、EC2と仮定している場合は、最初にRDSインスタンスを作成してからアプリケーションサーバーを作成し、remote-execを使用してinit.sqlスクリプト。 2. CIパイプラインを使用してコードを展開する場合、別の手順としてDBの初期化を追加できます。 3.アプリケーションにロジックを追加して、最初の起動時にDBを初期化することもできます。 – Animesh