ARP:Address Resolution Protocol
通信には4つのアドレスが必要
- 送信元(自分の)のIPアドレス
- 送信元(自分の)のMACアドレス
- 送信するインターフェース(要するに送信元のコンピュータ?)に固有のMACアドレスを使用する
- 送信先(宛先)のIPアドレス
- 送信先(宛先)のMACアドレス
- ARPの役割はここ!
ARPとは
「IPアドレス〇〇にデータを送信したいので、MACアドレスを教えて」
というプロトコル。
ARPの動作の流れ
- 【ARP送信側】宛先のMACアドレスを把握するためにARPテーブルを参照する
- 【ARP送信側】ARPテーブルに宛先のIPアドレスがない場合は、ARP要求をブロードキャストする(そのネットワーク内の全てのコンピュータに送信する)
- 【ARP受信側】ARP要求の宛先IPアドレスを確認する
- 【ARP送信側】ARP応答を受け取り、ARPテーブルに応答の結果を追記する
- ARPテーブルに載っているIPアドレスとMACアドレスの対応は一定時間経つと消去される(300秒の設定が多い)
参考
Azure App Service プランを作成すると、OSがWindowsになってしまう
概要
最近、Azure App Serviceを可用性ゾーンにデプロイすることができるようになった(ゾーン冗長)。これで、アプリケーションを別々のゾーンに分散できるようになり、リージョンを別にするよりも手軽に可用性向上ができるようになる。
このゾーン冗長を利用するべく、App Service Planを作成した。
App Serviceの可用性ゾーンを使用する際の制約など
このゾーン冗長の設定は、2022年1月の段階で
- App Service プランを作成するときのみ設定できる
- 既存のApp Service プランにゾーン冗長を追加することができない
- Azure Portalから設定できない(ARMテンプレートを使用する必要あり)
などの制約がある。
ARM テンプレートでApp Service プランを作成する
テンプレートの内容
{ "$schema": "http://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "hostingPlanName": { "type": "string" }, "sku": { "type": "string" }, "skuCode": { "type": "string" }, "numberOfWorkers": { "type": "string" } }, "resources": [ { "apiVersion": "2020-12-01", "name": "[parameters('hostingPlanName')]", "type": "Microsoft.Web/serverfarms", "location": "[resourceGroup().location]", "kind": "linux", "properties": { "zoneRedundant": true, // これがtrueだとlinux / falseだとwindows "reserved": true, }, "sku": { "tier": "[parameters('sku')]", "name": "[parameters('skuCode')]", "capacity": "[parameters('numberOfWorkers')]" } } ] }
手順
- Azure portalの[カスタム テンプレートからのデプロイ]
- [作成]を選択
- [エディターで独自のテンプレートを作成する]を選択
- 表示されたエディタにARMテンプレートをコピぺ
- [インスタンスの詳細]を埋める
- ARMテンプレートのparametersの中で指定した項目が表示される(skuやskuCodeなど)
- デプロイ
これで、このApp Service プランに登録するApp Serviceを複数のゾーンに分散することができる(Zone redundantがtrueになっているはず)。
なお、Linux App Service プランを使用したい場合は、
- kindをlinuxに
- properties.reservedをtrue
にする必要がある。
詰まったこと
"properties": { "reserved": true, },
が抜けていた。
kindをlinuxにして、properties.reservedをfalseにすると、Linuxプランなのに、OSがWindowsになるというなんとも気持ち悪い状態になってしまった。
パッと見で、reservedがLinuxかどうかを指定するプロパティに見えなかったので、悩んだ。
結局、答えはドキュメントに書いてあった。
properties.reserved boolean Linux app service プランの場合は true 、 false それ以外の場合はです。
参考にさせていただいたサイト
【Azure】App Service プランについてのざっくりとした理解
App Service プランとは
ざっくりとした理解
- マシンスペックを定義するもの
- サーバーファームみたいなもの
- アプリケーションを入れる箱
App Service プランを作成するのは、仮想サーバを1台作る(借りる)イメージ。
作成時には、サーバのスペック(CPUやメモリ)とインスタンス数を決める。
このサーバ上で、App ServiceやAzure Functionを動かすことができる。
App Service プランで実行できるもの
- App Service
- Web Apps
- API
- Mobile
- Azure Functions
同じApp Service プランに紐づくApp ServiceやFunctionのスペックやインスタンス数は同じ
スペックやインスタンス数は、あくまでもApp Service プランに対して設定する。 同じApp Service プランに登録されたApp ServiceやFunctionは、同じスペック、同じインスタンス数となる。
スケールアップ
- 1台のサーバのスペックを上げること。具体的にはCPUのコア数やメモリ
- 必要な時に一時的に変更することはできない
スケールアウト
リージョン
App Service プランのリージョンとそこで実行されるアプリのリージョンは、同一である必要がある
App Service プランの価格に影響するもの
- OS(Windows, Linux)
- リージョン
- VMインスタンス数
- VMインスタンスのサイズ
- 価格レベル(Free、Shared、Basic、Standard、Premium、PremiumV2、PremiumV3、Isolated、IsolatedV2)
CPUの利用状況では価格は変動しない。
App Service プランの価格プラン
- Free、Sharedプランは複数ユーザーで仮想マシンを共有する。そのため、CPUやストレージのスケールアウトはできない
- 最大インスタンス数
- Basic: 3
- Standard: 10
- Premium: 30
- ディスク領域
- Basic: 10GB
- Standard: 50GB
- Premium: 250GB
参考
マスターしたいショートカットキー一覧
【Windows】
デスクトップ画面を表示する
windowsキー + D
設定画面を表示する
windowsキー + I
エクスプローラを起動する
windowsキー + E
ウィンドウを大きく(小さく)する
windowsキー + 上下矢印キー
新しいフォルダを作成する
Ctrl + Shift + N
前(後ろ)のフォルダに戻る
Alt + 横矢印キー
親フォルダに移動する
Alt + 上矢印キー
プロパティを表示する
Alt + Enter
【ブラウザ(Chrome)】
タブを閉じる
Ctrl + W
タブを切り替える
Ctrl + Tab
一番左のタブに移動
Ctrl + 1
一番右のタブに移動
Ctrl + 9
アドレスバーを選択状態にする
Alt + D
戻る&進む
Alt + 横矢印キー
ブックマックバーの表示非表示を切り替える
Ctrl + Shift + B
閲覧履歴を削除する
Ctrl + Shift + Delete
ページの一番上(一番下)に移動する
Home(End)ボタン
【全般的に当てはまるもの】
起動しているアプリケーションを閉じる
Alt + F4
ファイルを開く
Ctrl + O
行頭(行末)に移動する
Home(End)ボタン