はじめに
Windowsとの互換性か、Open AIの流行からかAzureの名前を聞くことが増えてきたのでAzureも勉強する必要がでてきました。。
資格勉強は基本すぐ飽きてしまうので、とりあえずあるあるっぽいアーキテクチャ考えて構築してみました。
(手を動かすのは大事。)
Azureはまとまった記事が少ないので大変でしたね、、笑笑
やること
AWSで最初に学ぶであろう↓をAzureで再現しようと思います。
AWS Hands-on for Beginners 〜 スケーラブルウェブサイト構築編 〜
前回、前々回で構築したものが近いですかね。
僕のブログではPHPインストールしてDBのデータ表示するとこまでやってますよお👀
AWS学習ステップを使用した構築のお勉強③
AWS学習ステップを使用した構築のお勉強④
アーキテクチャ
AWSとAzureの違いに苦戦しながらとりあえず考えてみました。(アイコンミスってたらごめんなさい)
注意点
- AWSでいうALB=Application Gateway
→SSL化する場合AzureのLoad Balancerでは不可(NLBのため)
→v2推奨だがめちゃ高い。今回はv1で構成 - Application Gatewayには専用のサブネットが必要
→自動スケールとかできるらしい。そのためVMと共同のサブネットは不可 - DBは逆にサブネットが必要ない
→Basicプランではインターネット経由でDBに接続する必要がある。
DB付属のFirewallで接続元IPを絞ることは可能
→本来やとアーキテクチャのようにEndpoint→PrivateLinkが望ましいが予算の都合上カット。 - ロードバランサ用の無料SSL証明書がない。
→App Serviceにはありそう。今回は検証のためカット。
構築開始
とりあえず構築してみます。
タグ管理が便利そうだったので、リソースグループにタグ強制付与ポリシーを作っておきます。
ネットワーク作成
Application Gateway用, VM用×2のサブネットを持ったVNETを作成しました。
仮想マシン(VM)作成
VMをとりあえず1台作成しました。ここにApacheをインストールしてWEBサーバにします。
サイズは「B1ls」より「B1ms」の方が良いと思います。「B1ls」はスペック低すぎました。
その後VM1をコピーしてVM2を作成します。
セキュリティグループ作成
Azureではデフォルトでインバウンド(VNET, LoadBalancer)、アウトバウンド(VNET, LoadBalancer, internet)が設定されているので、SSHで接続するために穴を開ける必要があります。
また、AWSと異なりAzureはサブネット・NICともにセキュリティグループで制御します。
作成したサブネットはVM1,VM2サブネットに紐づけています。
接続確認
ここからのAWSでもAzureでも変わらないので以下参照。
AWS学習ステップを使用した構築のお勉強①
2台目の仮想マシン作成
Azure VMを複製するためには「スナップショット作成」→「マネージドディスク作成」→「VM作成」の手順が必要になります。
スナップショット作成
マネージドディスク作成
先ほど作成したスナップショットを選択し、マネージドディスクを作成します。
仮想マシン複製
マネージドディスクからVMを作成します。
サブネットはVM2を選択しましょう。
接続確認
Application Gateway作成
AWS ELBを触ったことがあれば道なりに沿って設定すればいけます。まじで。
Application Gatewayのセキュリティグループ作成
仮想マシンのセキュリティグループ更新
Application Gatewayからの80番ポートを許可しておきます。
Application GatewayのパブリックIPで接続確認
DNS作成
名前は各自取得したドメイン名を記載します。
オススメ お名前.com
レコードの登録
AレコードにApplication GatewayのIPアドレス。
お名前.comのネームサーバにNSレコードの値を登録します。
ネームサーバ登録方法→AWS学習ステップを使用した構築のお勉強②
接続確認
DB作成
作りました。構築以外の作業はAWSとほぼ変わらないのでカット。
割と高いのと実用するにはBasicでは機能が足らなさそう。
おわり!!
1度AWSで同じような環境作成したことあったら簡単にできると思います。
ただ、Application GatewayとかDBが高いし、Firewall立てたりってなるとさらに料金がかさむ。。
AWSで良くねってなるかも。(要件がWin10とか、OpenAIとの連携が無ければ)
リソースグループで管理できるのとか、構築時のUIはAzureの方が好きかも。
ただAzureはApp Serviceとかコンテナ周り、Azure DevOpsが優秀そうなのでその辺を触ってみたいところ。
シンプルなサーバとかサーバレスあたりはAWSかなあ笑笑