Compute@Edge : セキュリティを損なうことなくコールドスタートなしで実行可能な JavaScript のサポートをご要望に応えて実現

これまで開発者は JavaScript記述し、WebAssemblyコンパイルして Compute@Edge使用することができませんでした。JavaScript開発者の間で人気の高い言語なので、これが Compute@Edge導入への障壁となることは分かっていましたが、安易に手を抜いたり、セキュリティとパフォーマンスのトレードオフに悩まされるようなことはしたくありませんでした。 

トレードオフの理由は、従来 JavaScript 環境 (V8ど) では、最低5ミリ秒程度のレイテンシがスタートアップ時に発生するためであり、しかもこれにはアプリケーションの初期化にかか時間は含まれていません。この「コールドスタート」原因で、セキュリティリスクが高まり、レイテンシが増大します。

しかし幸いなことに、これらの懸念を払拭する解決策を見いだすことに成功し、WebAssembly Compute@Edge JavaScript使用できるようになりました。これにより、サーバーレスのビルド環境でスピードと安全性を確保しながら、使い慣れた言語を使用してよりスピーディに Compute@Edge構築を開始すること可能になりました。今回は、この最も人気の高いコンピューティング言語 Compute@Edgeサポートできるようになった背景について紹介します。 

JavaScript Compute@Edge

インスタンスの作成に使用される JavaScript エンジンは大規模なコードベースであるため、攻撃者が JavaScript 仮想マシン経由でシステムにアクセスするのを可能にするバグが導入されやすいという問題があります。そのため、Chrome Firefoxどのブラウザは、サイトが完全に独立したプロセスで運用されるよう細心の注意を払っており、処理中のサンドボックスをセキュリティの境界として扱わないようアドバイスしています。 

Fastly では、Compute@Edge JavaScriptサポートできるようにするために、まずセキュリティの確保に注力しました。JavaScript 仮想マシンを WebAssembyサンドボックス内で実行することで、さらな防衛線としてより安全な境界線を外側に設置してセキュリティを強化できます。Compute@Edge分離技術を用いてプラットフォームを通過するリクエストごとにマイクロ秒単位でサンドボックスを作成して破棄します。このテクノロジーにより、スケーラビリティとパフォーマンスを損なうことなく、全体的に攻撃対象領域を最小化し、プラットフォームを通過する他のリクエストからコードを完全に切り離すことができます。他のサーバーレスプラットフォームでは、レイテンシを隠すテクノロジーが使用され、リクエスト間でインスタンスが再利用されるケースがよくありますが、これにより攻撃の影響範囲が拡大するため、深刻なセキュリティリスクを伴います。  

さらに私たちはパフォーマンスにも注目しました。Compute@Edgeパフォーマンスをどう実現するかが、プラットフォームのセキュリティに直接影響するためです。もともと JavaScript 環境ではスタートアップ時にある程度のレイテンシが発生します。しかし Compute@Edge JavaScript使用した場合、ゼロミリ秒のコールドスタート実現し、65以上のパフォーマンスサーバークラスターにアクセスでき、優れたスケーラビリティと卓越したコンピューティングリソースを活用してコードを実行できます。これによりアプリケーションのパフォーマンスを向上させながら、攻撃対象領域を縮小することが可能になります。Fastly では独自の手法により (詳しくは Bytecode Allianceブログ記事を参照他の言語と同様にリクエストごとに新しインスタンスを作成するアプローチを採用して JavaScript実行することができます。通常、インスタンスの作成と、そのインスタンスで実行される JavaScript初期化の組み合わせによりコストがかさみ、レイテンシが増えるため、このアプローチは不可能です。

今日のニーズに応えるサーバーレス JavaScript 

JavaScript至る所で使用されています。現在、JavaScript開発者の間で最も人気のあるプログラミング言語ですWeb エクスペリエンスを構築しているほぼすべての開発者が JavaScript 開発の経験があり、ブラウザ用言語の WebAssembly採用が増えているとはいえ、現在でも多くの Web アプリケーションが JavaScript実行されています。 

Compute@Edge でこの人気の言語をサポートできるようになり、私たちも嬉しいです。JavaScriptサポートに関する詳細および使用方法については、Developer Hub覧ください。まだ Compute@Edge利用でない場合は、今すぐ登録上、サーバーレスのパワーをぜひ実感してください。

Sean Leach
Chief Product Architect
興味がおありですか?
エキスパートへのお問い合わせ
この投稿を共有する
Sean Leach
Chief Product Architect

Sean Fastly Chief Product Architect としてプロダクト戦略や技術戦略、セキュリティ、ネットワーク研究の推進に注力するとともに、Fastly ミッションをグローバルに広めることに力を入れています。