Azure WebAppsを利用して新規Webアプリを作成するときは、Azure側が「azurewebsites.net」のサブドメインにそのアプリを割り当ててくれます。
たとえば、Webアプリの名前が「zuvuyalink」の場合、URLは「zuvuyalink.azurewebsites.net」といった感じで。
また、Web上で一般的に利用する各種ポート(HTTP、SSH、HTTPSなど)もキチンと開けておいてくれます。
仮想マシンの場合は、これらの設定を自力でやらないといけない…ということで、軽くハマってしまったので手順とポート周りについての説明などのメモです。
AzureのIPアドレスについて
AzureではIPアドレスは、デフォルト設定は「動的」。
つまり固定しないと、IPドメインが都度変わってしまうことになります。
これだとSSHする際にも、再起動やAzure側のメンテナンスでIPが変わってしまう…。
これを解決するには、
1.IPを固定して、その後独自ドメインを割り当てる
2.Azure側のドメインに名前を付ける
の2つの方法があります。
1.IPを固定して、その後独自ドメインを割り当てる
本番運用などでどうしてもIPアドレスを固定にする必要がある場合はこちら。
2.Azure側のドメインに名前を付ける
この方法はDNSも不要で仮想マシンの停止をしても変わることがありません。
一般的なWeb利用(サイトを構築するとか)であれば、こちらの方がよいかと。
とりあえず、Azureの仮想マシンを作ったら、名前を割りあててDNSラベルをつけましょう。
こうすれば、その名前でIPが変わってもアクセスができるし、独自ドメインを割り当てるときに「CNAME」で解決できます。
Azureの仮想マシンに「DNS名ラベル」を設定する
赤枠内の「パブリックIPアドレス/DNS名ラベル」部分をクリック。(xxx.xxx.xxx.21のようにIPアドレスが表示されています)
パブリックIPアドレスが開くので「構成」をクリック。
割当は「動的」のまま、「DNS名ラベル」に任意の名前を入力。(今回は「zuvuya-kusanagi」)
これで「zuvuya-kusanagi.japanwest.cloudapp.azure.com」というURLを使えるようになりました。
ポートの確認
仮想マシンに「DNS名ラベル」をつけたら、次は必要な「ポート」を開きます。
このあたり、個人的にモヤっとしていたのですが、わかりやすい例で教えていただいたのでまとめておきます!
ポートについて
インターネットは「IPアドレス+ポート」でお互いが通信しているので、ポート番号の指定をする必要があります。
駅でたとえてみるとわかりやすいので、身近な駅で例えてみると…
「小倉駅=アドレス」、「ホーム=ポート」。
※小倉駅は山陽新幹線・九州新幹線が止まり、JR在来線・特急が止まる駅。
ポート番号について
1023以下では暗黙の了解があって、これをwell known port(ウェルノウンポート)(良く知られた、公知のポート)といいます。
さて、「ポート番号」が自由ということは、この駅の話で例えると「新幹線のホームにソニック(特急)が突然いるようなもの」。
なので、公に使うポート番号は決まってないと困りますよ、という話。
※「well known port(ウェルノウンポート)」のところ、初めは「1000番未満」と表記していましたが下川先生にご指摘いただきましたので修正しました。ありがとうございました!
ポートを開ける
Webサーバであれば、一般的には「22:SSH / 80:HTTP / 443:HTTPS」を開けます。
ですので、このルールを1個作って複数のネットワークインターフェイスに割り当てることも可能。
しかしながら全部に適応できるわけでなく、駅のたとえを使うと「小倉駅と熊本駅は同じルールだけど佐賀駅は違うルール(佐賀駅は新幹線が止まらないから)」みたいなイメージ。
また、入ってくるポートを制限することも可能。
さてAzureの場合、「ネットワークセキュリティグループ」を確認すると、どの仮想マシンのネットワークインターフェイスに、どのセキュリティグループが割り当てられているかわかります。
「ネットワークセキュリティグループ」は該当のリソースグループから参照した方が早く見つかります。
仮想マシンからだと[仮想マシン] > [ネットワークインターフェース] > [ネットワークセキュリティグループ]で表示できます。
「受信セキュリティ規制」をクリック。
今回はAzure MarketPlaceに登録されている「KUSANAGI for Microsoft Azure」の仮想マシンを使ったので、ポート「HTTP(80) / SSH(22) / HTTPS(443)」が既に開いています。
自分で仮想マシンを立てた場合は、この部分の設定も忘れずに!
最後に
今回の「駅にたとえて説明」などのわかりやすい説明は @kazumihirose さんに教えていただきました。
技術レベルに合わせて適切な解説をしていただけて大変感謝です。毎度ありがとうございます!m(_ _)m
知識があいまいな人間には身近な例で説明してもらえるととても理解しやすいな、と改めて思いましたw
基本的に「黒い画面は極力触りたくない、Azureポータル画面を使いたい派」ですけども、もう少し仮想マシンとも仲良くなりたいと思います~。