皆さん、Azure使っていますか?使っていませんね
普通に使うならAWSだと思います。しかし、世の中にはAzureを使わざるを得ないこともあります。
そんな理不尽を戦いながら、調査した内容をしたためてみました
AppService Environmentについて
AzureにはGAEのぱくったAppServiceというContainerServiceが存在しており、VisualStudioで実装すればとても簡単にデプロイできます
WebサービスをAzure上に構築する際にはよっぽどのことがないかぎりAppServiceで実装するのが良いでしょう
しかしながら、このAppServiceはクラウドのサービスなのでデプロイした際にIPが決まるのですが、Azure自体はIPが変わらないことを保証しているわけではありません。エンタープライズの用途で使う際にはIPを固定化して使いたいという用途があります
ここで用いるのがAppServiceEnvironment(以下、ASE)というもので仮想ネットワーク(以下、VNET)以下にAppServiceに作れるという代物です
ここが難しいよ、ASE
IPは最初の作成時に割り振られる
既存IPは設定できない
Azure上に展開できる他のサービスのCloudServiceなどは予約IPを購入しておき、そのIPを設定して使うような作りになっています。しかし、ASEは環境作成時自動で割り振られてそのIPが変わらない、ということを保証してくれる仕組みとなっています。ですので、予め確保してあるIPを割り当てる、ということはできません。
なんかよく分からないv1とv2の差異
だまってV2使っておけ
このASEにはv1とv2が存在しており、これの使い分けが分かりません
しかもドキュメントも分かりにくくどちらがどちらを指しているのかページを追っていくと分からなくなったりします
App Service Environment v2 の概要
App Service Environment v1 の概要
IPを固定したいという用途だけならv2を使っておけばまず問題ありません
ので黙ってv2を使っておくことをおすすめします
サブネット設定の罠
サブネットは新規で作るべし
ASEを作成時に必ず設定するVNET上に新しいサブネットを作成する必要があります
既存のVNETを使うとそのVNET上にあるサブネットにかぶらないように新しいサブネットを構成する必要があり、とてもめんどくさいです
上記のようになっていたら設定不可ですね…
だまって新規で作成する方が楽です
AppServiceの作り方が分からない
まずAppServicePlanを作れ、話はそれからだ
ASEを作ると意味合い的にその下にAppAerviceが作れるのかな、と思うのですが探せど探せどそんなUIはASEのUI上には見つかりません
下記の順を追わないとAppServiceを作ることが出来ないのです
- ASEを作る
- 上記で作成したASEを場所としてAppServicePlanを作成する
- 上記で作成したAppServicePlanを指定してAppServiceを作成する
ASE環境を作っておくとAppServicePlanの作成をしようとすると場所に作成したASEを指定できるようになっています
これを使ってAppServicePlanを作成します
次にAppServiceを作るのですが、通常AppServiceの名称部分は下記のように表示されています
ここで先程作成したAppServicePlanを入力すると下記のように表示が変わります
先程作成したASEがサブドメインとして設定されていることが分かると思います
このままAppServiceを作成すればASE以下にAppServiceを構築することができます
まとめ
なんとかAppServiceのIPの固定化に成功しました
これでIPが代わってしまう可能性がある日々から解放されました