こちらのjs, DockerベースのPlaygroundをAzureにデプロイすることを第一目標とする。
https://github.com/cmc-labo/ares
Azureに慣れていないため、storage, gateway, lb, container, function, sql database, active directoryなど各種機能は使わず、Azure Virtual Machinesのみ
### 全体の流れ
1. Azureポータル(https://portal.azure.com/)にログインする
2. 仮想マシン(vm)を作成
3. ネットワークからインバウンドルールで3000ポートの開通
4. ターミナルからsshログイン
5. git, dockerなどをインストールしてgit cloneした後にdeploy
### 仮想マシンの作成
サブスクリプション: 自分のAzureアカウントに紐づく課金形態
リソースグループ: 作成済みの選択か新規作成
仮想マシン名: VMの名前
リージョン: 東日本(Japan East)など
可用性オプション: 単一インスタンス
イメージ: OSの種類 Ubuntu 22.04 LTSなど
サイズ: B1s(1vCPU, 1GB RAM)
認証タイプ: SSH公開キー
ユーザ名: azureuserなど
SSH公開キー
インバウンドポートの規則: 22, 80
※AWSでいうVPCやセキュリティグループの作成は不要
### インバウンドルールで3000ポートの開通
作成したvmの「ネットワーク」→「ネットワーク設定」
ソース: any
ソースポート範囲: *
宛先: Any
サービス: Custom
宛先ポート範囲: 3000
プロトコル: TCP
アクション: 許可
優先度: 1000
名前: AllowAnyCustom3000Inbound
### SSH接続
vm作成時に生成したpemファイルを使用する
$ ssh -i ~/hoge/azureuser.pem azureuser@${ip}
あとはアプリを動かすのに必要なもの(git, node, npm, Dockerなど)をインストールして起動
sudo apt update sudo apt install git git clone https://github.com/cmc-labo/playground.git cd playground sudo apt install nodejs npm npm install sudo apt install dos2unix dos2unix rust-runner.sh chmod +x rust-runner.sh sudo docker build -t rust-runner . node server.js
### Azure CLI の SSH接続 と mac の SSH接続の違いについて
Azure CLI のコマンド az vm ssh -n
mac やLinux端末があるなら、直接 ssh コマンドを使うのが確実
### AzureのVPC, SecurityGroupの概念
AzureでもVNet(仮想ネットワーク)の中に作られる(自走生成される)
subnetはVNetの中に複数作ることができる
SecurityGroupはAzureではNSG(ネットワークセキュリティグループ)で、自動的に割り当てられる
Internet Gateway はAzureは自動
Elastic IPは静的 or 動的の選択が可能
Route Table 明示的に作る場合は別途設定が必要
Azureは最小入力でVMをすぐ作れるという思想
AWSとの違いを意識しながら学ぶと整理しやすい