.NET開発者へのAWS Lambdaのすすめ
AWS Lambdaの.NET 6対応
2022年2月24日にAWS Lambdaによる.NET 6対応がリリースされました。
aws.amazon.com
Introducing the .NET 6 runtime for AWS Lambda | AWS Compute Blog
今回のリリースによりAWS Lambdaは.NET Core 3.1のサポート期限(2022年12月13日)を半年ほど残して新しいLTSに対応したことになります。2022年5月20日時点でサポート期間内の.NETとAWS Lambdaの対応日を表1にまとめました。これを見ると、.NET Core 3.1、.NET 6共にMicrosoftがリリースしてからおおよそ3ヶ月後にAWS Lambdaが対応してきたことがわかります。
※ここで言うサポート終了日とは各バージョンを対象とした月次のMicrosoft Updateの最終配信日です。[注:1]
AWS Lambdaの概要
AWS LambdaはAWSが提供するSaaSです。AWS上のサーバーレス環境でユーザーが作成したLambda関数を実行できます。2022年5月20日現在、Lambda関数の作成に使用できる言語はJava、Go、PowerShell、Node.js、C#、Python、Rubyで、[注:2] C#で利用できるフレームワークは.NET Core 3.1及び.NET6です。[注:3] Lambda関数の作成で主流の言語はPythonやNode.jsと言われていますが、AWS Lambdaの.NET対応によりこれまで企業などの業務アプリケーションを.NETで構築してきた開発者にとっても学習コストを抑えられるようになりました。
Lambda関数からはAWS上の各種リソースにアクセスすることができます。そのため実に様々なことが実現できます。それらの一例を表2にまとめました。
たとえば、Amazon RDSと組み合わせてリレーショナルデータベースの操作ができたり、Amazon S3と組み合わせてファイル操作もできます。また、Amazon API GatewayやAmazon CloudFrontと組み合わせることでAPIとしてインターネットに公開することもできます。
またAWS Lambdaを採用する大きなメリットの一つとして、より完全なサーバーレスアーキテクチャが実現できることが挙げられます。オンプレミスのアプリケーションをクラウドの仮想マシンに移行することによって、物理的なサーバーをクラウド業者のマネージドに置き換えるという意味でのサーバーレスアーキテクチャを実現できますが、AWS Lambdaを利用するこによってさらに上位のOSレイヤーでサーバーレスアーキテクチャを実現できます。
このことはシステムを安定稼働させるための課題である、ハードウェア障害やスケールアップ時のハードウェアに起因する制約といった予測が難しいインシデントの発生の未然防止につながることはもちろん、OSのセキュリティパッチ管理といった煩わしい運用にかかるコストも低減できます。サーバーのダウンタイムを気にしながらCVEの一覧を見て頭をかかえる時間が減ることは、ソフトウェアエンジニアのみならず、ハードウェアエンジニアやセキュリティエンジニアにとってもストレスの軽減につながります。
本ブログでも具体的な開発手順やサンプルプログラムを紹介していきますので、.NET開発者の皆さんもAWS Lambdaを始めてみてはいかがでしょうか。
類似テーマを扱った過去の記事
■ LambdaによるS3の操作
nomurabbit.hatenablog.jp
nomurabbit.hatenablog.jp
■ LambdaのAPI公開
nomurabbit.hatenablog.jp
■ (応用)外部APIとの連携
nomurabbit.hatenablog.jp
nomurabbit.hatenablog.jp