Kubernetesベースのツールを使用した高可用性Autonomous Databaseのデプロイおよび管理
管理者は通常、Oracle Cloud Infrastructure (OCI)コンソールを使用してOracle Autonomous Transaction Processing (ATP)を管理しますが、これにより、Kubernetes管理者のばらばらのエクスペリエンスが作成されます。Oracle Cloud Infrastructure (OCI) Service Operator for Kubernetes (OSOK)を使用すると、管理者は標準のKubernetesツールを使用してATPをデプロイおよび管理できます。
アーキテクチャ
このリファレンス・アーキテクチャは、高可用性Autonomous Databaseを使用するOKEクラスタにデプロイされたアプリケーションを示しています。ATPは、OSOKを介してOKEクラスタ内から完全にデプロイおよび管理されます。
OSOKでは、Kubernetesパッケージ管理ツールHelmを使用して、他のKubernetesアプリケーションとともにATPをデプロイできます。ATPは、標準のKubernetesコマンドライン・ツールであるkubectlを介して、他のKubernetesリソースと同様に管理することもできます。これを有効にするには、OSOKがAutonomous Databaseをカスタム・リソース定義(CRD)としてモデル化し、それらの定義をOKEクラスタに適用します。
ATPはスタンドアロン・システムとして、または高可用性(HA)でデプロイできます。アプリケーションは単一のエンドポイントに接続し、データベースへの読取りおよび書込みを行います。障害が発生した場合、ATPはアプリケーションを再構成しなくてもセカンダリ・インスタンスに自動的にフェイルオーバーします。
図kubernetes-based-autonomous-database.pngの説明
kubernetes-based-autonomous-database-oracle.zip
アーキテクチャには次のコンポーネントがあります。
- テナント
テナンシは、Oracle Cloud Infrastructureのサインアップ時にOracleがOracle Cloud内で設定するセキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、編成および管理できます。テナンシは、会社または組織と同義です。通常、会社は1つのテナンシを持ち、そのテナンシ内の組織構造を反映します。通常、単一のテナンシは単一のサブスクリプションに関連付けられ、1つのサブスクリプションには通常1つのテナンシのみが含まれます。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的な領域です。リージョンは他のリージョンから独立しており、巨大な距離は(国全体または大陸にわたって)分離できます。
- 可用性ドメイン
可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各アベイラビリティ・ドメインの物理リソースは、フォルト・トレランスを提供する他のアベイラビリティ・ドメインのリソースから分離されます。アベイラビリティ・ドメインは、電源や冷却、内部の可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、1つの可用性ドメインでの障害が、リージョン内の他の可用性ドメインに影響しない可能性があります。
- フォルト・ドメイン
フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各アベイラビリティ・ドメインに3つのフォルト・ドメインがあり、電源とハードウェアが独立しています。複数のフォルト・ドメインにリソースを分散すると、アプリケーションは、フォルト・ドメイン内の物理サーバーの障害、システム・メンテナンスおよび電源障害を許容できます。
- 仮想クラウド・ネットワーク(VCN)とサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、CNはネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNをサブネットにセグメント化できます。これは、リージョンまたは可用性ドメインにスコープを設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックでもプライベートでもかまいません。
- ロード・バランサ
Oracle Cloud Infrastructure Load Balancingサービスは、1つのエントリ・ポイントからバックエンド内の複数のサーバーへの自動トラフィック分散を提供します。
- ネットワーク・アドレス変換(NAT)ゲートウェイ
NATゲートウェイを使用すると、VCN内のプライベート・リソースは、着信インターネット接続にそれらのリソースを公開せずに、インターネット上のホストにアクセスできます。
- サービス・ゲートウェイ
The service gateway provides access from a VCN to other services, such as Oracle Cloud Infrastructure Object Storage. The traffic from the VCN to the Oracle service travels over the Oracle network fabric and never traverses the internet.
- クラウド・ガード
Oracle Cloud Guardを使用して、Oracle Cloud Infrastructureでリソースのセキュリティを監視および保守できます。Cloud Guardでは、ディテクタ・レシピを使用して、セキュリティの弱点を調べたり、オペレータおよびユーザーにリスクのあるアクティビティを監視したりするために定義できます。構成の誤りや安全でないアクティビティが検出されると、クラウド・ガードは、定義できるレスポンダ・レシピに基づいて、修正アクションを推奨し、それらのアクションの実行を支援します。
- セキュリティ・ゾーン
セキュリティ・ゾーンは、データの暗号化やコンパートメント全体のネットワークへのパブリック・アクセスの防止などのポリシーを適用することで、Oracleのセキュリティのベスト・プラクティスを最初から確保します。セキュリティ・ゾーンは、同じ名前のコンパートメントに関連付けられており、セキュリティ・ゾーン・ポリシーまたはコンパートメントとそのサブコンパートメントに適用される「レシピ」が含まれます。セキュリティ・ゾーン・コンパートメントに標準コンパートメントを追加または移動することはできません。
- セキュリティ・リスト
サブネットごとに、サブネットの内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
- オブジェクト・ストレージ
オブジェクト・ストレージを使用すると、データベース・バックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。安全かつセキュアに保存して、インターネットから直接またはクラウド・プラットフォーム内部からデータを取得できます。パフォーマンスまたはサービスの信頼性を低下させることなく、シームレスにストレージを拡張できます。迅速、即時、頻繁にアクセスする必要があるホット・ストレージには、標準ストレージを使用します。長期間保持し、めったにアクセスしない「コールド」ストレージにはアーカイブ・ストレージを使用します。
- FastConnect
Oracle Cloud Infrastructure FastConnectは、データ・センターとOracle Cloud Infrastructureとの専用のプライベート接続を簡単に作成する方法を提供します。FastConnectは、インターネットベースの接続と比較して、高帯域幅オプションとより信頼性の高いネットワーキング体験を提供します。
- ローカル・ピアリング・ゲートウェイ(LPG)
LPGにより、1つのVCNを同じリージョン内の別のVCNとピア接続できます。ピアリングとは、VCNがプライベートIPアドレスを使用して通信することを意味し、インターネットを通過するトラフィックやオンプレミス・ネットワークを経由するトラフィックは発生しません。
- 自律型データベース
Oracle Cloud Infrastructureの自律型データベースは、トランザクション処理およびデータ・ウェアハウス・ワークロードに使用できる、完全に管理された事前構成済のデータベース環境です。ハードウェアの構成や管理、ソフトウェアのインストールを行う必要はありません。Oracle Cloud Infrastructureでは、データベースの作成、およびデータベースのバックアップ、パッチ適用、アップグレードおよびチューニングが処理されます。
- Autonomous Data Warehouse
Oracle Autonomous Data Warehouseは、データ・ウェアハウス・ワークロード向けに最適化された、自動運転、自己保護、自己修復が可能なデータベース・サービスです。ハードウェアの構成や管理、ソフトウェアのインストールを行う必要はありません。Oracle Cloud Infrastructureでは、データベースの作成、およびデータベースのバックアップ、パッチ適用、アップグレードおよびチューニングが処理されます。
- Autonomous Transaction Processing
Oracle Autonomous Transaction Processingは、トランザクション処理ワークロード用に最適化された、自動運転、自己保護、自動修復データベース・サービスです。ハードウェアの構成や管理、ソフトウェアのインストールを行う必要はありません。Oracle Cloud Infrastructureでは、データベースの作成、およびデータベースのバックアップ、パッチ適用、アップグレードおよびチューニングが処理されます。
- Exadata DBシステム
Exadata Cloud Serviceを使用すると、クラウド内のExadataの機能を活用できます。ニーズの増加に応じて、データベース・コンピュート・サーバーおよびストレージ・サーバーをシステムに追加できる柔軟なX8Mシステムをプロビジョニングできます。X8Mシステムは、高帯域幅および低レイテンシ、パーシステント・メモリー(PMEM)モジュールおよびインテリジェントExadataソフトウェアのためのRoCE (RDMA over Converged Ethernet)ネットワークを提供します。X8Mシステムは、クォータ・ラックのX8システムに相当するシェイプを使用してプロビジョニングし、プロビジョニング後いつでもデータベースとストレージ・サーバーを追加できます。
推奨
次の推奨事項を開始点として使用します。要件は、ここで説明するアーキテクチャとは異なる場合があります。
- VCN
VCNを作成する際、VCNのサブネットにアタッチする予定のリソース数に基づいて、必要なCIDRブロックの数および各ブロックのサイズを決定します。標準のプライベートIPアドレス領域内にあるCIDRブロックを使用します。
プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。
VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。
サブネットを設計する際は、トラフィック・フローおよびセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能する同じサブネットにアタッチします。
- クラウド・ガード
Oracleが提供するデフォルトのレシピをクローニングおよびカスタマイズして、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピでは、警告を生成するセキュリティ違反のタイプと、それに対して実行できるアクションを指定できます。たとえば、可視性がpublicに設定されているオブジェクト・ストレージ・バケットを検出できます。
クラウド・ガードをテナンシ・レベルで適用して、広範な範囲に対応し、複数の構成を維持する管理上の負担を軽減します。
管理対象リスト機能を使用して、特定の構成をディテクタに適用することもできます。
- セキュリティ・ゾーン
最大限のセキュリティを必要とするリソースの場合、Oracleではセキュリティーゾーンを使用することをお勧めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースにパブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成および更新すると、Oracle Cloud Infrastructureでは、セキュリティ・ゾーン・レシピのポリシーに対して操作が検証され、いずれかのポリシーに違反する操作が拒否されます。
- ネットワーク・セキュリティ・グループ(NSG)
NSGを使用して、特定のVNICに適用されるイングレスおよびエグレス・ルールのセットを定義できます。NSGではVCNのサブネット・アーキテクチャをアプリケーションのセキュリティ要件から分離できるため、セキュリティ・リストではなくNSGを使用することをお薦めします。
- ロード・バランサの帯域幅
ロード・バランサの作成時に、固定帯域幅を提供する事前定義済のシェイプを選択するか、帯域幅範囲を設定するカスタム(柔軟性のある)シェイプを指定して、トラフィック・パターンに基づいて帯域幅を自動的にスケーリングできます。どちらの方法でも、ロード・バランサの作成後にいつでもシェイプを変更できます。
注意事項
Oracle Autonomous DatabaseをOKEクラスタにデプロイする場合は、スケーラビリティを考慮してください。Kubernetes Cluster Autoscalerを使用して、クラスタを自動的にスケーリングできます。
自動調整は、需要の増加または減少に応じて使用可能なノードの数を調整します。これにより、OCI Computeリソースの使用が最適化され、必要以上に多くのノードを使用できなくなり、コストが増加します。
Kubernetes Cluster Autoscalerは、Githubで利用できます。
デプロイ
まず、OKEクラスタまたはKubernetesクラスタをOCIにデプロイする必要があります。その後、次のツールを使用して、OSOKを設定し、Kubernetes内でATPをデプロイできます。
このTerraformプレイブックは、OCIにデプロイされたKubernetesクラスタへのOSOKのインストールを自動化します。Kubernetesクラスタは、仮想マシンにデプロイされた顧客管理クラスタ、またはOKEサービスで管理されるクラスタです。
- GitHubにアクセスします。
- リポジトリをローカル・コンピュータにクローニングまたはダウンロードします。
README
ドキュメントの指示に従います。
このHelmチャートを使用して、OCIにデプロイされたKubernetesクラスタからATPを作成および管理します。このHelmチャートは、すでにクラスタ内にデプロイされているOSOKに依存しています。
- GitHubにアクセスします。
- リポジトリをローカル・コンピュータにクローニングまたはダウンロードします。
README
ドキュメントの指示に従います。