Azure Managed Service Column <Azure運用コラム>

コンテナサービスをもっと手軽に利用できる!Azure Container Appsとは?

Category: 入門編

2022.11.20

コンテナ技術、関連サービスと共にAzure Container Instancesについて解説します

近年クラウド基盤の普及に伴いコンテナ型の仮想化技術が注目を集めています。コンテナは単一のサーバー内にアプリケーション単位で構築でき、移行、破棄が簡単にできるという特性があります。環境変化に柔軟に対応できることからコンテナ型の仮想技術は、 DX 時代を支える技術として、今後さらなる活用が予想されています。

Azure も多くのコンテナサービスを提供しています。今回はその中から、代表的なコンテナサービスである Azure Container Instances について紹介します。

1.Azureについて

Azure は Microsoft 社の莫大な資金力で世界各地にデータセンターの拠点をもち、新技術やサービスの開発、堅牢なセキュリティ対策など業界をリードするクラウドサービスです。 Azure ではさまざまなクラウドサービスを取り扱っていますが、代表的なサービスがインフラレイヤを仮想化する IaaS ( Infrastructure as a Service )型のサービスです。

IaaS は仮想サーバーのスペック及び起動時間に応じた従量制の課金制のサービスです。仮想基盤(ホスト)上に仮想サーバー(ゲスト)を構築し、 OS 、アプリケーションをインストールして利用します。ホストとゲストの間を取り持つハイパーバイザーにより管理されます。

他にも OS レイヤを仮想化する PaaS ( Platform as a Service )型や、インターネット上でアプリケーションを利用できる SaaS ( Software as a Service )などがあります。

2.コンテナについて

従来の IaaS による仮想化では、1つの仮想サーバー内に必要なコンポーネントは OS からすべてインストールする方式でした。しかし実際の開発環境において OS 周りのインストールは非効率であり、 OS 毎に仮想サーバーを構築するのはリソースの無駄なコストでした。

コンテナは OS 周辺の環境を共通利用し、アプリケーションが使用する CPU 、メモリ、プロセスの領域は別々にまとめたコンテナとして管理できます。

コンテナ環境ではアプリを実行するのに十分な独立した仮想環境を、従来よりも節約した状態で利用できます。さらに開発環境の構築、削除、移行が素早く行えるという管理上のメリットがあります。この時利用されるのがコンテナエンジンです。そしてコンテナエンジンで最も有名なサービスが Docker です。

コンテナについて

3.Dockerについて

コンテナエンジンで代表的なのが、 Docker です。現在はベンダー業界で統一仕様として取り扱われています。
Docker はコンテナ型アプリケーション実行環境です。 Docker を利用することで、 OS 内部に独立したアプリケーションの実行環境(コンテナ)を簡単に展開できます。

Docker File というコンテナを生成するための設定ファイルに、コンテナの設定内容を記述することで環境の展開が可能です。これは IaC ( Infrastructure as Code )の概念でありコードでインフラ環境を構築できるテクノロジです。

従来のインフラ環境はライブラリのアップデートや新しいコードの追加をする際、仮想サーバー側を変更するアプローチを前提としていました。反対にインフラを不変なものとして扱うのが Immutable Infrastructure というアプローチです。Dockerはインフラ環境を変更しない Immutable Infrastructure のアプローチを前提としているサービスです。

4.Kubernetesについて

Docker とともに普及しているのが Kubernetes です。 Kubernetes とは複数のコンテナを1台の実行環境のように扱うオーケストレーションツールです。

通常 Docker 環境は 1 台のホストの中で完結しています。ホスト間の連携が煩雑になり簡単にスケールアウトできないことが Docker のデメリットです。

そこで Kubernetes を利用することで、コンテナをクラスタ化し自動で調整することで柔軟なスケーリングが可能となります。 Docker の詳細や Kubernetes との違いについては以下の記事をご参照ください。

5.Azure Container Instancesとは

ここまで、コンテナに関する基礎知識について解説してきました。本章からは Azure のコンテナサービスである Azure Container Instances について解説します。

Azure Container Instancesの特徴

Azure Container Instances は、 VM のようなハイパーバイザーや Kubernetes などオーケストレーションツールを利用せず、 Azure 環境でコンテナサービスを実行できます。

レポートの生成やファイル形式の変換、単純なバッチ処理で利用されることが多く、簡単な処理をコンテナ化し業務の効率化が可能です。 Azure Container Instances の具体的なメリットを紹介します。

スタートアップ時間の高速化

Azure Container Instances を使用すると、仮想マシンを展開し管理する必要がなく、 Azure Portal から簡単にコンテナを利用できます。 Azure Container Instances がサポートする各種レジストリ( Docker Hub 、プライベート Azure コンテナレジストリ、 Docker レジストリ等)からイメージを取り込み、複数の OS イメージがキャッシュされ展開の工程を高速化することが可能です。

コンテナへのセキュアなアクセスを実現

Azure Container Instances を使用すると、 IP アドレスと FQDN を使用してコンテナグループをインターネットへ公開することができます。

対話型シェルを提供し実行中のコンテナでのコマンド操作も可能です。アクセスは HTTPS 経由で行われ、 TLS を使用してセキュアな通信を実現できます。

ハイパーバイザーレベルのセキュリティ

従来のコンテナは、同一のテナントで実行される環境であり、悪意のあるコンテナ利用者に対する十分なセキュリティ対策については考慮されていないケースが多いと言われています。 Azure Container Instances ではコンテナエンジンを利用しながらもハイパーバイザー内であるかのように、リソースを確実に分離することができます。

実行リソースのカスタマイズ

Azure Container Instances は、 CPU のコア数とメモリを指定し最適な稼働率をあらかじめ確保でき、アプリケーションのニーズに応じてコンテナのリソースをきめ細かく調整することが可能です。

またホストコンピューター、ネットワーク、ストレージ、およびライフサイクルを共有し、複数のコンテナをグループとして設定し管理を効率的に行うことができます。

Azure Filesとの連携

Azure Container Instances はステートレスであることから、コンテナが再起動や停止などした場合、アプリケーションの状態が失われます。

コンテナの有効期間後も状態を保持するために Azure Files で作成されたファイル共有をマウントすることでステートフルな状態を実現することができます。

Kubernetesとの連携

コンテナエンジンの運用において柔軟なスケーリングを必要とする場合、 Azure Kubernetes Service との併用が可能です。このように Azure のサービスと連携させることで、 Azure 内での一元管理が可能です。

仮想ネットワークのデプロイ

Azure Container Instances を使用すると、 Azure の IaaS 仮想ネットワーク内にコンテナエンジンをインスタンスとしてデプロイすることが可能です。

仮想ネットワーク内にデプロイすることで、オンプレミス上にあるものなどから、 VPN Gateway や Express Route 経由でアクセスすることが可能となり、他のリソースと安全に通信ができるようになります。

仮想ネットワークのデプロイ

Azure Container Instancesの料金について

Azure Container Instances の請求は、単一のコンテナもしくはコンテナグループレベルで行われます。コンテナに割り当てられた CPU の数とメモリの量と、稼働している時間に応じ秒単位で課金されます。解約手数料は発生しません。実際の価格や利用料金の概算については、公式サイトをご確認ください。

6.まとめ

本記事ではコンテナについての技術、関連サービスについて、そして Azure Container Instances について解説しました。 Azure Container Instances はコンテナを簡単に素早く展開でき、開発環境など短期間の利用には最適なサービスです。アプリケーションの開発やトラブルシューティングを支援するための対話型シェルを提供しているなど、開発コストを大幅に抑えるなど多くのメリットがあります。

Azure が提供している様々なサービスと組み合わせ活用することが可能です。自社の規模や利用状況に合わせ導入の検討をお勧めします。また導入や効果的な利用については専門家へ相談されることを推奨いたします。

Azure の導入を相談したい

Azure導入支援サービス

Azure 導入支援サービス

Microsoft Azure 導入の具体的な方法の検討や技術検証を専門家にサポートいたします。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Azure導入支援・構築・運用サービス総合カタログ

    Microsoft Azure サービスの導入検討・PoC、設計、構築、運用までを一貫してご支援いたします。
    Azure導入・運用時のよくあるお悩み、お悩みを解決するためのアールワークスのご支援内容・方法、ご支援例などをご確認いただけます。

Microsoft Azureを利用したシステムの設計・構築を代行します。お客様のご要件を実現する構成をご提案・実装いたします。

Azure導入個別相談会(無料)

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php