#1. 背景
前回の記事続きになります。Azureの基本的な構成を作ってみました。
Azureで基本的な構成を構築してみる①(前提、ネットワーク・VM作成)
Azureで基本的な構成を構築してみる②(ALB、DNS作成) ←今ここ
Azureで基本的な構成を構築してみる③(MySQL作成, VMからのSSL接続)
#2. アーキテクチャ図
今回はアプリケーションLBの作成と、DNSを用いて独自ドメインによるアクセスを可能にしていきます。
#4. 構築手順
###4.5 ApplicationGateway作成
Azureポータルで「LB」と打つと「ロードバランサー」がヒットします。
自分は最初、これがAWSでいうALBだと勘違いして作成してしまいましたが、Azureの「ロードバランサー」は第4層で動作するNLBになります。
今回、記事には書いてませんが要件でロードバランサーでSSLオフロードする必要があるため、NLBだと要件が満たせません…。
第7層で動作するALBは、Azureでは「Application Gateway」になります。初見だと分かりづらいですね。。
Azureポータルで「ロードバランサー」の画面に移動 → 「Application Gateway」 → 「+作成」
ApplicationGatewayのレベルとしてv1とv2がありますが、公式サイト見て料金計算してみたところ、v2だと固定コストだけでも、¥約2万/月もかかります…。
一方v1だと固定コストで最低 ¥約2千/月みたいです。
Azureとしてはv2が推奨されていますが、アプリケーションは運用初期でコストを抑えたいプラス冗長性不要なので、今回はv1を選択しました。
【基本】タブ
リソースグループ:VMを同じグループ選択
レベル:Standard
インスタンス数:1
SKUサイズ:S
HTTP2:有効
仮想ネットワーク:VMと同じVnet選択
サブネット:Vnet作成時に作った、AGW専用のサブネット選択
【フロントエンドの数】
ApplicationGatewayに割り当てるIPを設定します。
・フロントエンドの種類:両方
・パブリックIP:新規作成(Standardレベルでは動的IPしか選べない)
・プライベートIPの指定:任意
【バックエンドの数】
LBの背後に置くVMを設定します。
・バックエンドプールを新規作成。ターゲットに前記事で作成したVMを選択。
【構成】
ここではリスナー、(AWSでいう)ターゲットグループを設定します。
「ルーティング規則の追加」を押下」
○「リスナー」タブ
LBが外部からリッスンするポートを設定します。
・フロントエンドIP:パブリック
・プロトコル:HTTP(SSL化する場合はHTTPSを選択するが、その前に一旦HTTPで接続を試す)
・ポート:80(SSL化するなら443)
・リスナーの種類:Basic
・エラーページのURL:いいえ
○「バックエンドターゲット」タブ
どのバックエンドプールを使うか、バックエンドプールのVMの何番ポートに接続するか等をここで設定します。
HTTP設定を新規作成↓
・設定名:任意
・バックエンドプロトコル:HTTP
・バックエンドポート:80
・追加設定はデフォルトのまま
→作成
(ApplicationGatewayのデプロイには20~30分ほどかかりました。)
作成後、ALBのパブリックIPから、ブラウザよりVMのWebサーバ画面確認できればOK。
###4.6 VMのセキュリティグループ設定
ALBが作れたので、クライアントからはバックエンドのVMに直接アクセスできないように設定します。
Azureポータルで「Virtual Machines」 → 前記事で作成したVM → 「ネットワーク」と移動 → 「受信ポートの規則」タブ
HTTP規則を編集します。
・ソース:IP Adress
・ソースIPアドレス:ApplicationGroupの所属するサブネットのCIDR
→保存
これで、VMのパブリックIPではブラウザでアクセスできなくなります。
###4.7 DNS作成
お名前ドットコムから取得した独自ドメインをAzureで管理するための設定をしていきます。
DNSゾーンやAレコード作成は、AWSのRoute53が使えていれば難なくできると思います。
####DNSゾーン作成
Azureポータルで「DNSゾーン」に移動 → 「+作成」
【基本】タブ
・リソースグループ:VM, AGW等と同じリソースグループ選択
・名前:使用する独自ドメインを入力(ここがゾーン名となる)
→作成
####Aレコード登録
作成したゾーンに移動し、Aレコード(エイリアスレコード)として、ターゲットに上記で作成したAGWのパブリックIPを選択して保存します。
####NSレコードのメモ
後述の手順で、お名前.com側でAzureDNSのNSレコードを設定する必要があるため、このゾーン名のNSレコード4つをメモしておきます。
###4.8 お名前.com側のネームサーバ設定
お名前ドットコムにログインして独自ドメインの管理するネームサーバをAzureDNSのものに変更します。
上記でメモしたNSレコードを4つ入力して更新します。
30分〜1時間ほど経ってから、ドメインに対してAzure DNSのネームサーバが登録反映されているか確認してみます。
以下のコマンドにより、AzureのNSが表示されればOKです(場合によっては反映にもっと時間を要するかもしれません。)
$ dig -t NS <ドメイン名> +short
nsx-xx.xxxxxxxxxxx.xxx.
nsx-xx.xxxxxxxxxxx.xxx.
nsx-xx.xxxxxxxxxxx.xxx.
nsx-xx.xxxxxxxxxxx.xxx.
最後にブラウザを開き、http://<ドメイン名>/
でページ見れるか確認してみましょう。
次の記事では、DBとしてMySQLを構築していきます。