Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

仮想マシンV1とV2

自己学習のため概念をまとめました。予め断っておくと、チラ裏なので、間違っているかもしれませんし、深掘りできていないです。まあ、必要なことはすべてブチザッキに書いてあると思いますし、以下を読めばわかることだと思います。

azure.microsoft.com

従来の仮想マシン(V1)

ざっくり従来の仮想マシンは以下の構成でした。V1では従来のPaaSの延長線上に仮想マシンをぶち込んできた感じの構成となっています。

要素 説明
クラウドサービス 仮想マシンのコンテナとして、URL(=IPアドレス)や暗黙的なロードバランサーを提供。PaaSのクラウドサービスと混同されることが多くてアレ。
ストレージ VHDの保存場所として
アフィニティーグループ 当初は仮想ネットワークを作成するときに必須だったけど、いまではオワコン
仮想ネットワーク 通称VNET。いまではリージョン仮想ネットワークがデフォルト。構成しなくても仮想マシンは作成できるので必須ではない
仮想マシン Persistent VM Roleみたいな感じの位置づけ。PowerShellで種別をみるとそのように表示されたり。

その他にも、予約済みIPアドレスを付与できたり、VM毎にパブリックIPアドレス割り当てられるようになってきましたが、割愛。

仮想マシンV2

V2ではざっくり分離、再構成されています。

要素 説明
パブリックIP IPアドレスを提供するリソース。URLも、"ドメインラベル.ロケーション.cloudapp.azure.com" となる。
ネットワークインタフェースカード VMに付与するネットワークアダプタのリソース。内部IPを固定化するとかの話は、従来と同じ。
仮想ネットワーク 仮想ネットワークは必須。アフィニティグループという概念は消え去りました。
ストレージ VHDの保存先、V2なのでクラッシックポータルから見えないが、URL等はV1と同じだったので、Blob Explorer的なツールで普通にアクセスできる
仮想マシン 仮想マシン
ロードバランサー 前回の記事の通り、必須でなはいが、これがないとNICが直接インターネットにさらされているようなイージになるので、あったほうがよいと思われる。

まず、クラウドサービスがありません。V1ではクラウドサービスというコンテナが、URL、IPアドレス、暗黙的なロードバランサなどを一括して提供していたわけですが、それらは個々のリソースとして定義する必要があります。またロードバランサーは必須でなかったりします。

したがって、仮想マシンV2を作成するために最低限必要なリソースは、

  • 仮想マシン
  • ストレージアカウント
  • ネットワークアダプター
  • パブリックIPアドレス
  • 仮想ネットワーク

となります。

定義されているリソースになにがあって、どんなプロパティをもって、どんな依存があるかは、いまのところREST APIをみないと分からないっぽいんですが、VSやARMExplorerのツールサポートがあるから、そこまで知る必要はないのかもしれません(が、そこを理解しないと先に進めないタイプなので)。

ちなみにAzure PowerShellを使うと、一覧は出せたりします。

S C:\> (Get-AzureProvider -ProviderNamespace Microsoft.Network).ResourceTypes

ResourceTypeName                                Locations                                      ApiVersions                                   
----------------                                ---------                                      -----------                                   
virtualNetworks                                 {West US, East US, North Europe, West Europ... {2015-06-15, 2015-05-01-preview, 2014-12-01...
publicIPAddresses                               {West US, East US, North Europe, West Europ... {2015-06-15, 2015-05-01-preview, 2014-12-01...
networkInterfaces                               {West US, East US, North Europe, West Europ... {2015-06-15, 2015-05-01-preview, 2014-12-01...
loadBalancers                                   {West US, East US, North Europe, West Europ... {2015-06-15, 2015-05-01-preview, 2014-12-01...
networkSecurityGroups                           {West US, East US, North Europe, West Europ... {2015-06-15, 2015-05-01-preview, 2014-12-01...
virtualNetworkGateways                          {Central US, East Asia, East US}               {2015-06-15, 2015-05-01-preview, 2014-12-01...
localNetworkGateways                            {Central US, East Asia, East US}               {2015-06-15, 2015-05-01-preview, 2014-12-01...
connections                                     {Central US, East Asia, East US}               {2015-06-15, 2015-05-01-preview, 2014-12-01...
applicationGateways                             {Central US, East Asia, East US}               {2015-06-15, 2015-05-01-preview, 2014-12-01...
locations                                       {}                                             {2015-06-15, 2015-05-01-preview, 2014-12-01...
locations/operations                            {}                                             {2015-06-15, 2015-05-01-preview, 2014-12-01...
locations/operationResults                      {}                                             {2015-06-15, 2015-05-01-preview, 2014-12-01...
locations/CheckDnsNameAvailability              {}                                             {2015-06-15, 2015-05-01-preview, 2014-12-01...
locations/usages                                {}                                             {2015-06-15, 2015-05-01-preview, 2014-12-01...
operations                                      {}                                             {2015-06-15, 2015-05-01-preview, 2014-12-01...
dnszones                                        {global}                                       {2015-05-04-preview}                          
dnszones/A                                      {global}                                       {2015-05-04-preview}                          
dnszones/AAAA                                   {global}                                       {2015-05-04-preview}                          
dnszones/CNAME                                  {global}                                       {2015-05-04-preview}                          
dnszones/PTR                                    {global}                                       {2015-05-04-preview}                          
dnszones/MX                                     {global}                                       {2015-05-04-preview}                          
dnszones/TXT                                    {global}                                       {2015-05-04-preview}                          
dnszones/SRV                                    {global}                                       {2015-05-04-preview}                          
trafficmanagerprofiles                          {global}                                       {2015-04-28-preview}                          

とりあえず、今回はここまで。