AWS Lambda、.NET 7の新機能であるネイティブコンパイラによる実行形式のバイナリに対応

2022年11月17日

Amazon Web Services(AWS)は、サーバレスコンピューティング基盤として提供している「AWS Lambda」で、.NET 7の新機能であるネイティブコンパイラによって生成される実行形式のバイナリファイルに対応したことを発表しました

fig

基本的に.NETアプリケーションは、C#などで書かれたソースコードがコンパイルによって中間言語に変換され、この中間言語が.NETのランタイムによって実行されます。Javaの実行がJavaVMによって行われるのに似ています。

この.NETのランタイムやJava VMには高性能なJIT(Jut-in-Time)コンパイラが搭載され、次々にネイティブバイナリを生成しながら実行することで、高速にアプリケーションを実行することが可能になっているわけです。

しかし、いかにJITコンパイラが優秀であったとしても、アプリケーションを実行しながらバイナリを生成するよりも、事前にコンパイルを行って実行可能なネイティブバイナリを生成し、それを実行する方が起動時間も短く実行速度も速くなります。この事前コンパイラをAOT(Ahead-of-Time)コンパイラと呼びます。JITコンパイラが普及する前は、コンパイラと言えばこのAOTコンパイラのことでした。

今月リリースされた.NET 7では、事前にソースコードをネイティブコードによってそのままターゲットとなるOS上で実行可能なバイナリに変換するAOT(Ahead-of-Time)コンパイラの機能が搭載されました。

参考:マイクロソフト「.NET 7」正式リリース。パフォーマンス改善、Linux対応向上、コンテナ生成、ネイティブコンパイラ搭載など新機能

AWS Lambdaでは小さな関数の実行を繰り返して連携させることでアプリケーションを構成するため、それぞれの関数のより高速な起動と実行が求められます。

今回の.NET 7のAOTコンパイラ対応は、こうしたAWS Lambdaの特性に合ったバイナリファイルの生成にぴったりだったわけです。そしてそれに呼応するように、AWS Lambdaが迅速にその対応を発表したことになります。

発表の中でAWSは以下のようにその効果を説明しています。

By using native AOT with AWS Lambda, you can enable faster application starts, resulting in improved end-user experience. You can also benefit from reduced costs through faster initialization times and lower memory consumption of native AOT applications on AWS Lambda.

ネイティブAOTコンパイラをAWS Lambdaで利用することで、より高速なアプリケーション起動が可能となり、ユーザー体験の向上につながります。また、AWS Lambda上におけるネイティブAOTアプリケーションの初期化時間の短縮やメモリ消費量の低減により、コスト削減のメリットも得られます。

あわせて読みたい

.NET AWS クラウド サーバレス プログラミング言語




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本