自宅サーバーをLambdaに移行
京都にパソコン大好き少年がいた。 その少年は、
Lambdaをメインに使用して置き換える
Lambdaをメインに使用して置き換える もちろん構成で
参考:ECSとRDSをやめて、AWSコストを9割削減しました https://zenn.dev/beenos_tech/articles/lambda-sqlite-application
EIPのコストとEFSのストレージコスト高々4$ 個人利用であれば、でRDBを使用することができる。
しかし、まだ問題が...
パスごと、メソッドごとにLambdaを作成する構成
既存のWebアプリがあるので改修は最小限にしたい
HTTPリクエストをLambdaイベントに変換する
引用:awslabs/aws-lambda-web-adapter https://github.com/awslabs/aws-lambda-web-adapter
Dockerfileのコード追加のみ、アプリのコードは改修なしでLambdalithで動かすことが可能になった。 参考:Lambda Web Adapterを触ってみた感想(※) https://speakerdeck.com/junkishigaki/impressions-trying-lambda-web-adapter ※ 私がLWAを知ったきっかけ
node_modulesもデカい...
引用:Python および .NET 関数向けの AWS Lambda SnapStart の一般提供を開始 https://aws.amazon.com/jp/blogs/news/aws-lambda-snapstart-for-python-and-net-functions-is-now-generally-available/
INIT済み実行環境をスナップショット化、一度実行されたら特定の時間、INIT処理を短縮
→初めのリクエストは少し時間がかかるが、以降はストレスなく扱えるレベルに
引用:https://slide.ogadra.com/lambda-as-an-ecs-alternative
自宅メインサーバーを撲滅できた。
これらが全てなくなった。 しかもコンピューティングのコストは発生したことない。(無料枠内)
しかもコンピューティングのコストは発生したことない。(無料枠内)
従来:VPNで外から触れないを担保 (VPN自体はルーターのDDNSを使用していたりで無料)
現在:Cognitoを使用し、認証・認可中心へ
CloudFront + Lambda@Edge + Cognito User Pool
引用:awslabs/cognito-at-edge https://github.com/awslabs/cognito-at-edge
aws-cdk-lib.aws_cloudfront.experimental.EdgeFunctionを使用することで、Lambda@edgeをus-east-1にデプロイしてくれる。
aws-cdk-lib.aws_cloudfront.experimental.EdgeFunction
new cloudfront.experimental.EdgeFunction(this, 'CognitoAuthFunction', { runtime: lambda.Runtime.NODEJS_LATEST, handler: 'index.handler', code: lambda.Code.fromAsset(path.join(__dirname, 'auth-handler')), });
Lambdaランタイムの下にはOSのレイヤーが存在している →システムコールが使用できる
memfd_createを使ってLLMがロードされた状態をスナップショットとして保持する。
memfd_create
8B程度の量子化されたモデルであれば動く →無料枠内であればほぼ無料でLLMを使える。
参考:aws-samples/sample-chatbot-lambda-snapstart https://github.com/aws-samples/sample-chatbot-Lambda-SnapStart/
Lambdaの可能性は無限大、無料枠に感謝しながら酷使させます。