※ 本記事は、Govinnd Cherukat, Greg Verstraeten, Rishikesh Palveによる”Containers on Arm in Oracle Cloud Infrastructure“を翻訳したものです。

2023年10月5日


Oracle Cloud Infrastructure(OCI)は、Armベースのプロセッサにより、Cloud Nativeタイプおよび汎用ワークロードを実行でき、コスト・パフォーマンスの大きな利点があります。現在、Oracle Container Engine for Kubernetes (OKE)では、管理対象ノードを使用してArmでコンテナ化されたアプリケーションを実行する機能がサポートされています。

今日、OCI内のArmアーキテクチャで実行されているコンテナ化されたタスクをデプロイおよび監視できるようになったことをご紹介します。この機能は、Virtual Nodesと管理対象ノードを包含する、OCI Container Instances、OCI FunctionsおよびOKE全体に及びます。

OCIでArm上でコンテナを実行することでコストを削減

Ampere Altraプロセッサを搭載したOCI Ampere A1シェイプでは、Armコアを搭載したコンテナを1時間あたりコアあたりわずか$0.01、1時間あたりRAM 1GBあたり$0.0015で実行できます。ベンチマークの場合、OCI Ampere A1でx264ビデオ・エンコーディング・ワークロードを実行すると、Oracleでは、x86ベースのシステムと比較して最大10%のパフォーマンス向上と最大22%の価格性能比のメリットが得られました。OCI Ampere A1上のNGINXリバース・プロキシ・ワークロードの場合、Oracleでは、x86ベースのシステムと比較して、最大46%のパフォーマンス向上と最大62%の価格性能比のメリットが得られました。

Ampere A1シェイプで作成されたインスタンスでは、最初の3,000コア時間および18,000 GB時間の無料利用が月単位で行われます。このfree-tierの使用量は、ベア・メタル、仮想マシン(VM)およびContainer Instancesで共有されます。

ArmでのContainer Instancesの実行

OCI Container Instancesはサーバーレス・コンピュート・サービスで、サーバーやVMを管理せずにコンテナを即時に実行できます。Kubernetesを必要としないコンテナ化されたアプリケーションに適しています。Ampere A1シェイプ、CI.Standard.A1.Flexを搭載した新しいフレキシブル・シェイプがContainer Instancesで使用できるようになりました。これにより、Armベースのプロセッサでコンテナを実行できます。次のステップを開始します:

  1. OCIアカウントにログインします。Oracle Cloudアカウントがまだない場合は、無料トライアルをリクエストしてください。
  2. ナビゲーション・メニューを開きます。「Developer Services」で、「Containers & Artifacts」に移動し、「Container Instances」をクリックします。
  3. 「Create Container Instance」をクリックし、「Shape」選択に移動して「CI.Standard.A1」を選択します。
  4. Container Instancesで実行するようにコンテナを構成する場合は、Armアーキテクチャまたは複数のアーキテクチャ用に構築されたコンテナ・イメージを提供し、これらのコンテナをArmプロセッサで実行します。

フレキシブル・シェイプでは、コア数およびメモリー量をカスタマイズできます。最大76コア(拡張OCPU、最大488GBのメモリー)を各Container Instanceに割り当て、最も要求の厳しいワークロードでも実行するように選択できます。

A screenshot of the Browse All Shapes window in the Oracle Cloud Console, showing the available shapes, with the Ampere Arm-based processor highlighted.

 

ArmでOCI Functionsを実行

OCI Functionsは、OCIのサーバーレスFunctions-as-a-Service (FaaS)プラットフォームです。Functionsを他のOCIサービスとシームレスに統合し、イベントドリブン・アプリケーションを構築するための完全なサーバーレス・プラットフォームを提供し、functionをデプロイして、アクセス負荷に基づいて処理するために必要なコンピュートをプロビジョニングします。

Fn CLI、OCI CLI、OCIソフトウェア開発者キット(SDK)などのOCIインタフェースを使用して、Ampere A1を利用したOCI Functionsを実行できるようになりました。functionのデプロイの際に、実行するシェイプ・パラメータを指定できます。functionをArmなどの単一のアーキテクチャで実行するように制限したり、Armとx86の両方などの複数のアーキテクチャでfunctionを実行できるようにしたりできます。

functionを実行するプロセッサ・アーキテクチャを指定するには、次のステップを使用します:

  1. ナビゲーション・メニューの「Developer Services」で、「Functions」に移動して「Create Application」をクリックします。
  2. functionを実行するアーキテクチャをサポートするアプリケーションのシェイプを選択します。

A screenshot of the Create Application screen with the Shape menu expanded and the GENERIC_X86_ARM shape highlighted.

 

  1. ファンクションを実行するアーキテクチャに必要な依存関係を含むイメージを構築してfunctionを作成し、デプロイします。
    この方法では、Fn CLIを使用して、アプリケーション・シェイプ・パラメータに基づいて複数のアーキテクチャ・イメージを構築し、マニフェストをOCIRにアップロードします。Functionsイメージ・アーキテクチャは、アプリケーションのシェイプ定義と互換性がある必要があります。次のコマンドを実行します:
fn -v deploy --app app_multiarch
  1. functionは、OCI、FnまたはFunctions(API Gateway、Eventsなど)と統合されたトリガーを使用して呼び出すことができます。
fn invoke func_multiarch

ArmでKubernetesのpodを実行

OKEを使用すると、管理対象ノードとともにOKEを使用して、Kubernetesクラスタ内のArmプロセッサでコンテナを実行できます。現在は、OKE Virtual Nodesを使用してArm上でコンテナを実行することもできます。OKE Virtual Nodesにより、workerノードのインフラストラクチャの管理、スケーリング、アップグレードおよびトラブルシューティングの運用オーバーヘッドが排除されます。

  1. ナビゲーション・メニューの「Developer Services」で、「Kubernetes Clusters (OKE)」に移動し、「Create Cluster」をクリックします。
  2. Create Cluster」ウィンドウで、「Custom Create」を選択し、「Launch Workflow」をクリックします。「Cluster Create」および「Network Setup」の一部として、クラスタ構成を設定します。
  3. Node Pools」セクションで、「Virtual」を選択し、「Virtual node count and Pods shape」セクション内の「pod shape」を選択します。

podシェイプをPod.Standard.A1.Flexに設定してVirtual Nodesを作成できます。これらのVirtual NodesでスケジュールされたpodはArmプロセッサで実行され、Armプロセッサが提供する価格性能のメリットが得られます。

 A screenshot of the Node count and Pod shape menus on the creation screen.

もっと知りたいですか?