Oracle Cloud Marketplaceを使用したTimesTen Kubernetes Operatorのデプロイ

Oracle TimesTen In-Memory Database (TimesTen)は、オンプレミスまたはOracle Cloud Infrastructure Kubernetes Engine (OKE)上のKubernetesクラスタにデプロイできます。TimesTenは、OLTPアプリケーションにマイクロ秒のレスポンスと高スループットを提供する、軽量で完全に永続的で可用性の高いインメモリー・リレーショナル・データベースです。TimesTenは、レコードのデータベースまたはOracle Databaseのキャッシュとして使用できます。

Oracle Cloud MarketplaceのOracle TimesTen In-Memory Database for Kubernetes - BYOLリストは、TimesTenのコンテナ・イメージ、そのソフトウェアの前提条件、およびコンテナ化された環境でTimesTenを実行するために必要なすべてのもので構成されます。コンテナ・イメージには、TimesTen Kubernetes Operator (TimesTen Operator)をデプロイし、OKEまたはオンプレミス・インフラストラクチャにTimesTenデータベースを作成するために必要なYAMLマニフェスト・ファイルおよびHelmチャートが含まれています。

アーキテクチャ

このアーキテクチャでは、リージョナル・サブネットおよび少なくとも2つの可用性ドメインを持つリージョンを使用します。同じリファレンス・アーキテクチャを、1つの可用性ドメインを持つリージョンで使用できます。可用性ドメインの数に関係なく、デプロイメントにリージョナル・サブネットを使用することをお薦めします。

プロビジョニングされると、このリファレンス・アーキテクチャには次のものが含まれます。

  • Kubernetes APIエンドポイント、ノード・プールおよびロード・バランサの個別のプライベート・サブネットにデプロイされたOKEクラスタ。

  • TimesTen演算子は、ノード・プールと同じプライベート・サブネットのワーカー・ノードにデプロイされます。

  • 異なる可用性ドメインのワーカー・ノードにデプロイされたアクティブ・スタンバイ・ペアのレプリケーション・スキーム内のTimesTenデータベースのペア。

  • プライベート・サブネットにデプロイされたリソースにアクセスするためにパブリック・サブネットにデプロイされた要塞。

次の図は、このリファレンス・アーキテクチャを示しています。

timesten-kubernetes-byol.pngの説明が続きます
図版timesten-kubernetes-byol.pngの説明

タイムステン-kubernetes-byol.zip

このアーキテクチャには、次のコンポーネントがあります。

  • 監査

    Oracle Cloud Infrastructure Auditサービスでは、Oracle Cloud Infrastructureのサポートされるすべてのパブリック・アプリケーション・プログラミング・インタフェース(API)エンドポイントへのコールがログ・イベントとして自動的に記録されます。すべてのOCIサービスは、Oracle Cloud Infrastructure Auditによるロギングをサポートしています。

  • 可用性ドメイン

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

  • 要塞サービス

    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の必要性をなくし、リモート・アクセスを提供する際の手間と潜在的な攻撃対象領域を排除します。

  • ブロック・ボリューム

    Oracle Cloud Infrastructure Block Volumesでは、ストレージ・ボリュームを作成、アタッチ、接続および移動し、ボリューム・パフォーマンスを変更して、ストレージ、パフォーマンスおよびアプリケーションの要件を満たすことができます。ボリュームをインスタンスにアタッチおよび接続した後は、そのボリュームを通常のハード・ドライブのように使用できます。また、データを失うことなく、ボリュームを切断して別のインスタンスにアタッチすることもできます。

  • クラウド・ガード

    Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティをモニターおよびメンテナンスできます。クラウド・ガードでは、ディテクタ・レシピを使用して、リソースでセキュリティの弱点を調べたり、特定のリスクのあるアクティビティについてオペレータおよびユーザーをモニターしたりするために定義できます。構成の誤りやセキュアでないアクティビティが検出されると、クラウド・ガードは修正アクションを推奨し、ユーザーが定義できるレスポンダ・レシピに基づいてそれらのアクションの実行を支援します。

  • コンパートメント

    コンパートメントは、Oracle Cloud Infrastructureテナンシ内のリージョン間論理パーティションです。Oracle Cloudリソースの使用割当てを編成、制御および設定するには、コンパートメントを使用します。特定のコンパートメントでは、アクセスを制御し、リソースの権限を設定するポリシーを定義します。

  • コンテナ・レジストリ

    Oracle Cloud Infrastructure Registryは、本番ワークフローを簡素化できる、Oracle管理のレジストリです。レジストリを使用すると、Dockerイメージなどの開発アーティファクトを簡単に格納、共有および管理できます。Oracle Cloud Infrastructureの高可用性とスケーラビリティのアーキテクチャにより、アプリケーションを確実にデプロイして管理できます。

  • フォルト・ドメイン

    フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各アベイラビリティ・ドメインに3つのフォルト・ドメインがあり、電源とハードウェアは独立しています。複数のフォルト・ドメインにリソースを分散する場合、アプリケーションは、物理サーバーの障害、システム・メンテナンスおよびフォルト・ドメイン内の電源障害を許容できます。

  • アイデンティティおよびアクセス管理(IAM)

    Oracle Cloud Infrastructure Identity and Access Management(IAM)は、Oracle Cloud Infrastructure(OCI)およびOracle Cloud Applicationsのアクセス・コントロール・プレーンです。IAM APIおよびユーザー・インタフェースを使用すると、アイデンティティ・ドメインおよびアイデンティティ・ドメイン内のリソースを管理できます。各OCI IAMアイデンティティ・ドメインは、スタンドアロンのアイデンティティおよびアクセス管理ソリューション、または異なるユーザー集団を表します。

  • インターネット・ゲートウェイ

    インターネット・ゲートウェイは、VCN内のパブリック・サブネットとパブリック・インターネット間のトラフィックを許可します。

  • ロード・バランサ

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

  • ロギング
    Loggingは、クラウド内のリソースから次のタイプのログへのアクセスを提供する、高度にスケーラブルな完全管理型のサービスです:
    • 監査ログ: 監査サービスによって発行されたイベントに関連するログ。
    • サービス・ログ: APIゲートウェイ、イベント、ファンクション、ロード・バランシング、オブジェクト・ストレージ、VCNフロー・ログなどの個々のサービスによって発行されるログ。
    • カスタム・ログ: カスタム・アプリケーション、他のクラウド・プロバイダまたはオンプレミス環境からの診断情報を含むログ。
  • ネットワークアドレス変換(NAT)ゲートウェイ

    NATゲートウェイを使用すると、VCN内のプライベート・リソースは、受信インターネット接続にこれらのリソースを公開することなく、インターネット上のホストにアクセスできます。

  • OCI Kubernetes Engine

    Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes EngineまたはOKE)は、コンテナ化されたアプリケーションをクラウドにデプロイするために使用できる、完全に管理されたスケーラブルで可用性の高いサービスです。アプリケーションで必要なコンピュート・リソースを指定すると、KubernetesエンジンがそれらをOracle Cloud Infrastructureの既存のテナンシにプロビジョニングします。OKEは、Kubernetesを使用して、ホストのクラスタにわたるコンテナ化されたアプリケーションのデプロイメント、スケーリングおよび管理を自動化します。

  • リージョン

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

  • セキュリティ・リスト

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

  • サービス・ゲートウェイ

    サービス・ゲートウェイは、VCNからOracle Cloud Infrastructure Object Storageなどの他のサービスへのアクセスを提供します。The traffic from the VCN to the Oracle service travels over the Oracle network fabric and does not traverse the internet.

  • Tenancy

    テナンシは、Oracle Cloud Infrastructureのサインアップ時にOracle Cloud内でOracleによって設定される、セキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、編成および管理できます。テナンシは、会社または組織と同義です。通常、会社は1つのテナンシを持ち、そのテナンシ内の組織構造を反映します。通常、1つのテナンシは1つのサブスクリプションに関連付けられ、1つのサブスクリプションには通常、1つのテナンシのみが含まれます。

  • TimesTenオペレータ

    TimesTenオペレータには、Kubernetes環境でのTimesTenデータベースの管理に役立ついくつかの主要な機能があります。TimesTenデータベースは、Kubernetes構成ファイルでカスタム・リソースとしてモデル化されます。オペレータはこの構成とKubernetes APIを使用して、プロビジョニング、フェイルオーバー、パッチ適用、セキュリティなどのTimesTenデータベース操作を自動化します。

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

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

レコメンデーション

次の推奨事項を開始点として使用します。 お客様の要件は、ここで説明するアーキテクチャとは異なる場合があります。
  • 要塞

    権限のあるユーザーのみが要塞セッションを作成できることを確認します。このアーキテクチャ・リファレンスでは、Bastionは、TimesTenデータベースがデプロイされているワーカー・ノードへのKubernetes APIエンドポイントおよびSSHへのセキュアなアクセスを提供します。

  • クラウド・ガード

    Oracleが提供するデフォルトのレシピをクローニングおよびカスタマイズして、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピを使用すると、警告を生成するセキュリティ違反のタイプ、およびそれらに対して実行を許可するアクションを指定できます。たとえば、可視性がpublicに設定されているオブジェクト・ストレージ・バケットを検出できます。

    クラウド・ガードをテナンシ・レベルで適用して、最も広い範囲をカバーし、複数の構成を維持する管理上の負担を軽減します。

    管理対象リスト機能を使用して、特定の構成をディテクタに適用することもできます。

  • コンテナ・レジストリ

    必要なIAMポリシーが作成され、認可されたユーザーのみがコンテナ・レジストリのリポジトリにアクセスできることを確認します。

  • ロード・バランサの帯域幅

    ロード・バランサの作成時に、固定帯域幅を提供する事前定義済のシェイプを選択するか、帯域幅範囲を設定するカスタム(フレキシブル)シェイプを指定して、トラフィック・パターンに基づいて帯域幅を自動的にスケーリングできます。どちらの方法でも、ロード・バランサの作成後にいつでもシェイプを変更できます。

  • セキュリティ

    Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティを事前対策的にモニターおよびメンテナンスします。クラウド・ガードでは、定義できるディテクタ・レシピを使用して、リソースにセキュリティの弱点がないか確認し、オペレータおよびユーザーに特定のリスクのあるアクティビティがないか監視します。構成の誤りまたはセキュアでないアクティビティが検出されると、クラウド・ガードは修正アクションを推奨し、ユーザーが定義できるレスポンダ・レシピに基づいてそれらのアクションの実行を支援します。

    最大限のセキュリティーを必要とするリソースの場合、Oracleではセキュリティーゾーンを使用することをお勧めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースにパブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。リソースをセキュリティ・ゾーンで作成および更新すると、Oracle Cloud Infrastructureでは、その操作がセキュリティ・ゾーン・レシピのポリシーに対して検証され、ポリシーに違反する操作が拒否されます。

  • VCN

    VCNを作成するときには、必要なCIDRブロックの数を決定し、VCN内のサブネットにアタッチする予定のリソースの数に基づいて各ブロックのサイズを決定します。標準のプライベートIPアドレス領域内にあるCIDRブロックを使用します。

    プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。

    VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。

    サブネットを設計するときには、トラフィック・フローおよびセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能できる同じサブネットにアタッチします。

    リージョナル・サブネットを使用します。

考慮事項

このリファレンス・アーキテクチャをデプロイする場合は、次の点を考慮してください。

  • 可用性

    一般に、近くにあるリソースの使用は遠くにあるリソースの使用よりも高速であるため、アプリケーションは、それが最も頻繁に使用されるリージョンにデプロイします。同じリージョン内の可用性ドメインは、低レイテンシ、高帯域幅ネットワークを使用して相互に接続します。このネットワークは、インターネットおよびオンプレミス機器への高可用性接続を提供するため、レプリケートされたシステムを、高可用性とディザスタ・リカバリの両方の複数の可用性ドメインに構築できます。

  • コンテナ・レジストリ

    このアーキテクチャでは、内部使用のためにコンテナ・レジストリをプライベートDockerレジストリとしてデプロイします。Dockerイメージはレジストリにプッシュおよびプルされます。コンテナ・レジストリをパブリックDockerレジストリとして使用することもできます。これにより、インターネットにアクセスし、適切なURLの知識を持つユーザーはOCIのパブリック・リポジトリからイメージをプルできます。このアーキテクチャでは、コンテナ・レジストリのリポジトリを使用して、TimesTenのイメージを格納します。これには、TimesTenオペレータをデプロイし、TimesTenデータベースを作成するために必要なYAMLマニフェスト・ファイルおよびHelmチャートが含まれます。

  • セキュリティ

    ポリシーを使用して、OCIリソースにアクセスできるユーザーを制限します。

デプロイ

Oracle Cloud Marketplaceには、TimesTenオペレータをOKEクラスタまたはオンプレミス・インフラストラクチャにデプロイするために使用できるTimesTenのコンテナ・イメージが用意されています。

Oracle Cloud MarketplaceからTimesTenコンテナ・イメージを取得します:

  1. Oracle Cloud Marketplaceに移動します。
  2. 「パッケージのエクスポート」をクリックします。
  3. 画面の指示に従います。

確認

  • 作成者: Ricardo Rosas

  • 貢献者: Dario Vega氏、Daniel Ramirez氏、Deborah Steiner氏、Silviano Diaz Barriga氏