クラウド内のMySQL Databaseに接続されたWordPress CMSの設定

プログラミングやデータベース管理の程度を必要とせずに、クラウドで最新のWebサイトを作成および管理します。WordPressプラットフォームのユーザー・フレンドリな機能と、Oracle Cloud InfrastructureでWebページおよびブログをホストする柔軟性およびコスト面での利点を活用します。

アーキテクチャ

このアーキテクチャでは、WordPress CMSおよびOracle MySQL Database ServiceOracle Cloud Infrastructure (OCI)にデプロイします。

WordPressは、単一ノードにデプロイすることも、マルチノードHA構成の一部としてデプロイすることもできます。このリファレンス・アーキテクチャには、両方の構成と互換性のあるTerraformの自動化が含まれています。

複雑なマルチノード高可用性環境の場合は、プライマリおよびスタンバイ・ロード・バランサおよびすべてのWordPressノードの共有Oracle Cloud Infrastructure File Storageサービス(管理対象NFSサービス)を持つ複数のフォルト・ドメインにWordPressノードをデプロイします。

次の図は、このマルチノードアーキテクチャーを示しています。

oci-arch-wordpress-mds.pngの説明が続きます
図oci-arch-wordpress-mds.pngの説明

oci-arch-wordpress-mds-oracle.zip

マルチノード環境を構成する場合は、次の操作を実行できます。

  • WordPressレイヤー・ノードの数を定義します。
  • パブリック・ロード・バランサをデプロイし、プライベート・サブネットのWordPressノードを非表示にします。
  • BastionホストまたはBastionサービスをデプロイして、プライベート・リソースにアクセスします。
  • WordPressコンテンツ(ノード間の共有アップロード、プラグインおよびテーマ)の共有NFSストレージで、Oracle Cloud Infrastructure File Storageサービスを使用します。

次の図は、単純な単一ノード・アーキテクチャを示しています。軽量デプロイメントで構成され、学習目的に適しているか、概念実証として機能する可能性があります。

deploy-wordpress-cms-mysql-dbs.pngの説明が続きます
図deploy-wordpress-cms-mysql-dbs.pngの説明

Deploy-wordpress-cms-mysql-dbs-oracle.zip

アーキテクチャーには次のコンポーネントの一部またはすべてが含まれます。

  • リージョン

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

  • 可用性ドメイン

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

  • フォルト・ドメイン

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

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

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

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

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

  • ネットワーク・アドレス変換(NAT)ゲートウェイ

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

  • ネットワーク・セキュリティ・グループ(NSG)

    NSGは、クラウド・リソースの仮想ファイアウォールとして機能します。Oracle Cloud Infrastructureのゼロ信頼セキュリティ・モデルでは、すべてのトラフィックが拒否され、VCN内のネットワーク・トラフィックを制御できます。NSGは、単一のVCN内の指定されたVNICのセットにのみ適用されるイングレス・セキュリティ・ルールおよびエグレス・セキュリティ・ルールのセットで構成されます。

  • セキュリティ・リスト

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

  • Oracle MySQLデータベース・サービス

    Oracle MySQL Database Serviceは、開発者がセキュアなクラウド・ネイティブ・アプリケーションを迅速に開発およびデプロイできる完全管理型のOracle Cloud Infrastructure (OCI)データベース・サービスです。OCI向けに最適化され、OCIでのみ使用可能なMySQL Database Serviceは、OCIおよびMySQLエンジニアリング・チームによって100%構築、管理およびサポートされています。

    この参照アーキテクチャでは、Oracle MySQL Database Serviceは仮想マシンにデプロイされ、WordPressのコンテンツ情報をホストするために使用されます。デプロイメントがクラスタ内にありません。

  • ファイル・ストレージ

    Oracle Cloud Infrastructure File Storage Serviceでは、永続的でスケーラブルなセキュアなエンタープライズ規模のネットワーク・ファイル・システムを提供します。VCNのベア・メタル、仮想マシンまたはコンテナ・インスタンスからファイル・ストレージ・サービスのファイル・システムに接続できます。Oracle Cloud Infrastructure FastConnectおよびIPSec VPNを使用して、VCNの外部からファイル・システムにアクセスすることもできます。

  • WordPressコンテンツ管理システム(CMS)

    WordPress CMSを使用すると、フル・ブラウン・ブログ・サイトまたは汎用Webサイトを構築できます。このアーキテクチャでは、通常のコンピュート・インスタンスを使用してWordPress CMSエンジンをデプロイします。

  • ロード・バランサ

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

  • Bastionサービス

    Oracle Cloud Infrastructure Bastionは、パブリック・エンドポイントがなく、ベア・メタルおよび仮想マシン、Oracle MySQL Database ServiceAutonomous Transaction Processing (ATP)、Oracle Container Engine for Kubernetes (OKE)、およびSecure Shell Protocol (SSH)アクセスを許可するその他のリソースも必要とする、リソースに対して制限されたセキュアなアクセスを提供します。Oracle Cloud Infrastructure Bastionサービスでは、ジャンプ・ホストをデプロイおよび保守せずに、プライベート・ホストへのアクセスを有効にできます。さらに、アイデンティティ・ベースの権限、および集中管理、監査および時間制限のあるSSHセッションにより、セキュリティ状況を改善できます。Oracle Cloud Infrastructure Bastionは、バスティング・アクセス用のパブリックIPが不要になり、リモート・アクセスを提供するときに攻撃対象領域が減少します。

  • Compute

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

推奨事項

WordPressをデプロイするための開始点として、次の推奨事項を使用します。 実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。
  • VCN

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

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

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

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

  • セキュリティ・リスト

    セキュリティ・リストを使用して、サブネット全体に適用されるイングレス・ルールおよびエグレス・ルールを定義します。

  • コンピュート・シェイプ

    このアーキテクチャでは、WordPress CMS用のVM.Standard2.1シェイプのOracle Linux 7.8 OSイメージを使用します。アプリケーションのリソース・ニーズが異なる場合は、別のシェイプを選択できます。

  • Oracle MySQLデータベース・サービス

    このアーキテクチャでは、WordPress CMSはリレーショナル・データをOracle MySQL Database Serviceに格納します。最新バージョンを使用することをお勧めします。

注意事項

Oracle CloudにWordPressをデプロイする場合、スケーラビリティ、可用性およびバックアップについて次の点を考慮してください。

  • WordPress CMSのスケーラビリティ

    インスタンス・プールおよび自動スケーリング機能を使用して、WordPress CMSをスケーリングできます。

    インスタンス・プールを使用すると、同じリージョン内の同じ構成に基づいて複数のコンピュート・インスタンスをプロビジョニングおよび作成できます。

    自動スケーリングでは、CPU使用率などのパフォーマンス・メトリックに基づいて、インスタンス・プール内のコンピュート・インスタンスの数を自動的に調整できます。自動スケーリングは、高い需要期間中のユーザーに一貫したパフォーマンスを提供し、低い需要期間中のコストを削減するのに役立ちます。

  • Oracle MySQL Database Serviceのスケーラビリティ

    計画済ワークロードに基づいて、Oracle MySQL Database Serviceのマシンのシェイプを選択します。

  • アプリケーションの可用性

    フォルト・ドメインは、可用性ドメイン内で最高の回復力を提供します。可用性を高める必要がある場合は、複数の可用性ドメインまたは複数のリージョンの使用を検討してください。

  • Oracle MySQL Database Serviceのバックアップ

    MySQL Database Serviceでは、データベース・システムに含まれるすべてのデータの全体バックアップと、最後の全体バックアップ以降に追加または変更されたデータのみの増分バックアップの2つのタイプのバックアップがサポートされます。バックアップは次の方法で実行されます。

    • 手動:コンソールでのアクションまたはAPIを介したリクエストによってバックアップが開始されます。手動バックアップは、最低でも1日、最大で365日間保持できます。

    • 自動:自動的にスケジュールされたバックアップは、ユーザーが選択した時点で必要な対話なしで実行されます。自動バックアップは、1日から35日の間保持されます。保存期間のデフォルト値は7日間です。定義した場合、自動バックアップの保存期間は編集できません。

    バックアップの計算

    Oracle Cloud Infrastructure Block Volumesサービスを使用すると、ブロック・ボリューム上のデータのPoint - in - Timeバックアップを作成できます。その後、これらのバックアップを新しいボリュームに即時または後でリストアできます。

    このサービスを使用して、アプリケーションを中断または停止することなく、ブート・ボリュームのPoint - in - Timeのクラッシュ一貫性バックアップを作成することもできます。ブート・ボリューム・バックアップ機能は、ブロック・ボリューム・バックアップ機能と同じです。

  • セキュリティ・ポリシー

    ポリシーを使用して、会社が所有するOracle Cloud Infrastructure (OCI)リソースにアクセスできるユーザーとその方法を制限します。

  • ネットワーク・セキュリティ

    ネットワーキング・サービスには、パケット・レベルでトラフィックを制御するためにセキュリティ・ルールを使用する2つの仮想ファイアウォール機能(セキュリティ・リストとネットワーク・セキュリティ・グループ(NSG))が用意されています。NSGは、単一のVCNで選択したVNICのセットにのみ適用されるイングレス・セキュリティ・ルールおよびエグレス・セキュリティ・ルールのセットで構成されます。たとえば、VCNの複数層アプリケーションのWeb層でWebサーバーとして機能するすべてのコンピュート・インスタンスを選択できます。

    NSGセキュリティ・ルールは、セキュリティ・リスト・ルールと同様に機能します。ただし、NSGセキュリティ・ルールのソースまたは宛先には、CIDRブロックのかわりにNSGを指定できます。そのため、同じVCN内の2つのNSG間のトラフィックまたは単一のNSG内のトラフィックを制御するセキュリティ・ルールを簡単に記述できます。データベース・システムを作成するときに、1つ以上のNSGを指定できます。1つ以上のNSGを使用するように既存のデータベース・システムを更新することもできます。

デプロイ

このリファレンス・アーキテクチャのTerraformコードは、GitHubで入手できます。シングルクリックでコードをOracle Cloud Infrastructure Resource Managerにプルし、スタックを作成してデプロイできます。または、Terraform CLIを使用して、GitHubからコンピュータにコードをダウンロードし、コードをカスタマイズし、アーキテクチャをデプロイすることもできます。

  • Oracle Cloud Infrastructure Resource Managerのサンプル・スタックを使用してデプロイします。
    1. Oracle Cloudにデプロイをクリックます

      まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。

    2. 条件をレビューして受け入れます。
    3. スタックをデプロイするリージョンを選択します。
    4. 画面に表示されるプロンプトと指示に従ってスタックを作成します。
    5. スタックの作成後、「Terraformアクション」をクリックし、「プラン」を選択します。
    6. ジョブが完了するまで待機し、計画を確認します。

      変更するには、「Stack Details」ページに戻り、「Edit Stack」をクリックして、必要な変更を行います。次に、プラン処理を再度実行します。

    7. これ以上変更が必要ない場合は、「Stack Details」ページに戻り、「Terraform Actions」をクリックして「Apply」を選択します。
  • GitHubでTerraformコードを使用してデプロイします。
    1. GitHubに移動します。
    2. リポジトリをローカル・コンピュータにクローニングまたはダウンロードします。
    3. READMEドキュメントの手順に従います。
  • MySQLデータベースを使用したOracle LinuxへのWordPress CMSのインストールのチュートリアルを使用してデプロイします。

詳細の検討

Oracle Cloud Infrastructureベスト・プラクティスおよびOracle MySQL Database Serviceの詳細を参照してください。

次の追加リソースを確認してください。

変更ログ

このログには、重大な変更がリストされます。