Avatar
lambdaからRDBや他のミドルウェアに対するコネクションプーリングをどう持つかという点ですが、 lambda <-> TCP proxy server <-> RDB, Redis みたいな感じでミドルウェアとの間にコネクションプールを持つTCPプロキシサーバーを立ててやり過ごすのが妥協案として検討しているものになります。 TCPプロキシサーバーを構築する上でミソになるのが、 ・SPOFにならないよう複数台立ててLBにぶら下げる ・非同期IO+イベントループモデルなサーバーを採用する(microなどの低スペックインスタンスでも十分動作するように) になるのでしょうか。 一番簡単なのは、node.jsのTCPサーバー+mysqlクライアントで構築してしまうのが良さそうです。 ただ、このアイデアはもはやサーバーレスではなくなりすまし、運用が発生するので、最終兵器感はあります、、 lambdaを使ったアプリケーションのデータストア先として相性が良いものは、コネクションの本数を気にしなくていいdynamodbやkinesis、sqs、s3なので、これらを選択するのが一番最良です。
4:57 PM
ちなみに、SwiftのMysqlクライアントには、 https://github.com/noppoMan/SwiftKnex を利用するつもりです。
SwiftKnex - A Mysql Native Client and Query Builder written in Pure Swift