Azure Kubernetes Serviceとは?概要からクラスターを構築→Nginx公開手順まで解説

Azure

クラウド、コンテナ、マイクロサービス──。ITインフラのトレンドがどんどん変わる中、Kubernetes(クーバネティス)という言葉を耳にしたことがある方も多いのではないでしょうか?
そのKubernetesをもっと手軽に、効率よく運用できるようにしたのが、Microsoft Azureが提供する「Azure Kubernetes Service(AKS)」です。

では実際に、AKSとはどんなサービスで、何ができるのでしょうか?初心者の方にもわかりやすく、丁寧に解説していきます。

そもそもKubernetesって何?

Kubernetes(K8s)は、コンテナ化されたアプリケーションを自動的にデプロイ・スケーリング・管理するためのオープンソースのプラットフォームです。
複数のコンテナ(Dockerなど)をまとめて効率よく動かすためのサービスを指します。

Azure Kubernetes Service (AKS)とは?

Kubernetesは非常に強力な反面、セットアップや運用が複雑で専門知識が必要なのがネックになります。そんな課題を解決してくれるのがAKSです。

AKSは、Kubernetesの構築・運用をAzureが肩代わりしてくれるマネージドサービスです。
利用者は、アプリケーションのデプロイやスケーリングなど、Kubernetes本来の便利さを活かしながらも、インフラ部分の面倒な管理をAzureに任せることができます。

Azure Kubernetes Service (AKS)の構成要素

AKSの内部では、以下4つの主な構成要素がしっかり役割分担して動いています。

  1. コントロールプレーン
     Kubernetes全体の「司令塔」。すべての命令・制御がここから始まります。
  2. ノードプール
     ノード(VM)をグループ化する仕組み。役割や性能で分類して効率的に管理。
  3. ノード(VM)
     コンテナを実際に動かす“実行基盤”。Azure上の仮想マシン。
  4. Pod(ポッド)
     最小の実行単位。コンテナをまとめた“箱”。ノード上で動く。

コントロールプレーン:AKSの頭脳部分

AKSのコントロールプレーンは、Kubernetes全体を管理する「指令塔」。
ユーザーがアプリケーションをデプロイしたり、スケーリングしたりする命令は、まずこのコントロールプレーンが受け取ります。

  • Podの配置場所を決める
  • ノードのヘルスチェック
  • スケジューリングや自動復旧の管理

AKSではこのコントロールプレーンをマイクロソフトがマネージドで提供・管理してくれるので、自分でインストールや運用をしなくて済むのが大きなポイントです。

ノード:AKSの“裏側”ではVMが動いている

AKSはKubernetesをマネージドで提供してくれる便利なサービスですが、その裏側で実際にアプリケーションを動かしているのはAzureの仮想マシン(VM)です。
このVM群のことを、Kubernetesの世界では「ノード」と呼びます。

AKSを使う=Azure上にVMを立てて、その上でコンテナを動かすという構成になっています。

シリーズ特徴向いている用途
Bシリーズ(Burstable)コスト重視、軽量処理向け開発・検証、小規模アプリ
Dシリーズバランス型。多くの用途で安定Webアプリ、APIサーバーなど
Eシリーズメモリ多めデータ処理、キャッシュ系、ML
FシリーズCPU高性能バッチ処理、ゲームサーバー、CI/CD
GPUシリーズ(NC, NDなど)GPU搭載AI/機械学習、映像処理など

代表的なシリーズは表の通りです。処理が軽ければBシリーズでコストを抑え、バランスよく運用したいならDシリーズが無難です。

🔄 ノードプール:ノードをグループで管理する仕組み

AKSでは、同じような性質のノードをまとめて管理できるように「ノードプール」という概念があります。

  • ノードのOSやVMサイズごとに分けて設定可能
  • LinuxノードとWindowsノードを混在させることも可能
  • GPU専用プールなど、用途別に構成できる

「開発用」「本番用」「GPU計算用」など、役割に応じたグループ分けができるのが大きなメリットです。

📦 Pod:アプリケーションの“最小単位”

Kubernetesでアプリをデプロイするときに登場するのが「Pod(ポッド)」。
これは、1つ以上のコンテナをまとめた最小の実行単位です。

Podはノードの上に配置されて実行され、アプリケーション、ログ、ネットワーク設定などをひとまとめにして管理します。

Azure Kubernetes Service (AKS)の特徴

特徴内容
✅ マネージド運用Kubernetesの複雑な構築・アップデート・管理をAzureが代行
✅ スケーラビリティアクセス量に応じて自動でスケール(増減)可能
✅ Azure連携モニタリング、セキュリティ、ID管理などがAzureネイティブに使える
✅ コスト最適化実際に使ったリソースに応じた従量課金制。開発環境でも使いやすい

数あるKubernetes環境の中から「AKS」が選ばれているのでしょうか?
プロのエンジニア視点で、その理由を5つにまとめてみました。

① インフラ構築・運用の「作業コスト」が圧倒的に低い

Kubernetesは自由度が高い反面、初期構築や運用が非常に複雑
マスターの管理、etcdの構成、スケジューラーの設定、アップグレード…自前でやろうとするとそれだけで専任が必要になります。

AKSではそれらの煩雑な作業をAzureがマネージドで提供してくれるため、
エンジニアはアプリケーション開発やCI/CDの設計に専念できます。

💬「Kubernetesは触りたいけど、全部自分で構築するのはしんどい」
→ そんな現場にとって、AKSは最適なサービスです。

② Azureとの統合が強力。特にエンタープライズ系に強い

AKSは、Azureの各種サービス(Key Vault、Monitor、Azure AD、Log Analytics など)とネイティブに統合されているのが強み。

  • RBACをAzure Active Directoryと連携
  • シークレット管理をKey Vaultで一元化
  • クラスターログをAzure Monitorで集中監視
  • ネットワークはAzure VNetで柔軟に設計

特にセキュリティ要件が厳しいエンタープライズ環境では、これらの統合性が評価されるケースが非常に多いです。

③ オートスケール&ローリングアップデートがスムーズ

AKSでは、クラスターレベルでもPodレベルでもオートスケーリングが可能
また、アップグレードやノードの入れ替えもローリング(無停止)で行えるため、継続的な運用がしやすい。

💬「深夜に手動デプロイ?もうやってられない」
→ AKSなら、自動化と無停止運用が当たり前に。

④ DevOpsパイプラインとシームレスに組める

Azure DevOps や GitHub Actions との相性が抜群。
Gitリポジトリへのプッシュをトリガーに、ビルド → コンテナ化 → AKSへデプロイという一連のフローをすぐに構築できます。

  • HelmやKustomizeとの連携もスムーズ
  • ステージング環境・本番環境をAKS内で分けて運用可能
  • WebhookやSlack通知などの統合も容易

CI/CDを前提とした開発フローにおいて、AKSは“素直に動く”設計がされていると感じます。

⑤ コストと性能のバランスが優れている

AKSはコントロールプレーンが無料(Freeレベル)または固定価格(Standard/Premium)で提供され、コスト予測がしやすいのが魅力。

さらに、ノードのVMサイズを柔軟に選べるため、性能と価格のバランス調整も自在。

  • 開発用 → Burstable VMで格安に
  • 本番用 → DシリーズやEシリーズで安定運用
  • GPUやメモリ特化ノードも選択可

リソースを細かく調整できる=使った分だけ払う合理的なクラウド設計がしやすいということです。

Azure Kubernetes Service (AKS)の活用シーンは?

AKSは、以下のようなシナリオで特に力を発揮します。

  • 複数環境(Dev / Staging / Prod)を統一基盤で管理したいとき
  • CI/CD(継続的インテグレーション/デリバリー)による自動デプロイ
  • コンテナで動かすAI・機械学習の基盤として
  • グローバル展開アプリの可用性・スケーラビリティ確保

たとえば、「アクセスが集中するECサイトのトラフィックに自動対応したい」など、柔軟で安定したアプリケーション運用をしたい場面で重宝されます。

Azure Kubernetes Service(AKS)の利用料は?

AKSの料金は、大きく分けて以下の3つの要素で構成されています。
詳細な料金については、Azure公式ページよりご確認ください。

コスト項目課金の有無内容
✅ クラスター管理(コントロールプレーン)課金あり(Standard以上)クラスタごとの固定費。レベルによって金額と性能が変動
✅ ノード(仮想マシン)課金あり利用するVMの台数・種類・使用時間によって変動
✅ ディスク(ストレージ)課金ありVMに接続されるストレージの種類・サイズに応じて課金

ノードとディスクに関しては、表に記載している通りインスタンス数やストレージのサイズが増えれば料金も高くなります。

クラスター管理について

AKSでは、利用目的やシステムの重要度に応じて選択可能な
3つのクラスターレベル(Free / Standard / Premium)が用意されています。

Freeレベル:コストゼロでスタート

AKS Freeレベルは、開発・検証・学習用途など、「まずは試してみたい」というユーザーに最適です。

  • クラスター管理費:無料
  • 支払うのは、ノード(仮想マシン)やストレージ、ネットワークの利用分のみ
  • 機能は限定的だが、Kubernetesの基本的な操作や動作確認には十分

💡 開発チームや個人での検証にピッタリ。小さく始めてスムーズに次のレベルへ移行可能です。


Standardレベル:商用・本番環境に最適

Standardレベルは、安定性・拡張性・コストのバランスが取れたプランで、多くの企業やプロダクトでの本番運用に選ばれているレベルです。

  • 月額:¥11,022 / クラスター(2025年4月時点)
  • SLA(サービス品質保証)付き
  • スケーラブルなコントロールプレーンにより、高負荷にも対応
  • ノード数の上限がFreeよりも大幅に緩和されており、拡張性も高い

💡 中〜大規模アプリケーションの安定運用を求めるなら、このレベルがベストチョイス。


Premiumレベル:最高グレード

Premiumレベルは、金融・医療・製造など、「絶対に落とせない本番環境」での利用を想定したレベルです。

  • 月額:¥66,134 / クラスター(2025年4月時点)
  • 最大2年間のサポート提供
  • より強化された可用性・耐障害性
  • すべてのミッションクリティカルなワークロードに対応可能

💡 高信頼・高サポート体制が必要な企業インフラの基盤構築におすすめです。

無料枠はあるの?

AKS自体には「無料ノード枠」はありませんが、Azure無料アカウントを使えば最初の30日間で一部のリソース(VM、ストレージなど)に対して約¥22,500分のクレジットが付与されます。
クレジットを使ってAKSのテスト環境を構築するとお得に実装ができます。

Azure Kubernetes Service (AKS)のデプロイ手順

今回は、Azure Kubernetes Service(AKS)にNginxをデプロイし、ブラウザで「Welcome to nginx!」の初期画面を表示するまでの手順を解説します。Kubernetesの学習用やテスト環境として最適です。

1. Kubernetes クラスターの作成

まずは、AzureポータルからKubernetesクラスターを作成します。

Screenshot

Basic

Screenshot

サブスクリプション、リソースグループは自身の環境で作成しているものを選択します。
クラスターのプリセット構成:今回はテスト環境を作成するため「Dev/Test」を選択します。

Screenshot

テスト環境のため、自動アップグレード、ノード セキュリティ チャネルの種類の設定はなしとしています。本番環境等で使用する場合は、用途に合わせて変更してください。

認証と認可 の項目は以下を参照して選択してください。

オプション認証認可(アクセス制御)特徴
1. Kubernetes RBAC を使用したローカルアカウントローカルアカウント(kubeconfig)KubernetesのネイティブRBAC一番シンプル。学習や検証に向いてる
2. Kubernetes RBAC を使用した Microsoft Entra ID 認証Microsoft Entra ID(旧 Azure AD)KubernetesのネイティブRBAC認証にID統合、でもアクセス制御はK8s標準
3. Azure RBAC を使用した Microsoft Entra ID 認証Microsoft Entra IDAzureのRBACでアクセス制御Azure管理者向け。K8sに詳しくなくてもOK

ノード プール

次にノードプールを構成します。

  • ノードサイズ:学習用途として「Standard A2 v2」など小さめのサイズでOKです。
  • ノード数やスケーリング:今回は特に変更しませんが、必要に応じて調整してください。

※ ノードサイズの詳細は Azure公式ドキュメント をご参照ください。

ノード プールの更新ページで、サイズの選択をクリックすると変更が可能です。

統合

「統合」タブでは、AKSで使用するコンテナーレジストリを作成します。

  • レジストリ名はAzure全体で一意である必要があります。他のユーザーと重複しない名前を設定してください。
  • その他の項目はデフォルトのままで問題ありません。

最後に「確認および作成」からAKSをデプロイします。

2. クラスターに接続する

AKSの作成が完了したら、ローカル端末からクラスターへ接続してみましょう。ここではVisual Studio Codeのターミナルを使います。

Azure CLIでログイン

az login

kubectlの構成

az aks get-credentials --resource-group <リソースグループ名> --name <AKS名>

接続確認

kubectl get nodes

STATUSReady になっていれば、クラスターが正しく構成されています。

3. アプリケーションをデプロイ

準備

  • フォルダ内に nginx-deployment.yaml ファイルを作成し、以下の内容を記述します
  • デスクトップに AKS-test フォルダを作成
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:latest
          ports:
            - containerPort: 80

---

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: LoadBalancer
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

VScode上で画像のようになっていればOKです。

Screenshot

デプロイコマンド

kubectl apply -f nginx-deployment.yaml

service/nginx-service createdが出力されていればデプロイ成功です。

4. Nginxの画面を確認する

以下のコマンドで、外部IPアドレスを確認します。

kubectl get service nginx-service

出力結果のEXTERNAL-IPに記載されているIPアドレスをコピーしてWebで検索を行います。

Welcome to nginx! が表示されていればデプロイ成功です。

リソースの削除(任意)

今回の操作が検証目的であり、今後リソースを使用しない場合は、不要な課金を防ぐために以下のいずれかを削除しておきましょう:

  • リソースグループ
  • AKSクラスター
  • コンテナーレジストリ
az group delete --name <リソースグループ名>

まとめ

今回は、Azure Kubernetes Service(AKS)を使ってKubernetesクラスターを構築し、Nginxをデプロイする手順をわかりやすく解説しました。

「Kubernetesって難しそう…」という印象があった方も、AKSを使えば、クラスターやノード管理が簡単にできることがわかったのではないでしょうか。

別の記事では、他のAzureのリソースについて概要やデプロイ手順を解説しています。合わせてご覧ください。

プロフィール
tanat

「株式会社あいてぃ」に所属。
主にAWSとAzureなどのクラウドインフラを管理するクラウドエンジニアとして活動中。
スマホアプリやフロント部分の構築も可能なフルスタックエンジニアとして活躍できるように日々勉強中です。

tanatをフォローする
Azure
tanatをフォローする

コメント

タイトルとURLをコピーしました
function cocoon_custom_code_copy_script() { ?>   } add_action('wp_footer', 'cocoon_custom_code_copy_script');