Windows Azure Virtual Machineの全体像を知ろう
Windows Azure Virtual Machineもクラウドサービスの配下に作成するサービスです。仮想マシンを作成する際に、クラウドサービスを新規に作成するか、既存のクラウドサービスに追加するかを選択します。クラウドサービスはDNS名(サブドメイン)と紐づきます(図3)。
同じDNS名に登録されている仮想マシン間はVirtual Machine名で直接通信でき、エンドポイントの設定に関わらずすべてのポートと通信することができます。別のDNS名にある仮想マシン間では、直接通信できません。 例えば、test01から、test03に通信するにはDNS名(example.cloudapp.net)でグローバルから接続する必要があり、その際には、エンドポイントで指定したポートでのみ通信できます。
Virtual Machineを作成する際に、仮想マシン名を指定します。指定した仮想マシン名がOS上のホスト名に登録されます。仮想マシン名は、AzureのインターナルのDNSにも登録されます。DNSが名前解決してくれるので、同じDNS名に登録された仮想マシン間であれば、仮想マシン名で直接通信できます。
仮想マシン作成直後は、「仮想マシン名=ホスト名=DNS登録名」となっています。Windowsイメージの場合は、例えばリモートデスクトップで仮想マシンに接続しホスト名を変更すれば自動的にDNSが更新されます。Linuxイメージの場合は、hostname newnameコマンドを使用すると自動的にDNSが更新されるよう、Windows Azure Linux Agentに機能が組み込まれています(注7)。
仮想マシンにインターネット経由で接続するためのエンドポイント
Windows Azure Virtual Machineの仮想マシンにインターネットから直接接続することはできません。接続するにはエンドポイント設定するかWindows Azure Virtual Networkなどを使用する必要があります。
エンドポイントは、接続可能なプロトコル(TCP/UDP)とポートを指定して通信できるようにすることで、インターネット経由で仮想マシンにトラフィックを到達させることができます。
例えば、Webサーバーとして仮想マシンを使用したい場合、エンドポイントを次のように設定します(図4)。
- Name: iishttp
- Protocol: tcp
- Local Port: 80
- Public Port: 80
上記の設定をすることで、インターネットから80番ポートで接続し、ローカルポート80番に接続することができます。
またセキュリティの観点から、インターネットから接続する場合のポートとローカルポートをずらすポートフォワードを設定することもできます。例えば、リモートデスクトップの既定のポートを使用しないことで多少のセキュリティ向上をさせることができます。仮想マシンを作成した際にデフォルトで作成されるリモートデスクトップ用のエンドポイントはポートフォワードになっています(図4)。
- Name: RemoteDesktop
- Protocol: tcp
- Local Port: 3389
- Public Port: 9000
