原文はこちら。
https://blogs.oracle.com/cloud-infrastructure/using-regional-subnets-and-regional-load-balancers-to-support-ha-and-failover
https://blogs.oracle.com/cloud-infrastructure/using-regional-subnets-and-regional-load-balancers-to-support-ha-and-failover
Oracle Cloud Infrastructureで複数のAvailability DomainをまたぐSubnetの構成を可能にする、Regional Subnetsが先月リリースされました。しかし、SubnetがRegionalであるということはどういう意味でしょうか?Oracle Cloud InfrastructureではもともとSubnetは単一のAvailability Domainでのみ構成できるよう設計されており、これはAvailability-Domain-SpecificなSubnetと呼ばれています。したがって、Subnetのリソースはある単一のAvailability Domain内に設置される必要がありました。しかし今ではRegionalなSubnetによって、Region内の複数Availability Domainにまたがってそのリソースを設置することができるようになったということです。Subnetを作成するときにタイプを選択することができます。Regional Subnetと新規/既存のAvailability-Domain-SpecificなSubnetはひとつのVirtual Cloud Network(VCN)内で共存させることができます。
Regional Private Load Balancerのご紹介
Regional Subnetのリリースと併せて、Private Load Balancerサービスがリージョン単位での高可用性を提供できるよう機能強化されました。Regional Subnetの搭乗前は、Private Load Balancerは単一のAvailability Domain内での冗長性しかなく、したがってLoad Balancerの可用性はそれが設置されたAvailability Domain自体の可用性に限定されていました。今回の機能強化により、Private Load Balancerはお客様は意識せずとも複数のAvailability Domainにまたがって高可用性を得られるようになりました。
次に記載する図はOracle Cloud Infrastructureのドキュメントから転載したもので、Availability-Domain-SpecificなLoad Balancerと新しいLoad Balancerの違いを説明しています。ひとつめの図では、CIDRレンジ10.0.4.0/24のPrivate SubnetがAD-2の中にのみ構成されており、したがってAD-2が完全にオフラインになってしまうといった障害に対しては耐性がありません。ふたつめの図では、同じPrivate Subnetが今回は3つのAvailability DomainをまたがるRegional Subnetとして構成されています。この構成ではLoad BalancerのIPアドレスが3つのAvailability Domainにまたがって利用可能になっています。
AD-2がオフラインになる障害が起きた場合にどのような差があるか考えてみましょう。ひとつめの図では、Load BalancerのIPアドレスもオフラインとなり、するとあなたのワークロードもリクエストの受付を停止してしまうことになるでしょう。しかし、ふたつめの図のようにRegional Load Balancerを利用していれば、プライベートIPアドレスは他のAvailability Domainに移動する、フェイルオーバするなどして、リクエストの受付を継続することができます。この機能によりLoad Balancerの可用性を高め、ワークロードの安定性を高めることができるというわけです。
注:既存の複数のAvailability-Domain-Specific Subnetで構成することで高可用性を得ているPublic Load Balancerは別のフェイルオーバモデルです。Regional Public Subnet内に作られたPublic Load Balancerは、ここでの説明と同様の冗長性を持つことになります。
ユースケース
ここで、ワークロードの可用性をRegional Subnetで高められる3つのシナリオを紹介していきます。
シナリオ1:Regional Private Load Balancer
Regional Load Balancerを構成する際、先にRegional Subnetを構成しておく必要があります(Availability-Domain-SpecificなSubnetにRegional Load Balancerを設置することはできません)。
ステップ1:Regional Subnetの作成
以下のスクリーンショットにあるように、Oracle Cloud InfrastructureでのSubnet作成時のデフォルト(推奨)オプションは現在、Regionalです。このオプションを選んだ場合、SubnetのAvailability Domainは選択しません。この点のみがRegional Subnetを作成する場合とAvailability-Domain-Subnetを作成する場合の違いです。
TerraformでRegional Subnetを設置する際には、Availability-Domain-SpecificなSubnetを設置する際とは違い、availability_domain の設定項目は不要です。以下のスクリーンショットの通りです。
注:既存のAvailability-Domain-Specific用のTerraformのコードからこの設定項目を除くとオペレーションを破壊してしまい、VNICが付与されたリソースを持つSubnet上では成功しません。
ぜひ試してみることをおすすめします。Terraformサンプル全量も参照してみてください。
ステップ2:Regional Load Balancerの作成
Load Balancerを作成するためのRegional Subnetの作成が済んだので、Regional Load Balancerを作成していきましょう。
以下のスクリーンショットにある通り、SubnetフィールドにRegional(Recommended)セクションが追加されています。Availability-Domain-Specificサブネットを選ぶのではなく、新しく作成したRegional Subnetを選択しましょう。
Terraformでオペレーションする場合には、テンプレートの修正は不要です。単にあるRegionalなSubnetを選択することで、RegionalなLoad Balancerとして作成されます。
これらのステップを実行することで、Regional SubnetにRegional Load Balancerを構成することがえきます。続けて、Regional Subnetが効果を発揮するもうひとつの代表的なシナリオを見ていきましょう。
シナリオ2:異なるAvailability Domainのインスタンス間のIPフェイルオーバ
ロードバランシングに加えて、多くのアプリケーションやソリューションが仮想的な「浮遊する」IPアドレスのフェイルオーバというコンセプトを取り入れています。このようなシナリオでは、クラスタリングされたマシンがハートビートによって接続されており、フェイルオーバメカニズムはあるIPをアクティブなノードの移り変わりに応じて割り振ったり戻したりします。Regional Subnetの搭乗前には、フェイルオーバオペレーションの差異にこの仮想的なIPアドレスを同一のSubnetの中のインスタンスの間のみで移動させることができました。現在では、いずれのAvailability Domainにあるインスタンスの間でも、プライベートIPアドレスを移動することができるようになったのです。
このデザインにより、仮想IPアドレスフェイルオーバを用いながらアプリケーションをAvailability Domainをまたいで冗長に構成することができます。たとえば、Pacemaker、CorosyncとOracle Cloud Infrastructureを使ったクラスター内のふたつのインスタンスの間で仮想IPを移動させることができます。Automatic Virtual IP Failover on Oracle Cloud Infrastructureのブログポストをご覧ください。
まとめ
このポストではRegional SubnetとRedional Subnetをご紹介し、Oracle Cloud Infrastrucuture上でフェイルオーバアーキテクチャを強化する方法について解説しました。VCNのドキュメントを読み、さらに詳しく学んでみることをおすすめします。また、リリースノートも公開されています。
このポストを楽しんでいただけたようであれば幸いです。ご承知でしょうが、全てのOracle Cloud Infrastructureのテナントにはエンタープライズグレードのサポートが含まれていますから、お客様はこうしたサービスにアクセスするためにサービスリクエストを起こすことができますよ。製品チームにフィードバックをシェアしたい場合は、feedback_oci_virtual_networking@oracle.comにemailを送ってください。