Azure Arcを介した統合管理とセキュリティ・ガバナンスの一元管理も。オンプレミス環境でも実現できる、クラウドネイティブなアプリのインフラ

デジタルトランスフォーメーション(DX)の流れの中で、新しいサービスを迅速に開発し、提供する場として、コンテナーをはじめとするクラウドネイティブな環境が注目を集めています。

Azure Stack HCI Bootcampの最終回、「クラウドネイティブなプラットフォームとしてのAzure Stack HCI」では、MicrosoftのWorldwide Learning Azure Technical Trainer、小塚大介氏が、コンテナーをはじめとするクラウドネイティブなアプリケーションを動かすインフラとして、Azure Stack HCIがどのように役立つのかを紹介しました。

多様化し、各地に分散するITインフラの効率的な管理を支援する「Azure Arc」

今、ITインフラの姿は多様化しています。昔のようにオンプレミス一辺倒でもなければ、すべてがクラウドネイティブなわけでもありません。中にはエッジサイトだったり、インターネットに全くつながらないような環境だったり、様々な環境でシステムを構築運用することもあるでしょう。

アプリケーションが動作する場所もまちまちです。仮想マシンかもしれませんし、コンテナーかもしれません。使われているプログラミング言語も多様でしょう。
また、実際にそれらが動いている場所も、データセンターのケースもあれば、ホスティングサービス上だったり、複数の異なるパブリッククラウド上だったり、あるいはIoTデバイスの上だったりと、様々なケースがあるはずです。

こうした複雑な環境の中で一定のレベルにセキュリティやガバナンスを保とうとすると、とても複雑な運用が求められる時代になっています。

例えば、一口にパブリッククラウドといっても、Microsoft Azure向けのガバナンス機能とAmazon Web Services(AWS)のガバナンス機能、Google Cloud Platform(GCP)向けのガバナンス機能、それぞれを個別に使い分けなければならないケースも珍しくはありません。

そこでマイクロソフトはこうした様々な場所にあるシステムをできるだけ効率的に管理するため、「Windows Admin Center」や「Azure Arc」をはじめとする様々なサービスや製品を提供し、クラウド環境もオンプレミスの環境も一元的に管理し、ガバナンスを適用できる仕組みを作ろうとしています。

Azure Arcは特にそうした考え方を具現化したもので、Azure上のリソースはもちろん、オンプレミスやAWS、GCPといった環境上で動作するSQL DB Managed Instanceのようなサービスも統合管理できる仕組みを目指しています。

「Azure Arcを使うと、様々な場所で動いているインフラを統合的に管理・運用できます。具体的には、Azureのサービスの中で、AWSの仮想マシンやGCPの仮想マシン、あるいは様々な場所にあるデータベースなどのガバナンスやセキュリティの管理を一括して行えます」(小塚氏)

コンプライアンス対応やセキュリティ対策、課金管理も一元化

現在多くのIT管理者は、ITシステムの複雑化に伴って様々な課題に直面しているかと思いますが、Azure Arcを活用することでそれらが解決できるかもしれません。

一例がコンプライアンスです。システムやインフラが分散する中で、一定のコンプライアンスやガバナンスを効かせていく作業は非常に困難になっていますが、「Azure Arcではそれを一括でコントロールできるようになっており、ミスなく、漏れなくガバナンスを効かせることがより容易になっていきます」(小塚氏)

セキュリティも同様です。多くの企業では、データの機密性や重要度に応じて、クラウドやホスティングベンダーの環境に保存するものと、自社でコントロールできるオンプレミス環境に置くものを分類しているでしょう。その一方で、管理はできるだけ一元的に、効率的に行いたいという、相反する要求もお持ちのはずです。Azure Arcは、こういった矛盾にも対応できるシステムを作っていくことができると小塚氏は説明しました。

「Azure Arcを使えば、インフラストラクチャの観点では一元管理ができるようになりますし、データやサービスの観点でいくと、オンプレミスやクラウド、ホスティングベンダーやエッジサイトといった場所を問わずに同じシステムを使うことができ、運用が楽になります」(小塚氏)

もう1つ、地味ですが課金モデルの統合も実現できます。これまでのオンプレミスの環境では、システム構築時に相応のイニシャルコストをかけ、ソフトウェアライセンスを購入して使っていました。一方、パブリッククラウドの世界では使った分だけ課金されるモデルが一般的で、この2つの課金モデルが併存していますが「オンプレミスであってもクラウドと同じ課金モデルに変えていくことができるのも、Azure Arcの機能です」(小塚氏)

Azure ArcデータサービスやKubernetesにも一元的な管理を提供

Azure Arcが実現する機能を見ていく前に、現在のMicrosoft Azureがどのような形で管理され、動作しているかを確認しましょう。

現在、Microsoft Azure上のリソースを管理するために、「Azure Portal」のほか、「Azure PowerShell」「Azure CLI」といったツールが利用されているはずです。これらのツールからAzureに管理コマンドが送られ、仮想マシンをはじめとするリソースを作成して運用し、ガバナンスの適用やセキュリティの強化、運用の効率化などが実現されます。

ここにAzure Arcが加わるとどうなるのでしょうか。「利用者、管理者はこれまでと同様、Azure PortalやAzure PowerShellを使って管理をしていきますが、管理レイヤーにAzure Arcを追加することによって、Azureだけでなくオンプレミス環境やAWS、GCPといった他社の環境にあるインフラやサービスも管理できるようになっていきます。つまり、Azure Portalから様々な場所のインフラやサービスを管理できる仕組みを作れます」(小塚氏)

最終的には、様々な場所に分散し、複雑化したITインフラを統合的に管理できるようになります。クラウドネイティブなアプリケーションであろうと、Azure Arc enabled SQL Serverのようなデータサービスであろうと、またそれらがAzureで動いていようと、またAWSやGCP、ホスティング環境で動いていようと、OSがWindows ServerであろうとLinuxであろうと、同じセキュリティ設定、同じガバナンス設定を適用できるのです。

現在パブリックプレビューとして提供されているAzure Arc enabled SQL Serverも、Azure Arcで管理できます。「SQL Serverの中には、企業にとって重要なデータが保存されており、きちんとガバナンスを効かせていくことが大変重要になってきます。それを効率化する機能がAzure Arcに追加され、パブリックプレビューとしてリリースされています」(小塚氏)

そして現在、クラウドネイティブなアプリケーションの基盤として注目されているのが、オープンソースのコンテナーオーケストレーター「Kubernetes」です。Azure ArcではこのKubernetesがオンプレミス環境にあっても、Azure上にあっても、あるいは他社のクラウド上にあっても一元的に管理できる機能を提供していきます。

つまり、「Azure Arcを使えば、皆さんが運用しているAzureクラウド上のコンピューティングリソースに加え、AWSやGCP、オンプレミスやホスティングデータセンターにあるコンピューティングリソースなどを、Azureの管理機能を使って一元的に管理できるようになります」(小塚氏)

具体的にはどんな管理が可能になるのでしょうか。小塚氏はいくつか画面を示しながら具体例を紹介しました。

たとえばAzure Portalを開けば、リソース一覧上にAzure上にある仮想マシンはもちろん、Azure Arcを介してオンプレミス環境や他社のクラウド上にあるサーバーが表示されます。

そしてAzure Policyを使って、場所を問わずにすべてのサーバーに対して一元的に同じポリシー、同じガバナンス要件を適用できます。

さらに、AzureのUpdate Management機能もAzure Arcに対応しており、そのサーバーがどこにあろうとパッチ適用を管理できますし、Azure Monitorを使えば一元的な管理が可能です。

さらにAzure Security CenterやAzure Defenderといったセキュリティ機能もまたAzure Arcに対応しています。

前述の通り、Azure Arc enabled SQL Serverへの対応機能もパブリックプレビューで提供されています。

これを活用すれば、オンプレミスなどAzure以外の環境にあるSQL Serverに対し、Azure Policyを使ってセキュリティ的に必須の設定項目を強制しつつ、Azure Security Centerを使ってセキュリティの推奨事項を作り、Azure Defenderを使ってログを監視して不正アクセスの兆候がないかをチェックし、Azure Sentinelを使ってセキュリティログやイベントを吸い上げ、統合管理する—といった具合に、Azureの様々な機能を活用した管理が可能になります。

オンプレミス環境のコンテナーも一元的に管理し、クラウドライクな利点を提供

Azure Arcはさらに、Kubernetes向けの機能も強化しています。

ご存じの方も多いかと思いますが、KubernetesはDockerコンテナーを使って迅速にアプリケーションをデプロイし、マイクロサービスアーキテクチャでサービスを実現するオーケストレーション基盤です。

Kubernetes自体はオープンソースソフトウェアとして提供されていますが、様々なベンダーがKubernetesと互換性のあるマネージドサービスを展開中です。マイクロソフトもその1社で、Azure上でKubernetesが動作するマネージドサービス「Azure Kubernetes Service」(AKS)を提供しています。

ただ、様々な場所や環境でKubernetesが動作し、その上でアプリケーションが動くようになると、これまでと同じような問題が発生します。あちこちに分散したKubernetes環境の管理、セキュリティやガバナンスの統一が煩雑になりつつあるのです。

マイクロソフトがAzure ArcのKubernetes向け機能を搭載している理由はそこにあります。

「この機能を使えば、Azure Portalからいろいろな場所にあるKubernetes環境を一元的に管理し、Azure Policyを用いてガバナンスのルールを強制的に適用し、Azure Monitorを使ってモニタリングするといったことが可能になっていきます」(小塚氏)

小塚氏は、実際の画面を交え、Azure Portalから世界各地の様々な環境にあるKubernetes環境を一覧表示し、管理する様子を紹介しました。

Azure ArcによるKubernetesの一元管理と、Azure SQL Managed InstanceやAzure Database for PostgreSQL Hyperscaleをはじめとするデータサービスを組み合わせれば、さらに一歩進んだ管理が可能になります。AKSはもちろん、AWS上のKubernetes、GCP上のKubernetes、そしてオンプレミスにあるKubernetesなど、場所がどこであっても、Azure SQL Managed Instanceなどが動かせるようになっていくのです。

もともとAzure SQL Managed Instanceは、マイクロソフトが様々な管理を行い、常に最新の状態が維持されることが特徴です。ユーザーは必要なときにすぐ立ち上げ、使えるようになります。もちろん、スケールアップやスケールアウトも容易で、性能が足りなくなればすぐに拡張できます。

こうした特徴はクラウド環境特有のもので、これまでオンプレミス環境ではなかなか実現が困難でした。しかし「いよいよオンプレミス環境でもクラウドと同じようにこれらの利点を享受できます。しかもAzure Arcを使うことで、どんな場所にあるAzure SQL Managed InstanceでもAzure Portalを用いた一元管理ができ、管理性も高くなっています」と小塚氏は述べました。

さらに「オンプレミスで自分でSQL Serverを作っていた場合、高可用性や災害対策環境もすべて手動で用意しなければなりませんでした。しかしAzure Arcを使えば、それらの設定を半分マイクロソフトに任せることができます」(小塚氏)。Kubernetes高可用性環境の作成は自力で行う必要がありますが、それでも作業の多くの部分を委ねることができます。

Azure SQL Managed Instanceのもう1つの利点が、自動的にバックアップが取得され、任意のタイミングで戻せる点です。こうしたバックアップ周りの管理機能もAzure Arc経由で提供されますし、モニタリング、監視系の機能も利用できます。

AzureのPaaSサービスと比べ、Azure Arcのデータベースサービスでは、コンプライアンス認定の取得作業を自力で行う必要があったり、SLAの提供範囲が異なるといった違いがあるのも事実です。
ですが、これまでマイクロソフトがAzureで培ってきた様々な機能が、Azure Arcを介することでオンプレミス環境でも利用できるようになっていきます。

Azure Stack HCIとAKSの実現で、煩わしいことを一切考えずに済む環境を

ここで、今回のテーマである「クラウドネイティブなアプリケーションプラットフォーム」のあり方について考えてみましょう。

Azure Stack HCIは、クラウドとオンプレミスのハイブリッドな環境を意識した新しいシステムです。実はこのAzure Stack HCI上に、KubernetesのマネージドサービスであるAKSを動かしていくというコンセプトの機能が追加されています。

これにより、パブリッククラウド上で動作するAKSとの整合性を取りつつ、ハイブリッドな環境でコンテナーが動作するようになり、しかもAzureで提供されている様々なセキュリティ機能も活用できます。その上AKSではLinuxのコンテナーだけでなくWindowsのコンテナーも動作するため、「自分たちの使いやすいコンテナー上で自分たちのアプリケーションを使うことができます」(小塚氏)

Kubernetes環境は、スケジューラーやコントローラマネージャーが動くコントロールプレーン、そしてコンテナーを動かすノードといった要素で構成されます。各ノードにはKubernetesのモジュールがインストールされ、コントロールプレーンのAPIと連携しながら、デプロイなどの作業を行うことになります。もしどれかのノードに障害が発生した際に備えた高可用性コンテナーレイアウトや負荷分散の実現なども、クラスターマスターが処理します。

AKSではこのコントロールプレーンの機能を、マイクロソフトがマネージする形で提供しています。従って、「皆さんがコントロールプレーンを構築したり、冗長化やセキュリティ設定、パッチ適用といった事柄を気にする必要はありません。やることは、ノードを作ってコントロールプレーンにつないであげることだけです」(小塚氏)

こうした特徴を備えたAKSをオンプレミスの環境でも使えるようにしたい—それを実現するのがAzure Stack HCIです。Azure Stack HCIにAKSのモジュールをデプロイし、Azure Stack HCIの機能を使って冗長化すれば、「AKS側の冗長化やパッチ適用作業などを一切気にすることなく、オンプレミス環境でもKubernetes、AKSが使えるようになり、クラウドネイティブなアプリケーションを便利に動かせるようになります」と小塚氏は説明しました。

なお、Azure Stack HCI上で動作するAKSモジュールは、パブリッククラウドで動作するAKSとの互換性はもちろん、オープンソースのKubernetes、あるいはAWSやGCPといったほかのクラウドサービスで動作するKubernetesベースのマネージドサービスとの互換性も確保しています。

Azure Stack HCIへのセットアップも簡単です。小塚氏はデモを交えつつ、Windows Admin Centerを使い、いくつかの項目を入力するだけで簡単にセットアップできることを説明しました。

この組み合わせでは、セキュリティ関連の設定・対策がしっかり行われることも利点の1つです。

「クラスターマスターのソフトウェアもコンテナーで提供されていますが、そのイメージはマイクロソフトがパッチを当て、セキュリティ対策を一通り行った上で提供する形です。しかも、Kubernetes自体のセキュリティ設定も強固にしています」(小塚氏)。従ってあらかじめセキュリティに配慮した形でデプロイが行われる上、Azure Security CenterやAzure Stack HCIの機能を組み合わせることで、効率的なセキュリティ管理・監視が行えます。

オンプレミス環境でも実現できる、クラウドネイティブなアプリのインフラ

Azure Arcは、多様な場所にあるインフラを統合的に管理できるよう、様々な機能を追加しています。その中には仮想マシンだけでなくKubernetesの管理機能も含まれます。同時に、Azure Stack HCI上でAKSが動作するようになり、オンプレミス環境で簡単に、クラウドネイティブなアプリケーションが動作する環境を、マネージドサービスの形で実現できます。

たとえばここで、SQL Managed InstanceをはじめとするAzure Arcデータサービスが動作することで、「Azure Stack HCIで簡単に作ったAKS上で、Azureマネージドなデータサービスを動かせるようになります。もちろんAzure Arcの配下に入るため、Azure Portal等を使った一元的な管理が可能です」(小塚氏)

何より、Azure Stack HCIとAKSの組み合わせにより、クラウドネイティブなモダンなアプリケーションのインフラが、オンプレミス環境でも問題なく構築、運用できます。しかもAzure Arcを介して、Azure Portalをはじめとする様々なツールを使って管理が可能です。

「オンプレミス環境であってもモダンなシステム、クラウドネイティブなアプリケーションを動かすインフラを簡単に作り、簡単に運用できる環境を作ることを目指して、マイクロソフトは様々なサービスや製品を提供しています」(小塚氏)。それをハードウェアに近い部分で支えるのがAzure Stack HCIであり、より便利で近代的なアプリケーションを簡単に動かせる環境を提供し、ビジネスのDXを支援していきます。

Azure Stack HCI を使い始める(製品ページ)

詳しい動画解説を見る
(Azure Stack HCI Bootcamp Japan 第6回)

文:高橋睦美

  1. 「最高の開発者体験」を実現したい。急成長する「NewsPicks」ブランドの開発思想を探る
  2. 変化の激しい時代にあって再注目されるTDDの重要性。「Qiita × Uzabase Tech Meetup #1」イベントレポート