Azure のしくみ

Azure は、Microsoft のパブリック クラウド プラットフォームです。 Azure では、サービスとしてのプラットフォーム (PaaS)、サービスとしてのインフラストラクチャ (IaaS)、およびマネージド データベース サービスを含む大規模なサービス コレクションを提供しています。 しかし、そもそも Azure とはどんなもので、どのように動作するのでしょう。


他のクラウド プラットフォームと同様に、Azure は仮想化と呼ばれる技術に依存しています。 ほとんどのコンピューター ハードウェアは、ソフトウェアでエミュレートできます。 コンピューター ハードウェアは、シリコンに永続的または半永続的にエンコードされた命令のセットにすぎません。 エミュレーション レイヤーは、ソフトウェアの命令をハードウェアの命令にマップするために使用されます。 エミュレーション レイヤーを使用すると、仮想化されたハードウェアを実際のハードウェア自体のようにソフトウェアで実行できます。

基本的には、クラウドは 1 つ以上のデータセンター内の物理サーバーのセットです。 データセンターは、顧客のために仮想化されたハードウェアを実行します。 では、クラウドはどのようにして、膨大な数の顧客に対する、仮想化されたハードウェアの大量のインスタンスを作成、開始、停止、および削除しているのでしょうか。

サーバーを理解するために、データセンターのハードウェアのアーキテクチャを見てみましょう。 各データセンターの内部では、数々のサーバーがサーバー ラックに置かれています。 各サーバー ラックには、多数のサーバー ブレードとネットワーク スイッチが格納されています。 これらによって、ネットワーク接続と、電力を生成する配電ユニット (PDU) が提供されます。 場合によっては、ラックは、クラスターと呼ばれるより大規模な単位にグループ化されています。

ユーザー向けの仮想化されたハードウェア インスタンスを実行するために、サーバー ラック (クラスター) が選択されます。 しかし、一部のサーバーでは、ファブリック コントローラーと呼ばれるクラウド管理ソフトウェアが実行されます。 ファブリック コントローラーは、さまざまな役割を担う分散アプリケーションです。 ファブリック コントローラーはサービスを割り当て、実行しているサーバーおよびサービスの正常性を監視し、エラーが発生した場合はサーバーを回復させます。

ファブリック コントローラーの各インスタンスは、通常はフロント エンドと呼ばれるクラウド オーケストレーション ソフトウェアを実行している別のサーバー セットに接続されます。 フロント エンドでは、クラウド内のすべての関数で使用される Web サービス、RESTful API、および内部 Azure データベースをホストしています。

たとえば、フロントエンドでは、顧客の要求を処理するサービスがホストされます。 この要求により、Virtual MachinesAzure Cosmos DB などの Azure リソースとサービスが割り当てられます。 最初に、フロント エンドは検証を行い、要求されたリソースを割り当てる権限がそのユーザーにあることを確認します。 権限がある場合、フロント エンドはデータベースを確認して十分な容量のあるサーバー ラックを検出し、ファブリック コントローラーにリソースを割り当てるよう命令します。

Azure は、一連の複雑な分散アプリケーションを実行する、膨大な数のサーバーとネットワーク ハードウェアが集まったものです。 これらのアプリケーションでは、これらのサーバー上の仮想化されたハードウェアとソフトウェアの構成と運用のオーケストレーションを行います。 これらのサーバーのオーケストレーションによって、Azure は非常に強力なものとなっています。 Azure では、ユーザーはハードウェアの保守やアップグレードを行う必要がありません。これは Azure によって背後で実行されるためです。

次のステップ

Azure Resource Manager を使用して Azure にリソースをデプロイする方法について説明します。