📖
AWS ECSからAurora Serverless (Postgres) を呼び出す
AWS ECSで Node.js を使用して、Aurora Serverless(Postgres)を呼び出す対応を行った。
その対応についてまとめる。
経緯
AWS ECS を利用する社内システムの開発を行っていた。
当初、AWS DynamoDB を利用していたが、システムの仕様上、RDBを用いる方が良いということになった。
技術選定
対象システムが社内システムであり、次の性質があった。
- 利用時間は短い。
- 複雑なクエリを利用した分析を行うことがある。
そのため、Aurora Serverless (Postgres) を用いることになった。
TypeORM の利用
Node.js からRDBを利用するにあたり、 TypeORM を使用した。
Node.js の OR Mapper である。Entity class を元にテーブルを作成してくれる。
Aurora Data API の利用
Node.js から Aurora に接続するために Aurora Data API を利用した。
Aurora への永続的な接続の代わりに、セキュア HTTP エンドポイントおよび AWS SDKを用いた接続が可能になる。
typeorm-aurora-data-api-driver の利用
TypeORM から Aururora Data API を利用するため、typeorm-aurora-data-api-driver を使用した。
このライブラリでは、ローカルの Postgres で使用していた date
、enum
などのDBの型が利用できないという問題があった。そのため、次のように型の変更とそれに伴うコード書き換えを行った。
-
date
→timestamp
-
enum
→text
注意点 esbuildが利用できない。
当初、esbuild を使用してビルドを行っていた。
しかし、esbuild では TypeOrm に必要な emitDecoratorMetadata
がサポートされていなかった。そのため、esbuild は使用しないことになった。
参考記事
Discussion