OCIで適切なMySQLアーキテクチャを選択

Oracle HeatWave MySQLなどのオープンソース・データベースに依存する組織は、自己管理型のオンプレミス・ソリューションからマネージド・クラウド・データベース・サービス(MySQLデータベースなど)に移行してコストを削減し、運用効率を向上させるため、Oracle Cloud Infrastructure (OCI)で適切なMySQLアーキテクチャを選択する方法を学ぶことが重要です。

Oracle HeatWave MySQLは、OCI上のマネージド・データベース・サービスで、データベースのプロビジョニング、バックアップ、パッチ、アップグレードなどの面倒な日常業務タスクを計画および実行することなく、拡張性と可用性の高いデータベース・サービスを提供することを目的としています。OCIでワークロードにOracle HeatWave MySQLを導入する場合、自己管理データベースの現在の運用コストを削減するだけでなく、価値の高いイノベーションに注力することもできます。Oracle HeatWave MySQLとOCIでワークロードを実行する最大の利点を実現するには、Oracle HeatWave MySQLとOCIを理解して、ビジネス・ニーズと要件に基づいてクラウドの使用を拡大および拡張できる柔軟でスケーラブルなクラウド・アーキテクチャを設計する必要があります。

アーキテクチャ

このリファレンス・アーキテクチャは、ワークロード要件をサポートするために、OCI上で柔軟でスケーラブルなMySQLアーキテクチャを設計および最適化するのに役立つ関連技術情報を提供することを目的としています。

このリファレンス・アーキテクチャの範囲では、次の非機能要件および仕様を前提としています。

ドメイン 要件 説明
可用性 R1 アーキテクチャは、24時間365日の稼働をサポートするために、99.95%以上のサービス稼働時間で高い可用性を持つ必要があります。
  R2
  • RTO <= 4時間
  • RPO <= 1時間
スケーラビリティ R3 アーキテクチャは、ワークロードをサポートするために柔軟でスケーラブルである必要があります。
セキュリティ R4 アーキテクチャは、アクセス制御および認可メカニズムによって高度に保護されている必要があります。

これらの要件に基づいて、Oracle HeatWave MySQL高可用性モデルが他のOCIサービスとともに選択され、ワークロードのアーキテクチャが構築されます。

このリファレンス・アーキテクチャは、インフラストラクチャ・アーキテクト、情報アーキテクト、DevOpsエンジニアおよび運用エンジニアの懸念に対処するための3つの異なる視点で示されます。

インフラストラクチャ・ビュー



mysql-oci-architecture-infrastructure-oracle.zip

このアーキテクチャ・ビューでは、3つの可用性ドメイン(AD)で構成される単一のOCIリージョンに、リージョナル仮想クラウド・ネットワークにパブリック・サブネットとプライベート・サブネットがプロビジョニングされます。Oracle HeatWave MySQL高可用性モデルは、マルチAD OCIリージョンの3つのADに3つの冗長MySQLデータベース・インスタンス、または単一AD OCIリージョンの3つのフォルト・ドメインにデプロイします。

このアーキテクチャ・ビューは、Oracle HeatWave MySQLのアプリケーション・デプロイメント・オプションおよびネットワーク接続オプションを示しています。

  • Oracle HeatWave MySQLは、インターネットからのパブリック・アクセスなしで、保護されたプライベート・サブネットにデプロイされます。
  • Oracle HeatWave MySQLにアクセスするための接続オプション:
    • Oracle Cloud Infrastructure Load Balancingを使用したインターネット経由。
    • OCI Dynamic Routing Gatewayを使用した、データ・センターとOCIリージョン間のVPN経由:
      • OCIサイト間VPN
      • Oracle Cloud Infrastructure FastConnect
  • 一般に、OCIのOracle HeatWave MySQLにアクセスするための3つのアプリケーション・デプロイメント・パターンがあります:
    • Oracle Cloud Infrastructure ComputeインスタンスまたはOracle Cloud Infrastructure Kubernetes Engineインスタンスにデプロイされたアプリケーション(アプリケーションとMySQL Databaseの両方が同じOCIクラウド・リージョンに配置された最も推奨されるパターン)。
    • データ・センターでホストされるアプリケーション。
    • OCI以外のクラウド(Amazon Web ServicesMicrosoft Azureなど)でホストされるアプリケーション。

「インフラストラクチャ(スケーラビリティ/冗長性)」ビュー



mysql-oci-architecture-scalability-oracle.zip

このアーキテクチャ・ビューでは、Oracle HeatWave MySQL高可用性モデルを持つプライマリOCIリージョンが、OCI Dynamic Routing Gatewayを介して別のOCIリージョンと相互接続されています。このアーキテクチャ・ビューは、同じOCIリージョン内のMySQLスケーラビリティ、および別のOCIリージョン間の冗長性を示しています。

  • プライマリMySQLデータベース・インスタンスは、同じOCIリージョン内にManaged Read Replicaインスタンスをデプロイして読取りトランザクションをスケーリングすることで、簡単にスケーリングできます(詳細の確認を参照)。
  • プライマリMySQLインスタンスを、別のOCIリージョンにデプロイされたMySQLレプリカにレプリケートして、ワークロードの冗長性を提供できます(詳細の確認を参照)。

データベース・アクセス・ビュー

このアーキテクチャ・ビューは、データベース管理者および開発者向けのOracle HeatWave MySQLと連携するためのツール・オプションを示しています。

  • OCIデータベース・ツール(SQLワークシート)や、MySQLシェル・ツールがプリインストールされているOracle Cloud Infrastructure Cloud ShellなどのOCIツールには、パブリック・インターネットを介してWebブラウザを使用してアクセスし、MySQLを操作できます。
  • Oracle Cloud Infrastructure Bastionを使用すると、インターネットを介してツールをOracle HeatWave MySQLに接続できます。
    • Oracle Cloud Infrastructure Bastionサービスを使用すると、インターネットを介してツールをOracle MySQL Database Serviceに接続できます。
    • プレビュー・バージョンのMySQLシェル・プラグインを使用したVisual Studio Codeは、Oracle HeatWave MySQLに接続するための最小構成でも使用できます。


mysql-oci-architecture-database-access-oracle.zip

操作ビュー

このアーキテクチャ・ビューは、Oracle Cloud Observability and Management Platformサービスを使用したOracle HeatWave MySQLの監視の側面を示しています。

  • Oracle HeatWave MySQLコンソールで関連するしきい値を作成し、操作サポート処理のアラームをトリガーします。
  • OCIイベントを使用して特定のMySQLイベント(データベース再起動など)を追跡するイベントドリブンの監視。
  • OCIダッシュボードを使用してリアルタイム監視を行い、特定のMySQLインスタンスでOCIダッシュボードをカスタマイズします。


mysql-oci-architecture-operation-oracle.zip

  • リージョン

    Oracle Cloud Infrastructureリージョンとは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立し、長距離の場合は(複数の国または大陸にまたがって)分離できます。

  • 可用性ドメイン

    可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されているため、フォルト・トレランスが提供されます。可用性ドメインどうしは、電力や冷却、内部可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、ある可用性ドメインでの障害は、リージョン内の他の可用性ドメインには影響しません。

  • 仮想クラウド・ネットワーク(VCN)およびサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、VCNsではネットワーク環境を制御できます。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。

  • ロード・バランサ

    Oracle Cloud Infrastructure Load Balancingサービスは、単一のエントリ・ポイントからバックエンドの複数のサーバーへの自動トラフィック分散を提供します。

  • セキュリティ・リスト

    サブネットごとに、サブネット内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。

  • コンピュート

    Oracle Cloud Infrastructure Computeを使用すると、クラウド内のコンピュート・ホストをプロビジョニングおよび管理できます。CPU、メモリー、ネットワーク帯域幅およびストレージのリソース要件を満たすシェイプを使用してコンピュート・インスタンスを起動できます。コンピュート・インスタンスを作成した後は、セキュアにアクセスし、再起動、ボリュームのアタッチおよびデタッチを行い、不要になったらそれを終了します。

  • イベント

    Oracle Cloud Infrastructureサービスでは、イベント(リソースの変更を説明する構造化メッセージ)を発行します。イベントは、作成、読取り、更新または削除(CRUD)操作、リソース・ライフサイクルの状態変更およびクラウド・リソースに影響するシステム・イベントのために発行されます。

  • 通知

    Oracle Cloud Infrastructure Notificationsサービスは、パブリッシュ/サブスクライブ・パターンを介して分散コンポーネントにメッセージをブロードキャストし、Oracle Cloud Infrastructureでホストされているアプリケーションに対して、セキュア、高信頼性、低レイテンシおよび永続的なメッセージを配信します。

  • 要塞サービス

    Oracle Cloud Infrastructure Bastionは、パブリック・エンドポイントがなく、ベア・メタルや仮想マシン、Oracle MySQL Database ServiceAutonomous Transaction Processing (ATP)、Oracle Cloud Infrastructure Kubernetes Engine (OKE)、およびSecure Shell Protocol (SSH)アクセスを許可するその他のリソースなど、厳密なリソース・アクセス制御を必要とするリソースへの制限付きで時間制限付きのセキュアなアクセスを提供します。OCI Bastionサービスを使用すると、ジャンプ・ホストをデプロイおよびメンテナンスせずにプライベート・ホストへのアクセスを有効にできます。さらに、アイデンティティベースの権限と一元化された監査済みの期限付きSSHセッションにより、セキュリティ・ポスチャが向上します。OCI Bastionは、要塞アクセスのパブリックIPの必要性をなくし、リモート・アクセスを提供する際の手間と潜在的な攻撃対象領域を排除します。

  • FastConnect

    Oracle Cloud Infrastructure FastConnectは、データ・センターとOracle Cloud Infrastructureの間に専用のプライベート接続を簡単に作成する方法を提供します。FastConnectは、インターネットベースの接続と比較して、高帯域幅のオプションと、より信頼性の高いネットワーキング・エクスペリエンスを提供します。

  • MySQL HeatWave

    Oracle MySQL Database Serviceは完全管理型のデータベース・サービスで、開発者は世界で最も人気のあるオープン・ソース・データベースを使用して、セキュアなクラウドネイティブ・アプリケーションを迅速に開発およびデプロイできます。Oracle HeatWave MySQLは、Oracle MySQL Database Service用の高性能なインメモリ・クエリ・アクセラレータで、統合された新しいインメモリ・クエリ・アクセラレータで、分析とトランザクション・クエリーのMySQLパフォーマンスを高速化します。

レコメンデーション

ワークロード要件に応じてOCIアーキテクチャを設計するには、次の推奨事項を開始点として使用します。

  • VCN
    • リージョナル・サブネットを柔軟に使用してください。
    • VCNを作成するときには、必要なCIDRブロックの数を決定し、VCN内のサブネットにアタッチするリソースの数に基づいて各ブロックのサイズを決定します。
    • 標準のプライベートIPアドレス領域内にあるCIDRブロックを使用します:
      • 10.0.0.0 - 10.255.255.255
      • 172.16.0.0 - 172.31.255.255
      • 192.168.0.0 - 192.168.255.255
    • プライベート接続を設定する他のネットワーク(OCI、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。
    • VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。
    • サブネットを設計するときには、トラフィック・フローおよびセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能できる同じサブネットにアタッチします。Oracle MySQL Database Serviceは常にプライベート・サブネットに存在します。
  • セキュリティ
    • 最大限のセキュリティーを必要とするリソースの場合、Oracleではセキュリティーゾーンを使用することをお勧めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースは、パブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成して更新すると、OCIでは、セキュリティ・ゾーン・レシピのポリシーに対して操作が検証され、ポリシーに違反する操作が拒否されます。
  • クラウド・ガード
    • Oracleが提供するデフォルトのレシピをクローニングおよびカスタマイズして、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピを使用すると、警告を生成するセキュリティ違反のタイプ、およびそれらに対して実行を許可するアクションを指定できます。たとえば、Oracle Cloud Infrastructure Object Storageバケットをパブリック表示で検出できます。
  • ネットワーク・セキュリティ・グループ(NSG)

    NSGを使用して、特定のVNICに適用されるイングレスおよびエグレス・ルールのセットを定義できます。NSGでは、VCNのサブネット・アーキテクチャをアプリケーションのセキュリティ要件から分離できるため、セキュリティ・リストではなくNSGを使用することをお薦めします。

考慮事項

Oracle HeatWave MySQLをコア・クラウド・データベース・サービスとして標準化および運用化する場合は、操作性と柔軟性を容易にするために、これらの他のクラウド・サービス構成を検討してください。

  • ネットワーク接続性
    • クラウド・ネットワークを設計する際の様々なVCN制限の弱い制限(OCIテナンシ当たり50のVCN制限など)に注意してください。これらの制限は、OCIサポートにサービス・リクエストを送信することで変更できます。
    • Oracle HeatWave MySQLでは、メンテナンスのために最低限のプライベートIPアドレス・セットが必要です:
      • MySQLスタンドアロンには3つのプライベートIPアドレスが必要です
      • MySQL高可用性には7つのプライベートIPアドレスが必要です
    • Oracle Cloud Infrastructure Bastionサービスは最大3時間の使用に制限されるため、アプリケーションまたは開発目的で高可用性要塞サービスが必要な場合は、専用のOracle Cloud Infrastructure Computeインスタンスを要塞ホストとして使用してMySQLインスタンスに接続することをお薦めします。
  • 運用性

    OCIダッシュボードで、サービス操作用のMySQLインスタンスのフリート用にカスタマイズされたダッシュボードを構築してください。

  • 可用性

    MySQLレプリカを別のリージョンのバックアップとして構築する場合は、プライマリ・リージョンとバックアップ・リージョン間のネットワーク待機時間を考慮する必要があります。OCIは、プライマリ・リージョンのバックアップ・リージョンとして使用するリージョンを決定するのに役立つリージョン間ネットワーク・レイテンシ情報を提供します。MySQLレプリカのもう1つの考慮事項は、ログが削除される前にバイナリ・トランザクション・ログを保持する期間(binlog_expire_logs_seconds)であり、バイナリ・トランザクション・ログを保持するデフォルトの期間は3,600秒または60分です。プライマリ・リージョンとバックアップ・リージョン間で重大なネットワーク・レイテンシが発生している場合は、トランザクション・ログが長期間保持されるように、このパラメータを増やして、バックアップ・リージョンのMySQLレプリカでトランザクション・ログを送信および適用できます。

  • 移植性と柔軟性
    • OCIドメイン・ネーム・サービス(DNS)を使用して、移植性のためにMySQLホスト名を解決します。作成時にMySQLインスタンスにネーミング規則に基づいてカスタム・ホスト名を割り当て、OCI DNSがVCNリゾルバとしてホスト名を解決できるようにします。
    • Oracle Cloud Infrastructure Load BalancingのDNSホスト名をマネージド型のMySQL読取り/レプリカ・インスタンスに使用して、柔軟性を目的としてアプリケーション・コードの変更を最小限に抑えます。OCI DNSサービス・コンソールでは、このOracle Cloud Infrastructure Load Balancingの割り当てられたDNSホスト名を確認できます。

確認

Authors: Ryan Kuan

Contributors: John Sulyok