lambdaからlightsailに通信しようとして断念
貴重な休日の3時間を費やして失敗。
正常な思考をお持ちの皆様はこんなことしないと思うのでPVは低い(断言)
でもメモったのは備忘のため。
vpc peeringを使う
まず、lambdaからインスタンスへ通信したい場合、VPC peeringを使用する。
知らない人はググる。
このときlightsail側にも設定がある。
lightsailとec2はそれぞれ暗黙のVPC(無料)を持ってるらしい。
前者は触れない、後者は触れる。多分。
で、さっきのlightsailコンソールからチェックボックスをクリックするとピアリングが作成される。
lightsailのvpcは触れないとした理由は、ここでlightsailのVPCっぽいidがリクエスタとして登場しているがリンクではない
(lightsailのipがリクエスタvpcのcidrに含まれている)。
cdkからlightsailのvpcを指定
で、cdkを使ってlambdaからlightsailのDBやらapiやらを見たいので
vpc.fromLookupでさっきのlightsailのVPCっぽいidを指定したら実行エラーになる。見つからないらしい。
触れない設定がここでも生きてくるのか。
分かりづらい課金体系(いつものこと)
なるほど、では通信用のvpcを作ってlambdaに指定、lightsailからピアリングすればよいのでは?
と思ってググると料金が発生するっぽい。
一時間あたりの課金に見えるので大丈夫そうだがちょっと不安。別の手を考える。
他に方法はないか
素直にec2インスタンス作れば?とも思ったがそうもいかない。
vpc.fromLookupで間違えてec2のvpcを設定したら「publicなvpcはlambdaにつけられませんぜ」エラーになった。
vpc作る問題が再燃する。
そうなるとlightsailのDBをRDSとかにしてapiをlambdaに移植しろよという話になるがそれはそれでRDSのお金がかかる。
あらヤダ積んでる。
結局のところ
lambdaを挟んでたのはhttpsエンドポイント1つの裏に複数のlightsailを隠したいから。
api-gateway(https)-lambdaで分配-各lightsailみたいな。
lambdaを挟まずapi-gatewayとlightsailが1:1ならいけそうだが?また来週。