2022年12月に GA となった OCI Container Instances を利用して、WordPress を動かしてみようと思います。
What is OCI Container Instances ?
OCI Container Instances は、コンテナ用に最適化されたサーバレス・コンピューティングでアプリケーションを実行できます。ダッシュボード(Web UI)からコンピュートシェイプ、リソース割り当て、ネットワーク構成をプロビジョニングして、複数のコンテナをローンチできます。
Kubernetes をはじめとするコンテナ・オーケストレーション・プラットフォームを必要としないコンテナベースのワークロードに適したサービスです。
料金については、OCI Compute と同価格の CPU とメモリーリソースに対して発生します。
本記事では、以下 Reference Architecture にある、OCI Container Instances 上で WordPress をデプロイする流れを辿ってみます。
Provisioning
実際に環境構築を行います。
ハンバーガーメニューをクリックします。
「開発者サービス」-「コンテナ・インスタンス」を選択します。
「コンテナ・インスタンスの作成」ボタンをクリックします。
以下画像赤枠の箇所を変更します。それ以外はデフォルト値にしています。
- 「名前」:container-instance-wordpress
- 「メモリー量(GB)を選択します」:4
以下画像赤枠の箇所を変更します。それ以外はデフォルト値にしています。 - 「ホスト名 オプション」:wordpress
- 「コンテナ再起動ポリシー」:常時
「次」ボタンをクリックします。
WordPress のデータベースを構成する MySQL イメージを設定します。最初に、「Name オプション」を「db」と入力します。そして、「イメージの選択」ボタンをクリックします。 - 「Name オプション」:db
「外部レジストリ」タブを選択して、以下の設定を行います。 - 「イメージ」:mysql
- 「タグ」:8.0.30
タブですが、「OCIコンテナ・レジストリ」は、OCI のコンテナレジストリ(OCIR)に格納されているイメージを設定できます。「外部レジストリ」は、パブリックサービスなどのコンテナレジストリを設定できます。デフォルトでは、Docker Hub となっています。
「別のレジストリを選択してください」のチェックボックスを有効にすると Docker Hub 以外のコンテナ・レジストリを設定できます。ここでは、「別のレジストリを選択してください」のチェックボックスを無効として、デフォルトの Docker Hub にある MySQL の公式コンテナイメージを使用します。
「イメージの選択」ボタンをクリックします。
以下の環境変数を設定します。WordPress 用のデータベース設定です。最初に、「+ 別の変数」ボタンを3回クリックして、その後設定値を入力します。 - 「MYSQL_ROOT_PASSWORD」:somewordpress
- 「MYSQL_DATABASE」:wordpress
- 「MYSQL_USER」:wordpress
- 「MYSQL_PASSWORD」:wordpress
次に「拡張オプションの表示」テキストをクリックします。
「リソース」タブでは、コンテナで消費されるリソース量を指定できます。ここでは、デフォルト値とします。次に「起動オプション」タブを選択します。
MySQL 8.04 以降、caching_sha2_password プラグインを利用した認証方式がデフォルトとなりました。ここでは、従来の認証方式のプラグイン mysql_native_password に変更します。 - 「エントリポイント引数」:--default-authentication-plugin=mysql_native_password
「+ 別のコンテナ」ボタンをクリックします。
次は、wordpress アプリケーションのコンテナイメージの設定を行います。「Name オプション」を「app」と入力します。そして、「イメージの選択」ボタンをクリックします。 - 「Name オプション」:app
「外部レジストリ」タブを選択して、以下の設定を行います。WordPress は latest のコンテナイメージを利用するため、タグの指定はしません。 - 「イメージ」:wordpress
「イメージの選択」ボタンをクリックします。
以下の環境変数を設定します。WordPress アプリケーションが MySQL に接続するために必要な設定です。最初に、「+ 別の変数」ボタンを3回クリックして、その後設定値を入力します。 - 「WORDPRESS_DB_HOST」:127.0.0.1
- 「WORDPRESS_DB_USER」:wordpress
- 「WORDPRESS_DB_PASSWORD」:wordpress
- 「WORDPRESS_DB_NAME」:wordpress
「次」ボタンをクリックします。
設定内容を確認します。
「作成」ボタンをクリックします。
設定した app と db のコンテナが作成されます。
Create Netowrk Security Group
デフォルトでは、80ポートを使用したWebアクセスが許可されていないので、ネットワーク・セキュリティ・グループを作成して、ブラウザからアクセスできるように設定します。
ハンバーガーメニューをクリックします。
「ネットワーキング」-「仮想クラウド・ネットワーク」を選択します。
対象の VCN を選択します。
左にあるリソースメニューから「ネットワーク・セキュリティ・グループ」を選択します。
「ネットワーク・セキュリティ・グループの作成」ボタンをクリックします。
以下の設定を行います。
- 「名前」:container-instances
「次」ボタンをクリックします。
以下の設定を行います。 - 「ソース・タイプ」:CIDR
- 「ソースCIDR」:0.0.0.0/0
- 「IPプロトコル」:TCP
- 「ソース・ポート範囲」:All
- 「宛先ポート範囲」:80
「作成」ボタンをクリックします。
設定されたことを確認します。
作成したコンテナ・インスタンスに、このネットワーク・セキュリティ・グループを適用します。
ハンバーガーメニューをクリックします。
「開発者サービス」-「コンテナ・インスタンス」を選択します。
対象のコンテナ・インスタンスを選択します。
「編集」リンクテキストをクリックします。
作成したネットワーク・セキュリティ・グループ「container-instances」を選択して、「変更の保存」ボタンをクリックします。
「パブリックIPアドレス」の「コピー」リンクテキストをクリックします。
ブラウザを起動してコピーしたパブリックIPアドレスにアクセスして、WordPress 初期セットアップ画面が表示されることを確認します。
WordPress Set Up
「日本語」を選択して、「次へ」ボタンをクリックします。
任意の情報を設定して、「WordPress をインストール」ボタンをクリックします。
「ログイン」ボタンをクリックします。
設定した、ユーザー名とパスワードを入力して、「ログイン」ボタンをクリックします。
以下の画面が表示されれば完了です。
再度パブリックIPアドレスにブラウザでアクセスすると、デフォルトのブログ画面が表示されます。
OCI Container Instances で WordPress を動かすことができました。削除については、コンテナ・インスタンスと作成された VCN の削除です。