ノート:
- このチュートリアルではOracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了する場合は、これらの値をクラウド環境に固有の値に置き換えてください。
コンテナ・インスタンス・サービスを使用した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上のコンテナ・ワークロードを迅速かつ簡単に起動および管理するための様々なコントロールについて説明します。
目標
- OCIでコンテナ・インスタンス・サービスを使用する方法について学習します。
- コンテナ・インスタンス・サービスでコンテナ・ワークロードを起動します。
- コンテナ管理機能、およびサービス上のワークロードを効率的に管理および監視する方法について学習します。
前提条件
- Oracle Cloudアカウントにサインアップまたはサインインします。
タスク1: コンテナ・インスタンスの作成と構成
このチュートリアルでは、コンテナ・インスタンスでWordPressコンテナとMySQLコンテナの両方を実行して、完全に機能するWordPressサイトを作成します。
-
「開発者サービス」、「コンテナおよびアーティファクト」、「コンテナ・インスタンス」にナビゲートします。
次に示すコンテナ・インスタンス・サービスのページには、現在実行中のコンテナ・インスタンスが表示され、ここからも新しいコンテナ・インスタンスを作成できます。
-
「コンテナ・インスタンスの作成」をクリックして、コンテナ・インスタンス作成ウィザードを開きます。
ノート: コンテナ・インスタンスを作成するときは、最初に配置、シェイプ、ネットワーキング・オプションなど、いくつかの基本パラメータを設定します。次に、コンテナ・インスタンス内で起動する1つ以上のコンテナを選択し、オプションでコンテナのパラメータを設定します。
-
まず、このコンテナ・インスタンスに名前を付け、そのコンパートメントを選択します。この例では、コンテナ・インスタンスにWordpressという名前を付けます。
-
配置オプションには、コンテナ・インスタンスを配置する可用性ドメインと、選択したフォルト・ドメインを選択するオプションが含まれます。シェイプの選択は、サポートされているコンピュート・プラットフォームを提供し、コンテナに必要なCPUコアおよびメモリーの量を選択できます。この機能により、コストを最適化しつつ、CPUバウンドまたはメモリーバウンドのワークロードにコンテナ・インスタンスのサイズを柔軟に設定できます。2つのOCPUおよび16GBのメモリーを選択します。
-
ネットワーキング構成では、VCNなどのネットワーキング・オプション、およびコンテナ・インスタンスをオンにするサブネットを選択できます。また、アプリケーションをパブリックに公開するために、オプションでパブリックIPアドレスをコンテナ・インスタンスに割り当てることもできます。アプリケーションがリスニングするポートは、インスタンスが接続を受信できるように、サブネットのセキュリティ・リストまたはネットワーク・セキュリティ・グループ(NSG)で許可される必要があります。
-
拡張オプションを使用すると、正常な停止タイムアウトを設定できます。これは、コンテナ・インスタンスの終了時に正常に終了するためにコンテナ・インスタンス内のコンテナに指定された時間です。コンテナの再起動ポリシーを設定して、終了/終了するコンテナを自動的に再起動したり、コンテナの終了ステータスの再起動ポリシーに基づいて再起動することもできます。
-
-
「次へ」をクリックします。次のステップでは、コンテナ・インスタンスで実行するコンテナを選択して構成します。
-
まず、コンテナ構成セクションの最初のコンテナを定義します。この例では、WordPressコンテナから開始します。コンテナに wordpressという名前を付けます。
-
「イメージの選択」をクリックして、イメージ選択ダイアログを開きます。
イメージ選択ダイアログには、OCIRまたは外部レジストリからイメージを選択するオプションがあります。WordPressの公式イメージはDockerHubで公開され、DockerHubはデフォルトの外部レジストリです。外部レジストリ タブを選択し、イメージ名にwordpressと入力します。イメージ・タグはオプションで、デフォルトは
latest
です。この場合、最新のwordpressイメージが必要であるため、空白のままにすると、サービスはデフォルトのlatest
になります。また、他の外部レジストリも表示できます。このレジストリには、認証URLおよび認証情報を指定できます。レジストリURLにアクセスできるかぎり、コンテナ・インスタンス・サービスはOpen Container Initiative (OCI)準拠のレジストリからイメージをプルできます。
-
次に、いくつかの環境変数を設定します(イメージのドキュメントのこのイメージの使用方法の項を参照)。次の変数と値が設定されます。
変数 値 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つのコンテナがこれらのリソースの過剰使用およびコンテナ・インスタンス内の他のコンテナの不足を回避するために、各コンテナで使用可能なリソースを制限できます。
ENTRYPOINT
、CMD
、WORKDIR
などの一部のイメージのデフォルトをオーバーライドすることもできます。これらのオプションは、「拡張オプション」の下にある各コンテナで使用できます。このコンテナの拡張オプションを展開し、CPUコアの50%以下を消費するようにWordPressコンテナを設定します。 -
WordPressも機能するにはデータベースが必要です。このチュートリアルでは、MySQLデータベースをコンテナ・インスタンス内の2番目のコンテナとして実行します。実際の本番デプロイメントでは、MySQLデータベース・サービスなどのデータベース・サービスを使用することをお薦めします。
-
-
MySQLコンテナから開始するには、「+別のコンテナ」をクリックして、コンテナ・インスタンスにコンテナを追加します。前述のとおり、まずコンテナに名前を付け、今度はmysqlという名前を付けます。
-
次に、「イメージの選択」をクリックしてイメージの詳細を指定します。Oracleは公式のMySQLイメージをDockerHubに公開し、このチュートリアルではMySQL 8.0.31リリースを使用します。
-
次の環境変数を設定してデータベースを初期化します。
変数 値 MYSQL_ROOT_PASSWORD Wordpressonmysql MYSQL_DATABASE ワードプレス MYSQL_USER ワードプレス MYSQL_PASSWORD ワードプレス -
WordPressコンテナと同様に、コンテナ・スロットルを設定し、さらに起動パラメータを設定してMySQLコンテナの
ENTRYPOINT
引数をオーバーライドします。データベース・パスワード認証プラグインを有効にするには、引数--default-authentication-plugin=mysql_native_password
を渡します。
-
-
「次」をクリックしてすべての情報を確認し、「作成」をクリックしてコンテナ・インスタンスを作成します。構成したコンテナ・インスタンスには2つのコンテナがあり、それぞれがコンテナ・インスタンスで使用可能なCPUおよびメモリーの50%のみを占めるようにスロットル調整されています。WordPressおよびMySQLのパブリック・イメージを選択してWordPressサイトを作成し、それぞれが環境変数を使用してコンテナを初期化するように構成されています。
コンテナ・インスタンスが数秒以内に起動し、ワークロードが稼働するようになりました。パブリックIPアドレスをコンテナ・インスタンスに割り当てることを選択したため、それを使用してインターネット上のWordPressサイトにアクセスできます。コンテナ・インスタンスの概要ページに表示される、割り当てられたパブリックIPアドレス。
ブラウザからIPアドレスにアクセスすると、インターネット上のライブWordPress Webサイトに移動します。
関連リンク
- OCIコンテナ・インスタンスのブログ
- コンテナ・インスタンスの詳細
- コンテナ・インスタンスのドキュメント
- Oracle Cloud Free Tier
- Oracle Cloudアカウントへのサインイン
謝辞
- 作成者 - Jeevan Joseph(シニア・プリンシパル・プロダクト・マネージャー)
その他の学習リソース
docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Manage container workloads on OCI using the Container Instances service
F74879-02
December 2022
Copyright © 2022, Oracle and/or its affiliates.