Redisを使用した高可用性分散キャッシュのデプロイ
Redisは、データベース、キャッシュおよびメッセージ・ブローカとして使用される、オープン・ソースのインメモリー・データ構造ストアです。文字列、ハッシュ、リスト、セット、範囲問合せによるソート・セット、ビットマップ、HyperLogLogs、半径問合せによる地理空間索引、ストリームなどのデータ構造をサポートします。
ノート:
OCIは、独自のフルマネージドRedisサービスを提供しています。詳細は、Redisを使用したOCIキャッシュ・サービス・ページを参照してください。アーキテクチャ
このリファレンス・アーキテクチャでは、Oracle Cloud Infrastructure ComputeインスタンスでのRedisクラスタの一般的な6ノード・デプロイメントを示します。
次の図は、この参照アーキテクチャを示しています。

図redis-oci-png.pngの説明
このアーキテクチャには、次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。地域は他の地域から独立しており、広大な距離で(国または大陸間で)分離できます。
- 可用性ドメイン
可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。可用性ドメインは、電源や冷却などのインフラストラクチャや内部可用性ドメイン・ネットワークを共有しません。したがって、ある可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインに影響する可能性はほとんどありません。
- フォルト・ドメイン
フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各アベイラビリティ・ドメインには、独立した電源とハードウェアを備えた3つのフォルト・ドメインがあります。複数のフォルト・ドメインにリソースを分散する場合、アプリケーションでは、フォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害を許容できます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定するカスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNを使用すると、ネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNは、リージョンまたは可用性ドメインにスコープ指定できるサブネットにセグメント化できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレス範囲で構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックまたはプライベートにできます。
このアーキテクチャでは、Redisクラスタをホストするすべてのコンピュート・インスタンスが単一のリージョナル・サブネットにアタッチされます。
- セキュリティ・リスト
サブネットごとに、サブネット内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
このアーキテクチャでは、TCPポート16379および6379のイングレス・ルールが追加されます。ポート6379はRedisクライアントにサービスを提供し、ポート16379はRedisクラスタ・バスによって使用されます。
お薦め
実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。開始点として次の推奨事項を使用します。
- コンピュート・シェイプ
このアーキテクチャーは、VM.Standard2.2シェイプのOracle Linux 7.6 OSイメージを使用します。アプリケーションでより多くのメモリー、コアまたはネットワーク帯域幅が必要な場合は、別のシェイプを選択できます。
- VCN
VCNを作成する場合、VCNのサブネットにアタッチする予定のリソースの数に基づいて、必要なCIDRブロックの数と各ブロックのサイズを決定します。標準のプライベートIPアドレス空間内にあるCIDRブロックを使用します。
プライベート接続を設定する予定の他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ内)と重複しないCIDRブロックを選択します。
VCNを作成した後、CIDRブロックを変更、追加および削除できます。
サブネットを設計する際には、トラフィック・フローとセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能する同じサブネットにアタッチします。
リージョナル・サブネットを使用します。
注意事項
- 拡張性
Redisクラスタの可用性を確保するために必要なノードの最小数は、3つのマスター・ノードです。このアーキテクチャでは、3つのマスター・ノードと3つのレプリカ・ノードがデプロイされます。アプリケーションのパフォーマンスまたは高可用性の要件を満たすために、より多くのノードが必要になる場合があります。
コンピュート・ノードを追加することで、Redisクラスタを水平方向にスケーリングできます。
各コンピュート・ノードのVMシェイプを変更することで、Redisクラスタを垂直方向にスケーリングできます。コア数が多いシェイプを選択すると、コンピュート・インスタンスおよびネットワーク帯域幅に割り当てられるメモリーも増加します。
- アプリケーションの可用性
フォルト・ドメインは、単一の可用性ドメイン内で最高のリジリエンシを提供します。このアーキテクチャでは、高可用性に対する別のアプローチを使用して、複数の可用性ドメインを持つリージョンで同じタスクを実行するコンピュート・インスタンスをデプロイします。この設計では、冗長性を導入することで単一点障害を解消します。
アーキテクチャのデプロイ後、PuTTYやGit BashなどのSSHツールを使用してRedisノードのパブリックIPアドレスに接続できます。Redisコマンドライン・インタフェースredis - cliを使用して、Redisデプロイメントと対話できます。
- COSTS
データベースに必要なコア、メモリーおよびネットワーク帯域幅に基づいて、仮想マシン(VM)シェイプを選択します。Redisノードのパフォーマンス、メモリーまたはネットワーク帯域幅を増やす必要がある場合は、1つのコア・シェイプから始めて、後でVMシェイプを変更できます。
デプロイ
この参照アーキテクチャをデプロイするために必要なコードは、GitHubで入手できます。シングルクリックでOracle Cloud Infrastructure Resource Managerにコードをプルし、スタックを作成してデプロイできます。または、Terraform CLIを使用して、GitHubからコンピュータにコードをダウンロードし、コードをカスタマイズして、アーキテクチャをデプロイします。
- Oracle Cloud Infrastructure Resource Managerを使用してデプロイします。
をクリックします。
まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。
- 条件をレビューして受け入れます。
- スタックをデプロイするリージョンを選択します。
- 画面に表示されるプロンプトと指示に従ってスタックを作成します。
- スタックの作成後、「Terraformアクション」をクリックし、「プラン」を選択します。
- ジョブが完了するまで待機し、計画を確認します。
変更するには、スタック詳細ページに戻り、「スタックの編集」をクリックして、必要な変更を行います。次に、プラン処理を再度実行します。
- これ以上変更が必要ない場合は、「Stack Details」ページに戻り、「Terraform Actions」をクリックして「Apply」を選択します。
- Terraform CLIを使用してデプロイします。
- GitHubに移動します。
- コードをローカル・コンピュータにダウンロードまたはクローニングします。
README.md
の手順に従います。