ノート:

コンテナ・インスタンス・サービスを使用したOCI上のコンテナ・ワークロードの管理

イントロダクション

Oracle Cloud Infrastructure (OCI)のコンテナ・インスタンスは、新しい合理化された方法でアプリケーション・コンテナを実行できます。サーバーレス・コンピュート・サービスで、インフラストラクチャを管理することなくコンテナを即時に実行できます。

コンテナ・インスタンスは、サーバーやその他のインフラストラクチャを計画および管理することなく、OCIでコンテナ・ワークロードを迅速に起動するためのシンプルで安全な方法を提供します。このサービスは、インフラストラクチャのプロビジョニング、ライフサイクル管理、パッチ適用およびアップグレードを管理し、ユーザーがアプリケーション開発に集中できるようにします。コンテナ・インスタンスはOCIリソースで、1つ以上のコンテナの実行に使用できるサービスによって提供されます。

コンテナ・インスタンスの作成経験はシンプルで、ユーザーはCPUコアおよびメモリーの数と、ユーザーがコンテナ・インスタンス内で実行したいコンテナ・イメージを選択できます。また、コンテナ・インスタンス内の個々のコンテナをスロットルするための高度な制御もあり、一部のコンテナによるリソースの独占、正常なコンテナ終了の管理、ユーザーが実行したいコンテナの環境変数およびオーバーライド・パラメータの指定ができます。コンテナ・イメージは、OCI Container Image Registry (OCIR)などのコンテナ・イメージ・レジストリと、ghcr、quay.io、dockerhubまたはその他のプライベート・レジストリなどのサードパーティ・レジストリからプルできます。コンテナ・インスタンスが起動されると、パブリックIPアドレスまたはプライベートIPアドレスを割り当てられ、アプリケーションをユーザーに公開できます。コンテナ・インスタンス・サービスは、すぐに使用できるロギングおよび監視機能も提供します。パッチ適用やアップグレードなどのすべてのインフラストラクチャ管理は、ユーザーやワークロードに負担をかけることなく、サービスによって透過的に処理されます。

このチュートリアルでは、Container Instancesサービスの開始方法、およびOracle Cloud Infrastructure上のコンテナ・ワークロードを迅速かつ簡単に起動および管理するための様々なコントロールについて説明します。

目標

前提条件

タスク1: コンテナ・インスタンスの作成と構成

このチュートリアルでは、コンテナ・インスタンスでWordPressコンテナとMySQLコンテナの両方を実行して、完全に機能するWordPressサイトを作成します。

  1. 「開発者サービス」「コンテナおよびアーティファクト」「コンテナ・インスタンス」にナビゲートします。

    次に示すコンテナ・インスタンス・サービスのページには、現在実行中のコンテナ・インスタンスが表示され、ここからも新しいコンテナ・インスタンスを作成できます。

    コンテナ・インスタンス・ホーム

  2. 「コンテナ・インスタンスの作成」をクリックして、コンテナ・インスタンス作成ウィザードを開きます。

    作成ウィザードの概要

    ノート: コンテナ・インスタンスを作成するときは、最初に配置、シェイプ、ネットワーキング・オプションなど、いくつかの基本パラメータを設定します。次に、コンテナ・インスタンス内で起動する1つ以上のコンテナを選択し、オプションでコンテナのパラメータを設定します。

    • まず、このコンテナ・インスタンスに名前を付け、そのコンパートメントを選択します。この例では、コンテナ・インスタンスにWordpressという名前を付けます。

      コンテナ・インスタンスに名前を付けます。

    • 配置オプションには、コンテナ・インスタンスを配置する可用性ドメインと、選択したフォルト・ドメインを選択するオプションが含まれます。シェイプの選択は、サポートされているコンピュート・プラットフォームを提供し、コンテナに必要なCPUコアおよびメモリーの量を選択できます。この機能により、コストを最適化しつつ、CPUバウンドまたはメモリーバウンドのワークロードにコンテナ・インスタンスのサイズを柔軟に設定できます。2つのOCPUおよび16GBのメモリーを選択します。

      CPU選択

    • ネットワーキング構成では、VCNなどのネットワーキング・オプション、およびコンテナ・インスタンスをオンにするサブネットを選択できます。また、アプリケーションをパブリックに公開するために、オプションでパブリックIPアドレスをコンテナ・インスタンスに割り当てることもできます。アプリケーションがリスニングするポートは、インスタンスが接続を受信できるように、サブネットのセキュリティ・リストまたはネットワーク・セキュリティ・グループ(NSG)で許可される必要があります。

      ネットワーク

    • 拡張オプションを使用すると、正常な停止タイムアウトを設定できます。これは、コンテナ・インスタンスの終了時に正常に終了するためにコンテナ・インスタンス内のコンテナに指定された時間です。コンテナの再起動ポリシーを設定して、終了/終了するコンテナを自動的に再起動したり、コンテナの終了ステータスの再起動ポリシーに基づいて再起動することもできます。

    詳細

  3. 「次へ」をクリックします。次のステップでは、コンテナ・インスタンスで実行するコンテナを選択して構成します。

  4. まず、コンテナ構成セクションの最初のコンテナを定義します。この例では、WordPressコンテナから開始します。コンテナに wordpressという名前を付けます。

    名前wpコンテナ

  5. 「イメージの選択」をクリックして、イメージ選択ダイアログを開きます。

    wpイメージを選択

    イメージ選択ダイアログには、OCIRまたは外部レジストリからイメージを選択するオプションがあります。WordPressの公式イメージはDockerHubで公開され、DockerHubはデフォルトの外部レジストリです。外部レジストリ タブを選択し、イメージ名にwordpressと入力します。イメージ・タグはオプションで、デフォルトはlatestです。この場合、最新のwordpressイメージが必要であるため、空白のままにすると、サービスはデフォルトのlatestになります。

    また、他の外部レジストリも表示できます。このレジストリには、認証URLおよび認証情報を指定できます。レジストリURLにアクセスできるかぎり、コンテナ・インスタンス・サービスはOpen Container Initiative (OCI)準拠のレジストリからイメージをプルできます。

  6. 次に、いくつかの環境変数を設定します(イメージのドキュメントこのイメージの使用方法の項を参照)。次の変数と値が設定されます。

    変数
    WORDPRESS_DB_HOST 127.0.0.1
    WORDPRESS_DB_USER ワードプレス
    WORDPRESS_DB_PASSWORD ワードプレス
    WORDPRESS_DB_NAME ワードプレス

    変数セット

    • コンテナ・インスタンス内に複数のコンテナがある場合、コンテナ・インスタンスで使用可能なCPUやメモリーなどのコンピュート・リソースを共有します。また、ネットワーク・ネームスペースも共有します。そのため、WordPressコンテナは、前述の構成に従ってlocalhostまたはループバック・アドレス127.0.0.1を介してMySQLコンテナに接続できます。

    • 1つのコンテナがこれらのリソースの過剰使用およびコンテナ・インスタンス内の他のコンテナの不足を回避するために、各コンテナで使用可能なリソースを制限できます。ENTRYPOINTCMDWORKDIRなどの一部のイメージのデフォルトをオーバーライドすることもできます。これらのオプションは、「拡張オプション」の下にある各コンテナで使用できます。このコンテナの拡張オプションを展開し、CPUコアの50%以下を消費するようにWordPressコンテナを設定します。

      wp拡張オプション

    • WordPressも機能するにはデータベースが必要です。このチュートリアルでは、MySQLデータベースをコンテナ・インスタンス内の2番目のコンテナとして実行します。実際の本番デプロイメントでは、MySQLデータベース・サービスなどのデータベース・サービスを使用することをお薦めします。

  7. MySQLコンテナから開始するには、「+別のコンテナ」をクリックして、コンテナ・インスタンスにコンテナを追加します。前述のとおり、まずコンテナに名前を付け、今度はmysqlという名前を付けます。

  8. 次に、「イメージの選択」をクリックしてイメージの詳細を指定します。Oracleは公式のMySQLイメージをDockerHubに公開し、このチュートリアルではMySQL 8.0.31リリースを使用します。

    MySQLイメージの選択

    • 次の環境変数を設定してデータベースを初期化します。

      変数
      MYSQL_ROOT_PASSWORD Wordpressonmysql
      MYSQL_DATABASE ワードプレス
      MYSQL_USER ワードプレス
      MYSQL_PASSWORD ワードプレス

      MySQLパラメータの設定

    • WordPressコンテナと同様に、コンテナ・スロットルを設定し、さらに起動パラメータを設定してMySQLコンテナのENTRYPOINT引数をオーバーライドします。データベース・パスワード認証プラグインを有効にするには、引数--default-authentication-plugin=mysql_native_passwordを渡します。

      MySQL ENTRYPOINTオーバーライドの設定

  9. 「次」をクリックしてすべての情報を確認し、「作成」をクリックしてコンテナ・インスタンスを作成します。構成したコンテナ・インスタンスには2つのコンテナがあり、それぞれがコンテナ・インスタンスで使用可能なCPUおよびメモリーの50%のみを占めるようにスロットル調整されています。WordPressおよびMySQLのパブリック・イメージを選択してWordPressサイトを作成し、それぞれが環境変数を使用してコンテナを初期化するように構成されています。

コンテナ・インスタンスが数秒以内に起動し、ワークロードが稼働するようになりました。パブリックIPアドレスをコンテナ・インスタンスに割り当てることを選択したため、それを使用してインターネット上のWordPressサイトにアクセスできます。コンテナ・インスタンスの概要ページに表示される、割り当てられたパブリックIPアドレス。

コンテナ・インスタンスはライブです

ブラウザからIPアドレスにアクセスすると、インターネット上のライブWordPress Webサイトに移動します。

サイトはライブです

謝辞

その他の学習リソース

docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。