BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AWS LambdaがGoランタイムの廃止を発表

AWS LambdaがGoランタイムの廃止を発表

原文リンク(2023-09-10)

AWS Lambdaは go1.xランタイムを廃止し、Amazon Linux 2ランタイムでのみGoをサポートすることを発表した。この発表と、年内にカスタムprovided.al2ランタイムに移行する必要性から、Goコミュニティでは懸念が高まった。

Amazon Linux AMIのエンド・オブ・ライフに関しては、go1.x ランタイムは12月31日に非推奨となり、開発者はその日までにprovided.al2ランタイムに移行する必要がある。AWSのシニア・ソリューション・アーキテクトであるMicah Walter氏、Yanko Bolanos氏、Ramesh Mathikumar氏は、その利点を説明した。

まず、AWS Graviton2プロセッサー上でのLambda関数の実行をサポートし、x86_64プロセッサー上で実行される関数と比較して最大34%の価格性能向上を提供できます。また、より小さなデプロイパッケージと高速な関数呼び出しパスにより、合理化された実装の提供が可能になります。そして、この変更はGoをRustやC++のようなネイティブコードにコンパイルする他の言語と整合性がとれます。

しかしRIP AWS Go Lambda Runtimeの記事の中で、Stax社のエンジニアリング・リードであるMark Wolfe氏は次のように反論している。

これはいくつかの理由から悪いことだと思います。まず、既存のGo Lambda関数から新しいカスタムランタイムへの自動化された移行経路がありません(…)。次に、これによりAWS LambdaコンソールからGo1.xの名前が削除され、Goはサポートされるファーストクラスの言語ではなく、単なる別のカスタムランタイムになってしまいます。

Node、Python、Javaのような他の言語では、Lambdaはネイティブランタイムを提供しているが、Goは今後provided.al2ランタイムを使うことでしか利用できなくなり、AWS上のサーバーレス言語としてのGoの発見を低下させる。

AWSがGoのネイティブサポートを削除する以前から、カスタムランタイムに切り替えることで、Lambdaの拡張機能のサポート、より新しいAmazon Linux 2の実行環境、ランタイムとハンドラのコードを統一できることなど、多くの利点があると主張する開発者もいたが、Wolfe氏はこうコメントしている。

カスタムランタイムはより良いパフォーマンスと最新のオペレーティングシステムを提供する一方で、この変更はAWS Lambda上の多くのGo開発者にとって労力を必要とします。AWSからの自動化された支援や検証があれば、この変更による摩擦や問題を減らせると考えています。

Redditの人気スレッドでは、コミュニケーション不足を強調するGo開発者がいる一方で、この変更を支持する人もいる。NightVisionの創業エンジニアでAWS Serverless HeroのAidan Steele氏は、代わりにフラグの利点に注目している。

私はすでに新しいランタイムを使用していますが、AWS SAMが新しいランタイム用にGo Lambda関数をビルドできるようになったこともブログ投稿で知りました!もうMakefileは不要なのか!BuildMethod: makefileからBuildMethod: go1.xに切り替えたところ、Lambdaパッケージのサイズが2倍になったことに気づきました。これはコールドスタートの遅さとデプロイの遅さを意味します。

開発者への影響を軽減するために、アナウンスではgo1.xランタイムからprovided.al2ランタイムに関数を移行する方法と、ビルドスクリプトやCI/CD構成に設定を変更する方法を説明している。

作者について

この記事に星をつける

おすすめ度
スタイル

BT