AI総合研究所

SHARE

X(twiiter)にポストFacebookに投稿はてなブックマークに登録URLをコピー

Azure container Instancesとは?主な機能や使い方、料金体系を解説

この記事のポイント

  • サーバーレスのコンテナ実行環境として、インフラ管理の複雑さを排除し、数秒でコンテナをデプロイ可能
  • 開発環境の構築、定期的なバッチ処理、シンプルなアプリケーションの実行に最適
  • Azure PortalやCLIを使用して、簡単にコンテナをデプロイし、リソースやネットワークの設定をカスタマイズ可能
  • コンテナーグループ機能により、複数のコンテナを同じホスト上にデプロイし、リソースを共有
  • Kubernetesなどのオーケストレーターを補完し、短期的なタスクや低トラフィックのサービスに適している

監修者プロフィール

坂本 将磨

Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。

コンテナ技術の導入を考える上で、マイクロソフトのAzure Container Instances(ACI)はコスト効率とシンプルさを重視した選択肢です。
サーバーレスのコンテナ実行環境として、インフラ管理の複雑さを排除し、数秒で簡単にコンテナをデプロイできる利点を持ちます。

本記事ではACIの基本、特徴、使い方をはじめ、オーケストレーションツールとの適切な組み合わせや料金体系について解説します。
<br<開発環境の構築、定期的なバッチ処理、シンプルなアプリケーションの実行に最適なACIの活用法を身に付け、貴社のクラウド戦略に役立てましょう。

Azure container Instancesとは

Azure Container Instances (ACI) は、Microsoft Azureが提供するサーバーレスのコンテナ実行環境です。このサービスを使うことで、複雑なインフラの管理なしに、コンテナをクラウド上で簡単に実行することができます。

Azure container Instancesイメージ
Azure container Instancesイメージ

素早いデプロイと効率的なリソース管理が可能なAzure container Instancesについて今回解説していきます。

前提知識

Azure Container Instancesの説明に入る前に、前提知識として必要なコンテナ、Docker及びコンテナオーケストレーションサービスについて説明します。

コンテナ

コンテナは、アプリケーションを動かすための「軽い箱」のようなものです。この箱には、アプリケーションが動くのに必要なすべて(コード、ライブラリ、設定など)が詰め込まれていて、どこでも同じように動作することが保証されます。
コンテナイメージ
コンテナイメージ(参考:Microsoft)

例えば、

開発者が自分のパソコンで作ったアプリケーションを、別のサーバーやクラウド上でも同じように動かしたい場合、
コンテナを使うと環境の違いを気にせず動かせます。

Docker

Dockerは、コンテナを作成・管理するためのツールです。Dockerを使うと、開発者はアプリケーションとその依存関係をDockerイメージとしてパッケージ化し、それをDockerコンテナとして動かすことができます。

  • Dockerイメージ:コンテナを作るための設計図のようなもので、アプリケーションやその必要なものが詰め込まれています。
  • Dockerコンテナ:Dockerイメージをもとに実際に動いている「箱」で、アプリケーションが実際に動作する環境そのものです。

Dockerイメージ
Dockerイメージ(参考:Microsoft)

Dockerは、ローカル環境やオンプレミスでの開発やテストには非常に便利です。しかし、実際の運用環境では、いくつかの課題があります。そこでコンテナオーケストレーションサービスの利用が役立つのです。

コンテナオーケストレーションサービス

コンテナオーケストレーションサービスとは、コンテナ化されたアプリケーションを大規模に管理・運用するためのツールやプラットフォームのことです。例えばKubernetesやDocker Swarmがあげられます。

上記にも述べたようにDockerはコンテナの作成と実行は可能ですが、複雑なタスクをすべて手動で管理する必要があります。その点、コンテナオーケストレーションサービスを使うと、複数のコンテナを効果的に管理・運用することができます。


Azure Container Instancesの特徴

では以上の前提知識を基に、Azure Container Instancesの特徴について説明していきます。

ACIはコンテナオーケストレーションサービスではありませんが、Dockerをクラウド環境で簡単に実行するため非常に便利なサービスです。

シンプルなコンテナ実行に特化

ACIは、コンテナの実行を迅速かつ簡単に行えるように設計されています。特徴は、以下のとおりです。

  • 数秒でのコンテナ起動
  • 複雑な設定不要: ACIを使うことで、特別な設定や複雑な手順を踏むことなく、すでに作成されたDockerイメージをそのままAzureのクラウド環境でコンテナとして起動できます。
  • インフラストラクチャ管理が不要: ACIはマネージドサービスとして提供されるため、サーバーの設定や管理を気にせず利用できます。

シンプルな場面に適している

ACIは、次のようなシンプルな場面に特に向いています。

  1. ACIは数秒でコンテナを起動できるため、開発やテスト環境を迅速に作成したり削除したりできます。

  2. 夜間のデータ処理や定期的なバックアップなど、定期的に実行されるジョブの処理に適しています。

  3. 小規模なアプリケーションやAPIを簡単にデプロイして実行するのに適しています。低トラフィック向けのアプリケーションにも最適です。

コンテナオーケストレーションや自動スケーリング機能はない

ただしACIは、コンテナオーケストレーションが持つ以下のような高度な機能はサポートしていません

  1. 負荷の変動に応じてコンテナの数を自動的に増減させる機能(自動スケーリング)がありません。
  2. コンテナのデプロイ戦略や特定のノードへの配置制約などの複雑な設定はサポートしていません。
  3. 動的なサービスの検出や、複数のコンテナ間のロードバランシング機能がありません。

これらの機能が必要な場合には、Azure Kubernetes Service (AKS)のようなコンテナオーケストレーションサービスを使用することを検討する必要があります。

Azure Kubernetes Serviceイメージ
Azure Kubernetes Serviceイメージ


Azure Container Instancesの使い方

では、ここからAzure Container Instancesの基本的な使い方を、デプロイ方法やコンテナ設定を中心に説明します。

Azure Portalからのコンテナデプロイ

Azure Portalから簡単にコンテナをデプロイできます。

  1. Azureポータルにサインイン:
    Azureポータルにアクセスし、Azureアカウントでサインインします。
    Azureポータル画面
    Azureポータル画面

※前提準備として、Azureアカウントの作成を行ってください。
➡️Azure Portalとは?操作方法やメリットをわかりやすく解説!

  1. 「リソースの作成」 をクリックします。
    リソースの作成ボタン
    リソースの作成ボタン

  2. 左メニューから「コンテナー」 > 「Container Instances」を選択。
    Container Instances選択
    Container Instances選択

  3. [基本] ページで、必要事項を入力します。
    基本ページ
    基本ページ

  4. 入力が終了したら、「確認および作成」をクリックし、確認後「作成」をクリックします。
    作成ボタン
    作成ボタン

Dockerイメージを指定してコンテナを起動

以下のコマンドをAzure CLIに入力することで、指定したDockerイメージを使ってACI上にコンテナを起動することができます。

az container create \
    --name mydockercontainer \
    --resource-group myResourceGroup \
    --image docker.io/library/nginx:latest \
    --ports 80 \
    --dns-name-label aci-nginx-demo

【説明】

  • コンテナの作成: mydockercontainerという名前で新しいコンテナグループが作成されます。
  • nginxのデプロイ: Docker Hubからnginxイメージ(最新バージョン)を取得し、そのイメージを使ってコンテナが起動されます。
  • ポートの公開: コンテナが外部からHTTPリクエストを受け取ることができるように、ポート80が公開されます。
  • DNS名の設定: aci-nginx-demoというDNS名ラベルが作成され、コンテナにアクセスするためのURLが生成されます。

Azure CLIについては、この記事も参考にしてみてください。
➡️Azure CLIとは?使い方やインストール方法、活用例を徹底解説!

CPU、メモリ、ポートなどの設定

コンテナのリソース(CPU、メモリ)やネットワーク(ポート、環境変数)などの設定もカスタマイズ可能です。

az container create \
    --name mycustomcontainer \
    --resource-group myResourceGroup \
    --image myimage:latest \
    --cpu 2 \
    --memory 4 \
    --ports 80 443 \
    --environment-variables KEY1=VALUE1 KEY2=VALUE2

【説明】

  • コンテナの作成: mycustomcontainerという名前のコンテナグループが作成されます。
  • カスタムイメージのデプロイ: 指定されたDockerイメージmyimage:latestがデプロイされます。
  • リソースの割り当て: コンテナに2つのvCPUと4GBのメモリが割り当てられます。
  • ポートの公開: 外部からアクセスできるように、ポート80(HTTP)と443(HTTPS)が開放されます。
  • 環境変数の設定: コンテナ内で使用する環境変数KEY1KEY2が設定され、アプリケーションの動作を制御するのに使用されます。

コンテナーグループ

ここで、ACIのコンテナーグループ機能について説明します。

コンテナーグループとは、複数のコンテナを同じホスト上にデプロイし、密接に連携して動作させるための単位です。次のような特徴があります。
コンテナーグループイメージ
コンテナーグループイメージ(参考:Microsoft)

1.コンテナーグループの管理
コンテナーグループを用いることで、関連するコンテナを一緒に管理し、単一のデプロイユニットとして取り扱うことができます。

2.リソースの共有
コンテナーグループ内のコンテナは、同じホストで動作し、ネットワーク、ストレージ、ライフサイクルを共有することとなります。

  • ネットワークの共有
    コンテナーグループ内のすべてのコンテナは同じIPアドレスを共有し、異なるポートで動作します。また、グループ内のコンテナ同士はlocalhostを介して直接通信することができます。

  • ストレージの共有
    Azure Fileを使用することで、複数のコンテナが同じストレージにアクセスし、データを共有することが可能です。たとえば、ログファイルや設定ファイルを共有する場合などに便利です。

    Azure Fileについてはこちらもご覧ください。
    【関連記事】
    ➡️ Azure Filesとは?その機能や料金、アクセス方法をわかりやすく解説

  • ライフサイクルの共有
    コンテナーグループ内のすべてのコンテナは一斉にデプロイ、開始、停止されます。


Azure Container Instancesの料金体系

ではここで、Azure Container Instancesの料金体系についてご紹介します。

1. 基本料金構成

ACIの料金は、コンテナー グループに割り当てられた次の2つの項目で課金されます:

  • vCPU(仮想CPU)の使用量:秒単位での料金
  • メモリの使用量:秒単位での料金

2. その他の費用

  • Windows コンテナーの追加料金
    Windows コンテナーを使用する場合、vCPUの使用時間ごとに追加料金(¥0.0017342/秒)が発生します。

詳しい情報は、こちらをご覧ください。

Azure Container Instancesとオーケストレーターの関係

最後にACIとコンテナオーケストレーターの関係性について、ご説明します。

Kubernetesなどのオーケストレーターを補完

ACIは、Kubernetesのようなコンテナオーケストレーターと競合するのではなく、活躍場面が異なります

つまり、

- ACI  
  手軽に使えるため、簡単なコンテナ実行に特化しています。

- Kubernetes  
  複雑なマイクロサービスアーキテクチャの管理に適しています。

ACIの利用場面

以下のようなシナリオでACIを利用すると効果的です。

  1. 短期的なタスク

    • バッチ処理やデータ処理ジョブ
    • CI/CDパイプラインの一部としての一時的なビルド・テスト環境

  2. シンプルなアプリケーション

    • 単一コンテナで構成されるウェブアプリケーション
    • クライアント向けのデモ環境

  3. 低トラフィックのサービス

    • 個人プロジェクトや学習目的のアプリケーション
    • プロトタイプや概念実証 (PoC) の開発環境

複雑な管理が必要な場合はオーケストレーターと併用

より複雑なコンテナ管理が求められる場合は、Kubernetesなどのコンテナオーケストレーターの使用が適しています。

  1. 大規模なマイクロサービスアーキテクチャ
  2. 高可用性が要求されるミッションクリティカルなアプリケーション
  3. 自動スケーリングが必要な変動の大きいワークロード

そのため、ACIとコンテナオーケストレーターを適切に組み合わせることが望ましいでしょう。
例えば、こうした利用方法がおすすめです。

- リソースの需要が急増した場合、ACIを利用して一時的にコンテナ数を増やす。
- 開発中やテスト段階ではACIを使用し、本番環境ではKubernetesを利用。

まとめ

本記事では、Azure Container Instances (ACI) の概要、主要な特徴、基本的な使用方法、料金体系、そしてコンテナオーケストレーターとの関係について解説しました。

ACIは、サーバーレスでシンプルなコンテナ実行環境を提供し、開発環境やバッチ処理、シンプルなアプリケーションの展開に特に適しています。一方で、複雑なアプリケーション管理には制限があるため、必要に応じてKubernetesなどのオーケストレーターと併用するとよいでしょう。

ぜひACIを効果的に活用することで、より効率的なコンテナ戦略に役立ててみてください。
この記事が、皆様のお役に立てたら幸いです。

AI活用のノウハウ集「AI総合研究所」サービスご紹介資料

「AI総合研究所 サービス紹介資料」は、AI導入のノウハウがないというお客様にも使いやすい最先端のAI導入ノウハウを知れる資料です。

資料ダウンロード
監修者

坂本 将磨

Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。

関連記事

AI導入の最初の窓口。

お悩み・課題に合わせて活用方法をご案内いたします。
お気軽にお問合せください。

AI総合研究所 Bottom banner

ご相談
お問い合わせは
こちら!