Dyno Runtime
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2023年02月27日(月)
Table of Contents
Dyno Runtime は、アプリの dyno を実行するための主要コンポーネントです。 Dyno Runtime は以下を行います。
- dyno (アプリのコードを実行するための安全な、分離したコンテナ) のプロビジョニング。
- 各 dyno のライフサイクルの管理および監視。
- アプリのスケーリング設定が変更された場合の dyno の追加および削除。
- 接続されたアドオンサービスおよびその他の外部エンドポイントに対するネットワークリクエストを dyno が行えるようにする適切なネットワーク設定の提供。
- アプリケーションのドメインでの Web トラフィックの受信およびそのトラフィックの Web dyno へのルーティング。
- 各 dyno からのログ出力のキャプチャおよびアプリケーションのログドレインへの転送。
Heroku には、Common Runtime と Private Spaces Runtime の2 種類の Dyno Runtime があります。主な違いはネットワークトポロジーと分離レベルです。これらのランタイムの認定は、こちらの表を確認してください。
Dyno Manager が各種 Runtime でどのように動作するかについては、「dyno および Dyno Manager」を参照してください。
Common Runtime
Common Runtime は、リージョンごとに 1 つのマルチテナントネットワークで dyno を実行および管理します。US および EU の 2 つのリージョンが利用可能です。各 dyno は強力なファイアウォールルールで保護されているため、すべての dyno が 1 つのフラットなネットワークで実行される場合でも、dyno は相互に強力に分離されます。このランタイムの認定は、こちらの表を確認してください。
Common Runtime の dyno は、受信 Web リクエストを正確かつ安全に dyno に転送するルーティングレイヤからの接続のみを受信できます。この方法で接続を受信できるのは Web dyno のみです。
Private Spaces Runtime
Private Spaces Runtime では、1 つまたは複数の Private Space でアプリケーションを作成できます。 各 Private Space には、スペース外の他のアプリケーションとは共有されない、独自のネットワーク、ルーティングレイヤ、コントロールプレーンがあります。このランタイムの認定は、こちらの表を確認してください。
Private Space の分離およびネットワークトポロジーには、Common Runtime と比較していくつかのメリットがあります。
- スペース内のすべてのアプリケーションへのアクセスは、一連の信頼済み IP 範囲に制限されます。
- 一連の固定の送信 IP アドレスで作成されたアプリで行われるすべてのリクエストにより、IP 許可リストを使用して、オンプレミスの Web サービスゲートウェイなどのさまざまなバックエンドサービスに安全にアクセスすることができます。
- 1 つの Private Space 内の dyno は、プライベートネットワークで相互に直接通信できます。
- 1 つの Private Space 内の dyno は、Heroku Postgres や Heroku Data for Redis などの特定の種類のアドオンリソースで、プライベートネットワークで相互に直接通信できます。Private Space で作成されたデータベースまたは Redis インスタンスは、パブリックインターネットで直接アクセスすることができません。
- 強力な分離により、アプリケーションは上述のコンプライアンス要件を満たし、Common Runtime で可能な以上のことができます。
アプリケーションの Dyno Runtime の選択
アプリケーションの Dyno Runtime は、作成時に設定されます。デフォルトでは Common Runtime になります。
代わりに Private Spaces Runtime を使用する場合は、「Private Space」を参照してください。
アプリのリージョンの設定方法については、「リージョン」を参照してください。