エッジルーチン (EdgeRoutine、以下 ER) は、Alibaba Cloud のグローバルなポイント・オブ・プレゼンス (POP) 上で JavaScript コードを実行するサーバーレスコンピューティングサービスです。ES6 構文および標準的な Web Service Worker API をサポートしています。リクエストは各ユーザーに最も近い POP で実行され、超低遅延の応答を実現します。
メリット
-
グローバルデプロイメントと超低遅延:Function Compute や Elastic Compute Service (ECS) とは異なり、ER ではリージョンごとのデプロイメントは不要です。グローバルな POP ネットワーク上で動作します。クライアントからのリクエストは最寄りの POP にルーティングされ、そこでコードが実行されて直接応答が返されるため、遅延を最小限に抑えられます。
-
自動スケーリングと従量課金:Alibaba Cloud の 3,200 以上の POP により、組み込みの弾力性が提供されます。急増したリクエストは、空き容量のある近隣の POP に自動的にルーティングされます。ER は呼び出し回数に基づく従量課金方式を採用しており、コードが実行されている間のみ課金されます。
-
サーバーレスで使いやすい:インフラストラクチャ(CPU、メモリ、ネットワーク、OS)の管理から解放され、ビジネスロジックに集中できます。コンソールからコードをアップロードするか、API を呼び出すことでデプロイ可能です。サーバーレスモデルにより、開発および運用保守 (O&M) コストを削減できます。
仕組み
-
/DCDN における ER 未使用時のリクエストフロー:1. クライアントが POP ゲートウェイにリクエストを送信。→ 2. POP がキャッシュを確認。キャッシュヒットの場合、コンテンツがクライアントに返却。→ 3. キャッシュミスの場合、リクエストがオリジンサーバーに転送。
-
/DCDN における ER 使用時のリクエストフロー:1. クライアントが POP ゲートウェイにリクエストを送信。→ 4. ER がリクエストをインターセプトし、ご利用の JavaScript コードを実行。→ コード内では
fetchを使用してキャッシュにアクセスしたり、オリジンサーバーからコンテンツを取得(矢印 5 または 3)したり、他のパブリック Web サービスを呼び出したり(矢印 6)できます。説明ER はゲートウェイの後に実行されるため、ご利用の/DCDN ドメイン名コンソールの設定 — HTTPS、アクセスの制御、パフォーマンス最適化、キャッシュルール — は引き続き有効になります。
基本概念
-
関数:ルーチン (Routine) とは、POP 上でご利用のアップロード済みコードを実行する JavaScript ランタイムです。ER を使用するには、まずルーチンを作成する必要があります。各ルーチンは、構成(名前、説明、CPU/メモリ仕様、ドメイン名許可リスト)とご利用の JavaScript コードの 2 つの部分で構成されます。
-
バージョン:ルーチンはバージョン管理をサポートしています。開発中はいつでもコードのスナップショットをバージョンとして保存できます。ルーチンを公開するには、特定のバージョンを選択してデプロイする必要があります。以前のバージョンへのロールバックやコード履歴の管理が可能です。各バージョンにはシステムによりバージョン番号が自動生成されます。
-
環境:ER は開発、テスト、デプロイメント向けにステージング環境、本番環境、カナリア環境を提供します。
-
ステージング環境:コードをテストするための独立したエッジノードです。本番環境を模倣しますが完全に分離されており、ここでの変更が本番環境に影響することはありません。
hostsファイルに提供されたステージング IP を追加することでアクセスできます。 -
本番環境:グローバルに分散配置された POP で構成される稼働環境です。ステージング環境でのテスト後、コードを本番環境に公開します。ER はリクエスト量に基づいてノードを自動的にスケーリングします。実際の地域別ディストリビューションは異なる場合があります。
-
カナリア環境:エラーが存在する場合、直接本番環境にデプロイするとすべてのユーザーに影響が及ぶリスクがあります。カナリアリリースを使用して、デプロイ範囲を徐々に拡大してください。カナリア環境 (オプション)。
-
-
ドメイン名:ルーチンを作成・公開した後、クライアントのエントリポイントとしてドメイン名が必要になります。ER は Alibaba Cloud または DCDN の高速化ドメイン名のみをエントリポイントとしてサポートしています。 または DCDN コンソールで、ご利用のルーチンを高速化ドメイン名に関連付けます。
-
ポイント・オブ・プレゼンス (POP):「エッジ」とは、集中型ではなく分散型のデプロイメントを指します。POP とは、クライアントに最も近い/DCDN ノードであり、受信リクエストを処理します。
制限事項
|
項目 |
制限 |
説明 |
|
CPU 時間 |
5 ms、50 ms、または 100 ms |
ER 実行 1 回あたりの CPU 時間(I/O 待ち時間を除く)。5 ms、50 ms、100 ms の仕様から選択できます。課金。 |
|
メモリ |
128 MB |
単一の物理マシン上の 1 つのドメイン名あたりの合計メモリ量。そのマシン上の当該ドメイン名に対するすべてのリクエストは、このメモリプールを共有します。 |
|
実行時間 (RT) |
120 秒 |
ER 実行 1 回あたりの最大合計応答時間(I/O 待ち時間を含む)。 |
|
待ち時間 |
10 秒 |
ゲートウェイが ER の応答を待機する最大時間。10 秒以内にデータが返却されない場合、ゲートウェイは接続を終了し、ステータスコード 504 を返します。 |
|
コードパッケージサイズ |
4 MB |
ルーチン 1 つあたりの JavaScript コードファイルの最大サイズ。 |
|
サブリクエスト数 |
4 |
ER 実行 1 回あたりの最大 |
|
プログラミング言語 |
JavaScript (ES6 構文) |
JavaScript のみをサポートしています。JavaScript プログラミングの知識が必要です。 |
|
ルーチン数 |
50 |
Alibaba Cloud アカウントあたりの最大ルーチン数。 |
|
バージョン数 |
10 |
ルーチン 1 つあたりの最大バージョン数。 |
|
サポートされるプロトコル |
HTTPS のみ |
WebSocket、TCP、UDP はサポートされていません。 |
|
ネストされたサブリクエスト |
サポートされていません |
ER インスタンスは、別の ER インスタンスをトリガーするドメイン名を |