OCI検索サービスをOpenSearchとともに使用して、アプリケーション内検索を構築します
Oracle Cloud Infrastructure Search ServiceとOpenSearchでは、大量のデータセットでも結果をミリ秒単位で返すことができるアプリケーション内検索を作成できます。
- 検索エンジン・デーモン: OpenSearch。
- ビジュアライゼーションおよびユーザー・インタフェース: OpenSearchダッシュボード。
アーキテクチャ
アプリケーション内検索のスピードを速めるためにOpenSearchを使用したOCI検索サービスでのアプリケーション・データの格納および索引付けは、ここで説明するアーキテクチャ・トポロジおよび補完に依存します。
次の図は、この参照アーキテクチャを示しています。
アーキテクチャには次のコンポーネントがあります。
- テナント
テナンシは、OCIにサインアップする際にOracle Cloud内でOracleが設定する、セキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、整理および管理できます。
- ポリシー
OCI Identity and Access Managementポリシーでは、誰がどのリソースにアクセスできるか、および方法を指定します。アクセスはグループ・レベルおよびコンパートメント・レベルで付与されます。つまり、特定のコンパートメントまたはテナンシ内の特定のアクセスのタイプをグループに付与するポリシーを作成できます。
- コンパートメント
コンパートメントは、OCIテナンシ内のリージョン間論理パーティションです。コンパートメントを使用してOracle Cloud内のリソースを編成し、リソースへのアクセスを制御し、使用割当てを設定します。特定のコンパートメント内のリソースへのアクセスを制御するには、誰がリソースにアクセスできるか、および誰が実行できるアクションを指定するポリシーを定義します。
- 仮想クラウド・ネットワーク(VCN)
OCIの最初のステップの1つは、クラウド・リソースの仮想クラウド・ネットワーク(VCN)を設定することです。VCNは、OCIリージョンに設定したソフトウェア定義ネットワークです。VCNはサブネットに分割できます。サブネットはリージョンまたは可用性ドメインに固有です。リージョン固有および可用性ドメイン固有のサブネットの両方が同じVCN内に共存できます。サブネットはパブリックまたはプライベートにできます。
- 可用性ドメイン
アベイラビリティ・ドメインは、リージョン内のスタンドアロンで独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。アベイラビリティ・ドメインは電源や冷却、内部アベイラビリティ・ドメイン・ネットワークなどのインフラを共有しません。そのため、1つの可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインには影響しません。
- フォルト・ドメイン
フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラのグループです。アベイラビリティ・ドメインごとに3つのフォルト・ドメインがあり、独立した電源とハードウェアです。複数のフォルト・ドメインにリソースを分散する場合、アプリケーションは、物理サーバーの障害、システムのメンテナンス、およびフォルト・ドメイン内の電源障害を許容できます。
- Bastionホスト
要塞ホストは、クラウド外のトポロジに対する安全で制御されたエントリ・ポイントとして機能するコンピュート・インスタンスです。プライベート・ネットワークに配置されている機密リソースにアクセスでき、クラウドの外部から直接アクセスすることはできません。トポロジには、定期的に監視および監査できる単一の既知のエントリ・ポイントがあります。そのため、トポロジへのアクセスを損なうことなく、より機密性の高いコンポーネントの表示を回避できます。
- ロード・バランサ
ロード・バランサは、データ・ノードへの索引操作と、マスター・ノードへのKibanaアクセスのバランスをとります。2つのリスナーを使用します。1つはKibana用、もう1つは索引データ・アクセス用、マスター・ノードのバック・エンドおよびデータ・ノードのバック・エンド用です。ロード・バランサは、パブリックIPアドレスを持つパブリック・サブネットにあります。
- コンピュート・インスタンス
OCI Computeでは、コンピュート・ホストのプロビジョニングと管理が可能です。リソース要件(CPU、メモリー、ネットワーク帯域幅およびストレージ)を満たすシェイプでコンピュート・インスタンスを起動できます。コンピュート・インスタンスの作成後、セキュアにアクセスしたり、再起動したり、ボリュームのアタッチとデタッチを行ったり、不要なときに終了したりできます。
- インターネットゲートウェイ
インターネット・ゲートウェイによって、VCNのパブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。
- 動的ルーティング・ゲートウェイ(DRG)
DRGは、オンプレミス・ネットワークとVCNの間のプライベート・ネットワーク・トラフィックのパスを提供する仮想ルーターであり、同じリージョン内またはリージョン間でVCN間でトラフィックをルーティングする場合にも使用できます。
- 金庫
OCI Vaultにより、お客様のデータや、クラウド内のリソースへのアクセスを保護するために使用するシークレット資格証明を保護する暗号化キーを集中管理できます。
- VPN
Site-to-Site VPNは、オンプレミス・ネットワークとOCI内のVCN間のサイト間IPSec VPN接続を提供します。IPSecプロトコル・スイートは、パケットがソースから宛先に転送される前にIPトラフィックを暗号化し、到着時にトラフィックを復号化します。
- アプリケーション
アーキテクチャのアプリケーションが簡略化され、モノリシック・アプリケーションを示しています。複数層アプリケーションの場合、バックエンドはOpenSearchを使用してOCI検索サービスに接続します。分散アプリケーションの場合、大量のデータを格納するサービスであり、他のサービスまたはユーザーが検索を行う必要があるサービスです。
推奨
- VCN
VCNを作成する際、必要なCIDRブロックの数と、VCNのサブネットにアタッチする予定のリソース数に基づいて各ブロックのサイズを決定します。標準のプライベートIPアドレス領域内にあるCIDRブロックを使用します。
プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは他のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。
サブネットを設計する際は、トラフィック・フローおよびセキュリティ要件を考慮してください。セキュリティ境界として機能する、特定の層またはロール内のすべてのリソースを同じサブネットにアタッチします。
- セキュリティ
ポリシーを使用して、会社が所有するOCIリソースにアクセスできるユーザーと、そのアクセス方法を制限します。OpenSearchクラスタの作成でOCI検索サービスを成功させるには、特定のポリシーが必要です。ボールトを使用して、キー、証明書およびシークレットをさらに保護します。
ネットワーキング・サービスには、セキュリティ・ルールを使用してパケット・レベルでトラフィックを制御する2つの仮想ファイアウォール機能(セキュリティ・リストおよびネットワーク・セキュリティ・グループ(NSG)があります。NSGは、単一のVCN内の選択したセットのVNICのみに適用される一連のイングレスおよびエグレス・セキュリティ・ルールで構成されます。たとえば、VCN内の複数層アプリケーションのWeb層でWebサーバーとして機能するすべてのコンピュート・インスタンスを選択できます。
NSGセキュリティ・ルールはセキュリティ・リスト・ルールと同様に機能します。ただし、NSGセキュリティ・ルールのソースまたは宛先では、CIDRブロックのかわりにNSGを指定できます。そのため、セキュリティ・ルールを記述して、同じVCN内の2つのNSG間のトラフィック、または1つのNSG内のトラフィックを簡単に制御できます。
- コンピュート
適切なOCPUとメモリーの組合せでシェイプを選択し、各インスタンスに対して必要に応じてローカルNVMeまたはブロック・ストレージをプロビジョニングします。
注意事項
クラウド・アプリケーションにアプリケーション内検索機能を作成するためにOpenSearchとともにOCI検索サービスを使用する場合は、これらのオプションを考慮してください。
- ORMのOpenSearchプラグインが見つからない場合は、ElasticSearch 7.10.2互換プラグインを検索するか、REST APIを使用します。
- 検索テンプレートを作成して、ユーザーの検索クエリーと定義済みの検索パラメータを組み合わせます。
- ローカル・マシンからOpenSearchを使用してOCI検索サービスに接続するには、パブリック・サブネットに要塞ホストを設定し、エンドポイントにアクセスするためのSSHポート転送を設定します。または、VPNを介してエンドポイントにアクセスします。プライベート・サブネットに存在するアプリケーション・インスタンスには、要塞ホストからアクセスすることもできます。
