CIDRブロックおよびOCI Functions

OCI Functionsの使用時に指定するCIDRブロックについて確認します。

OCI Functionsで使用するVCNおよびサブネットを構成する場合は、リソースに割り当てることができるIPアドレスを示すCIDRブロックを指定します。

VCNには、OCIファンクションが使用する特定の最小数の空きIPアドレスを提供するCIDRブロックが必要です。必要な空きIPアドレスの数は、次の要因によって異なります。

  • 実行時に使用する関数に対して指定されたメモリーの量と、その関数の同時実行の最大数。
  • 同じVCN内のサブネットで同時に実行されている他のすべての関数の最大メモリー量および同時実行数。

他のOCIサービスには追加の空きIPアドレスが必要な場合がありますが、これらの要件についてはこのトピックで説明していません。

次の方法をガイドラインとして使用して、OCI Functionsに必要な空きIPアドレスの最小数(したがって、VCNに指定するCIDRブロックのサイズ)を決定できます。

重要

異なる関数と、同じ関数の異なる呼び出しが同時に実行されるタイミングを正しく識別することは困難である可能性があります。また、異なる関数実行がすべて同時に、それらに指定されたすべてのメモリーを同時に使用しているタイミング(または、そうでない場合)を特定するのも困難です。その結果、ここで説明する方法によって、OCI FunctionsがVCNで必要とする最小限の空きIPアドレスの見積り(おそらくかなりの過大見積り)が超過する可能性があります。したがって、この方法では、最小数の空きIPアドレスをガイドラインとしてのみ計算し、システムの動作に関する独自の観察と経験を補足することを強くお薦めします。

  1. 同じVCNのサブネットで同時に実行するファンクションごとに、次の手順を実行します。
    1. 実行中に使用するファンクションに指定されたメモリーの量(GB)を識別します。たとえば、関数に512MBが指定されている場合、0.5 GBを使用します。
    2. ファンクションの同時実行の予想最大数を決定します。
    3. ファンクションのメモリー量に、ファンクションの同時実行の予想最大数を乗算して、ファンクションの必要なメモリーの合計最大量(GB単位)を決定します。
  2. 同じVCNのサブネットで同時に実行されるすべての関数に必要なメモリーの合計最大量(GB)を合計して、すべての関数に必要なメモリーの合計最大量(GB)を生成します。
  3. 14 GBのメモリー使用量ごとに1つの追加のIPアドレスが必要であるため、すべての機能に必要なメモリーの合計最大量を14で除算します。
  4. 3つのIPアドレスがサブネットごとに内部使用のために予約されているため、VCNの各サブネットについて、必要なIPアドレスの合計数に3を追加します。

その結果、OCI FunctionsがVCNで必要とするIPアドレスの最小数になります。最小限必要な数のIPアドレスを取得したら、CIDR計算機を使用して、VCNのCIDRブロックに指定するサイズを決定できます。参照用として、ここにCIDR計算機があります。

ガイドラインは、次の式で表すことができます。

minimum_required_number_of_IP_addresses = (3 * number_of_subnets) + (((max_memory_required_by_function_A * max_number_of_executions_of_function_A) + (max_memory_required_by_function_n * max_number_of_executions_of_function_n)) / 14)

単一のファンクションと、1つのリージョナル・サブネットを持つVCNを使用した次の簡単な例を考えてみます。512MB (0.5 GBに丸め)が、ファンクションが使用できるメモリー量として指定されており、2000がファンクションの同時実行の最大数であると想定しているとします。また、2000回すべての同時実行で、関数に指定された全量のメモリーを同時に使用するとします。この場合、必要なメモリーの合計最大量は1000 GB (つまり、(0.5 * 2000))です。ファンクションの同時実行に必要な空きIPアドレスの数は72です(つまり、(1000 / 14))。内部使用のために予約されているIPアドレスの数は3です(つまり、(3 * 1))。したがって、75 (つまり、72 + 3)は、OCI FunctionsがVCNで必要とするIPアドレスの最小数です。CIDR計算機を使用すると、OCI FunctionsがVCNを使用するのに/25 CIDRブロックで十分であることがわかります(/25 CIDRブロックには128の個別のIPアドレスがあるため)。

VCNに複数のサブネットがある場合は、サブネットごとに異なるCIDRブロックと重複しないCIDRブロックを使用して、IPアドレスをサブネット間で均等に分割します。

VCNおよびサブネットの構成の詳細は、OCI Functionsで使用するVCNおよびサブネットの作成を参照してください。