LambdaからVPC内リソースにアクセスが出来るようになったので何が出来るのか眺めていました。すると、どうやら「VPC内にNetworkInterfaceを作ることでVPC内リソースにアクセスする」とのことだったので、もしかするとこれはLambdaの起動インスタンスからフリーダムな事ができるのではないかと思い、ちょっと検証してみることにしました。やりたかったことLambdaからVPC内の(インターネットに公開していないインスタンスに)SSH接続して、その内部の情報を拾う/書き換えることが出来ないかを検証する。制御を行う仕組みは基本的に存在していませんでした。EC2のUserDataを使うなどすれば一時的には利用できますが、Launch時のみに限定されます。これまでの機能だけでpush型で外部から定期的に制御を行うモデルを構築しようとすると、その制御システムを冗長化する必要があって料金が高くついたり、ある時間のジョブをどれか1つのマシンだけが実行する制御が必要になる場合があるなど、技術的・コスト的にペイさせるのが難しいという問題がありました。CodeDeployがあるにはありましたが、アレはあれでエージェントのインストールが必要になるなど、そこそこ準備側のコストが高いように感じてました。制御を堅牢*1に、安価に*2実行できる可能性が高まります。Functionを組みました。アップロードして使うことにしました。このコマンドでやっても落ちてこない。以下にファイルが存在しないと言われて失敗する。以下から持ってくることで解決しました。あと、Lambdaモジュールが利用するNetworkInterfaceの存在するsubnet内に例えIGW向けのルートが張ってあってもインターネットに出ることができません*3。APIが使えなくなります。Endpointへのルーティングが必要となります。LambdaのTestでssh接続を行って、リモートのコマンドを実行することには成功しました。これは中々出来ることが広がるアップデートだと思います。この使用方法が想定されていたかどうかは知りませんが。ソースコード簡単なサンプルを以下のpublicプロジェクトにアップロードしました。ご自由にご参照/ご利用下さい。IPを付与しないため当然といえば当然。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。