こんにちは、InfraAcademyを運営しているryuです。
今回は、Azure Kubernetes Service(AKS)とは何かをIT初心者向けに解説します。
Kubernetesを勉強していると、AWSではEKS、AzureではAKS、Google CloudではGKEという名前が出てきます。Kubernetesとの違いが分からず、Azureで何をやってくれるサービスなのか迷う方も多いと思います。
AKSは、Azure上でKubernetesを利用するためのマネージドサービスです。自分でKubernetesの管理用サーバーを一から構築するより、Azureに任せられる部分が多く、アプリケーションの運用へ集中しやすくなります。
この記事では、AKSの基本から、Kubernetesとの違い、AKS AutomaticとStandard、Node Poolの考え方、Azure CLIを使ったクラスター作成まで順番に解説します。
Azure Kubernetes Service(AKS)とは?¶
Azure Kubernetes Service、略してAKSは、Microsoft Azureが提供しているマネージドKubernetesサービスです。
Kubernetesは、複数のコンテナを安定して動かすためのオーケストレーションプラットフォームです。ただし、Kubernetesそのものを自分で構築・運用しようとすると、Control Planeの可用性やアップデート、Nodeの管理など、アプリケーション以外にも多くの作業が必要になります。
AKSでは、そのうちKubernetesのControl PlaneをAzure側が管理します。利用者はPodやDeploymentなどのKubernetesリソースを使いながら、Azure上でコンテナ化されたアプリケーションを動かせます。
Kubernetesそのものについてまだ分からない場合は、先にこちらの記事を読んでおくとAKSも理解しやすくなります。
Kubernetesとは?Pod・Node・Deploymentの仕組みを初心者向けに解説
KubernetesとAKSは何が違う?¶
KubernetesとAKSは別の技術ではありません。
AKSは、Azure上でKubernetesを運用しやすくするためのサービスです。
違いを簡単に整理すると、次のようになります。
| Kubernetesを自分で構築 | AKS | |
|---|---|---|
| KubernetesのControl Plane | 自分で構築・管理 | Azureが管理 |
| Node | 自分で用意・管理 | Azure VMなどをNode Poolとして利用 |
| Kubernetesの操作 | kubectl など |
kubectl など |
| Pod・Deployment・Service | 自分で作成 | 自分で作成 |
| Azureサービスとの連携 | 自分で設計 | Azureの各サービスと連携しやすい |
| アップデート | 自分で管理 | AKSの仕組みを利用して管理 |
AKSを使っても、Kubernetesの知識が不要になるわけではありません。
Pod、Deployment、Service、Nodeなどの基本はそのまま使います。AKSが楽にしてくれるのは、Kubernetesを動かすための基盤や管理作業の一部です。
AKSではAzureが何を管理してくれる?¶
Kubernetesクラスターには、大きく分けてControl PlaneとNodeがあります。
Control Planeは、クラスター全体を管理する役割を持ちます。API Serverやスケジューリング、クラスター状態の管理など、Kubernetesを動かす中心部分です。
AKSでは、このControl PlaneをMicrosoftが管理します。
一方、実際にアプリケーションのPodを動かすNodeは、利用者のAKS環境に用意されます。AKS Standardでは、Nodeの台数やVMサイズ、Node Poolなどを利用者側で設定します。
そのためAKSは、すべてをAzureへ丸投げするサービスというより、Kubernetesの管理をAzureと利用者で分担するサービスと考えると分かりやすいです。
AKSのNode Poolとは?¶
AKSでよく出てくる言葉がNode Poolです。
Nodeは、Podを実際に動かすサーバーです。AKSでは、同じ設定を持つNodeをまとめたものをNode Poolとして管理します。
例えば、システム用のPodを動かすNode Poolと、Webアプリケーションを動かすNode Poolを分けることができます。
AKS Standardでは、System ModeとUser ModeというNode Poolの役割があります。
| Node Pool | 主な役割 |
|---|---|
| System | Kubernetesを動かすために必要なシステムPodなどを配置する |
| User | 利用者のアプリケーションを配置する |
小さな検証環境では構成を単純にすることもありますが、本番環境ではアプリケーション用のUser Node Poolを分けることで、システム用Podとアプリケーションを分離しやすくなります。
AKS AutomaticとAKS Standardの違い¶
現在のAKSには、大きく分けてAutomaticとStandardという2つのクラスター方式があります。
AKS Automatic¶
AKS Automaticは、Node管理、スケーリング、セキュリティ、監視、アップグレードなど、Kubernetes運用の多くをAzureへ任せやすい方式です。
Kubernetesを使いたいものの、インフラ側の設定を細かく管理する必要がない場合に向いています。Microsoftも、多くのチームやワークロードではAutomaticを利用しやすい選択肢として案内しています。
AKS Standard¶
AKS Standardは、Node Poolやクラスター構成などを細かく設定したい場合に向いています。
Kubernetesの仕組みを学習したい場合も、NodeやNode Poolを自分で確認しながら操作できるため、Standardの方が内部構成を理解しやすい場面があります。
この記事の後半では、Kubernetesの基本を確認しやすいように、Azure CLIからAKS Standardのクラスターを作成する例を紹介します。
AKSを使うメリット¶
AKSのメリットは、単にKubernetesをAzureで使えることだけではありません。
Control Planeを自分で一から構築しなくてよい¶
Kubernetesを自前で構築する場合、Control Planeのサーバーを用意し、可用性やアップデートまで考える必要があります。
AKSではControl PlaneをAzureが管理するため、利用者が管理する範囲を減らせます。
Azureのサービスと組み合わせやすい¶
AKSはAzure上で動くため、Azure Container Registry、Microsoft Entra ID、Azure Monitorなど、Azureの各サービスと組み合わせられます。
例えば、自分で作成したコンテナイメージをAzure Container Registryへ保存し、そのイメージをAKS上で実行する構成を作れます。
スケールしやすい¶
アクセスが増えたときにPodの数を増やすだけでなく、Node自体を増やす仕組みも利用できます。
KubernetesのHorizontal Pod AutoscalerやAKSのNode側のスケーリングを組み合わせることで、アプリケーションとインフラの両方を負荷に合わせて調整できます。
AKSを使う前に知っておきたいこと¶
AKSは便利ですが、IT初心者がいきなり触ると分からない用語がかなり多く出てきます。
少なくとも、次の内容を先に理解しておくと学習しやすくなります。
- Linuxの基本操作
- IPアドレスやDNSなどのネットワーク
- Dockerなどを使ったコンテナの基本
- KubernetesのPod・Deployment・Service
- Azureのリソースグループや仮想ネットワーク
特にKubernetesの基本が分からないままAKSへ進むと、Azureの用語とKubernetesの用語が同時に出てきて混乱しやすくなります。
最初はAKSの作成方法を暗記するより、Azureがどこを管理し、自分がどこを設定するのかを理解することをおすすめします。
Azure CLIでAKSを作ってみる¶
ここからは、AKSを実際に作成して基本的な動きを確認します。
Azure Portalから作成する方法もありますが、画面構成は更新によって変わります。この記事では、処理内容が分かりやすいAzure CLIを使います。
学習目的のクラスターでもAzure上にリソースを作成するため、料金が発生する可能性があります。確認が終わったら、記事の最後で紹介する方法で不要なリソースを削除してください。
1. Azure CLIへログインする¶
自分のPCにAzure CLIをインストールして利用する場合は、まずAzureへログインします。
az login
ブラウザが開くので、利用するAzureアカウントで認証します。
Azure Cloud Shellを使う場合は、あらかじめAzureへログインした状態で利用できるため、この操作が不要な場合があります。
2. リソースグループを作成する¶
AKSクラスターを配置するリソースグループを作成します。
今回は myAKSResourceGroup という名前で、Japan Eastリージョンに作成します。
az group create \
--name myAKSResourceGroup \
--location japaneast
リソースグループは、Azureの複数のリソースをまとめて管理するための単位です。
AKSだけでなく、仮想ネットワークや他のAzureサービスを学ぶときにも何度も登場します。
3. AKSクラスターを作成する¶
続いてAKSクラスターを作成します。
学習用としてNodeを1台にした例です。
az aks create \
--resource-group myAKSResourceGroup \
--name myAKSCluster \
--node-count 1 \
--generate-ssh-keys
AKSの作成には数分以上かかる場合があります。
この例はKubernetesやAKSの動きを確認するための小規模な検証用構成です。本番環境では、可用性、Node数、ネットワーク、認証、監視、バックアップなどを別途設計する必要があります。
AKSクラスターを作成すると、利用者が指定したリソースグループとは別に、NodeなどのAKS内部リソースを管理するためのリソースグループもAzure側に作成されます。
Azure Portalを確認すると、似た名前のリソースグループが増えていて驚くかもしれませんが、AKSがNodeなどのインフラリソースを管理するために利用しています。
4. kubectlからAKSへ接続する¶
AKSクラスターを作っただけでは、まだKubernetesを操作していません。
Kubernetesを操作するときに利用するのが kubectl です。
Azure Cloud Shellには kubectl が用意されています。自分のPCへインストールする場合は、Azure CLIから次のコマンドを利用できます。
az aks install-cli
続いて、作成したAKSクラスターの接続情報を取得します。
az aks get-credentials \
--resource-group myAKSResourceGroup \
--name myAKSCluster
このコマンドによって、kubectl が作成したAKSクラスターへ接続できるようになります。
5. Nodeを確認する¶
AKSへ接続できたら、まずNodeを確認してみましょう。
kubectl get nodes
正常に接続できていれば、AKSのNodeが一覧に表示されます。
STATUS が Ready になっていれば、そのNodeでPodを動かせる状態です。
ここまで操作すると、Azure PortalでAKSを作っただけのときより、Kubernetesとの関係が見えやすくなります。
AzureがAKSというサービスを提供していますが、実際のアプリケーション操作では kubectl を使い、KubernetesのNodeやPodを扱います。
6. Deploymentを作成する¶
次に、簡単なWebサーバーを動かしてみましょう。
今回はnginxのDeploymentを作成します。
kubectl create deployment nginx \
--image=nginx
作成したDeploymentを確認します。
kubectl get deployments
Podも確認してみましょう。
kubectl get pods
Deploymentを1つ作成すると、その設定に従ってPodが作成されます。
Kubernetesの記事で学んだDeploymentとPodの関係を、AKS上でもそのまま確認できます。
7. Serviceを作成する¶
Podを作っただけでは、インターネットから簡単にアクセスできません。
そこで、nginxのDeploymentを外部へ公開するためにServiceを作成します。
kubectl expose deployment nginx \
--type=LoadBalancer \
--port=80
Serviceの状態を確認します。
kubectl get services
EXTERNAL-IP が割り当てられるまで少し時間がかかる場合があります。
IPアドレスが表示されたら、ブラウザからそのIPアドレスへアクセスしてみてください。nginxのページが表示されれば、AKS上で動かしたPodへAzureのLoad Balancerを通してアクセスできています。
元記事ではAzureの古い投票アプリのチュートリアルを紹介していました。

現在はMicrosoftのAKSクイックスタートも内容が更新されているため、古いチュートリアルのエラーを直しながら進めるより、現在の公式ドキュメントを利用することをおすすめします。
AKSではPodとNodeを別々に考える¶
AKSを触り始めたときに混乱しやすいのが、PodとNodeの違いです。
Nodeは、Podを動かすためのサーバーです。一方、Podは、そのNode上で動くKubernetesの実行単位です。
例えばNodeを3台に増やしても、アプリケーションのPodが自動的に3個になるとは限りません。反対に、1台のNode上で複数のPodを動かすこともできます。
アプリケーションを増減する場合はDeploymentやHorizontal Pod Autoscalerなどを使い、Node側の処理能力が足りなくなった場合はNode Poolのスケーリングを考えます。
この2つを分けて考えられるようになると、AKSの構成をかなり理解しやすくなります。
Azure Container Registryと組み合わせる¶
実際の開発では、nginxのような公開済みイメージだけでなく、自分で作成したアプリケーションのコンテナイメージを使います。
Azureには、コンテナイメージを保存するAzure Container Registry(ACR)があります。
開発の流れとしては、自分のアプリケーションからコンテナイメージを作成し、ACRへ保存します。その後、AKSからACRのイメージを取得してPodとして動かします。
AKSとACRを連携すると、Azure内でコンテナイメージの保存からKubernetesへのデプロイまでを管理しやすくなります。
Kubernetesを実務で使う場合は、AKSだけでなくコンテナレジストリやCI/CDまで含めて学んでいくことになります。
AKSとAzure Container Appsはどう使い分ける?¶
Azureでコンテナを動かすサービスはAKSだけではありません。
例えばAzure Container Appsを利用すると、KubernetesのNodeやClusterを細かく意識せずにコンテナ化されたアプリケーションを動かせます。
そのため、コンテナを使うから必ずAKSを選ぶわけではありません。
Kubernetesの機能やエコシステムを使いたい、Nodeやネットワークを細かく設計したい、複数のワークロードをKubernetesとして運用したい場合はAKSが候補になります。
一方、Kubernetesそのものを管理したいわけではなく、コンテナ化したWebアプリケーションやAPIを手軽に動かしたい場合は、Azure Container Appsなどの方がシンプルな場合があります。
サービス名から決めるのではなく、どこまでインフラを管理したいかで考えることが大切です。
学習が終わったらAKSを削除する¶
AKSではNodeとなるAzure VMなどのリソースを利用するため、作成したままにすると料金が発生する可能性があります。
学習が終わったら、不要なリソースを削除しましょう。
今回の記事で作成したものをまとめて削除するなら、リソースグループごと削除できます。
az group delete \
--name myAKSResourceGroup \
--yes \
--no-wait
削除対象のリソースグループ名が正しいことを必ず確認してから実行してください。
学習環境では、作るところだけでなく、不要になったリソースを削除するところまでを一つの流れとして覚えておくのがおすすめです。
AKSを理解するならLinux・ネットワークも重要¶
AKSの操作自体はAzure PortalやAzure CLIから始められますが、トラブルが起きるとLinuxやネットワークの知識が必要になります。
例えばPodから外部へ通信できない場合、Kubernetesだけでなく、DNS、IPアドレス、ルーティング、ファイアウォールなども確認する必要があります。
InfraAcademyでは、Linux、ネットワーク、Docker、AWS、セキュリティなど、クラウドやコンテナを理解するための基礎を初心者向けに段階的に学習できます。
AKSのコマンドを覚える前に、Nodeが何をしているのか、通信がどこを通っているのかを理解しておくと、Kubernetesやクラウドの学習も進めやすくなります。
Azure Kubernetes Service(AKS)まとめ¶
今回は、Azure Kubernetes Serviceについて解説しました。
AKSは、Azure上でKubernetesを利用するためのマネージドサービスです。KubernetesのControl PlaneをAzure側が管理してくれるため、自分でKubernetesを一から構築するより運用負荷を減らせます。
ただし、AKSを使えばKubernetesを知らなくてもよいわけではありません。Pod、Node、Deployment、Serviceなどの基本概念はAKSでもそのまま使います。
現在は、Azure側へより多くの運用を任せるAKS Automaticと、Node Poolなどを細かく管理できるAKS Standardがあります。どちらを使う場合でも、Kubernetesの基礎を理解していることが重要です。
初めてAKSを触る場合は、まず小さな検証用クラスターを作り、kubectl get nodes や kubectl get pods を実行してみてください。Azureのサービスとして見るだけでなく、実際にKubernetesが動いていることを確認すると理解しやすくなります。
参考¶
あわせて読みたい



