今年からAzureの案件にはいっていろいろとインフラ周りを整理しておりますので、復習も兼ねて少しまとめておこうかと思います。
とりあえず出てくる重要な概念やサービスを五月雨に・・・
Contents
AzureAD(Active Directory)
Azureで行われる認証サービスです。シングルサインオンのため、一度のログインで複数のアプリケーションに(Azure他、Officeなどにも)アクセスできるようになります。
同じログインでも一般的に複数のアカウントを持つことが一般的かと思いますが、このアカウントのことをディレクトリといいます。
リージョン
AWSでも使われてますが、普通に地域で世界に60程度。同じ地域でも東日本リージョンと西日本リージョンのようにペアになっていることが多いようです。
可用性ゾーン
ゾーン1〜3などとデータセンターレベルで可用性を向上させる仕組みになります。
VM(=VirtualMachine)
普通に仮想マシンですね。AWSでいうとEC2です。これ自体に何かアプリをデプロイして・・というよりはローカルからここにつないでデバッグなどをするためにつかうことが多いのではないでしょうか。
リソースとリソースグループ
一般的な言い方だと思いますが1つ1つのサービスのことをリソースといい、各リソースはリソースグループに紐づいています。リソースグループとは親のようなものになるため、リソースグループを削除すると紐づいているリソースも全て削除されます。ちなみにリソースグループのリージョンと各リソースのリージョンはバラバラでもよいようです。
リソースはユーザーが任意に作成するのですが、複数のリソースからなるリソースを作ると管理や削除の面から専用のリソースグループが自動でつくられるようです。例えばVMの場合、仮想マシン以外にディスク、パブリックIPなどもつくられるため、専用のリソースグループがつくられます。
サブスクリプション
各リソースとそのコストを管理する仕組みとして、サブスクリプションがあります。主に支払などの単位を管理します。サブスクリプションの下にさまざまなリソースグループが紐付きさらにその下に関連するリソースが紐づきます。
現在の現場では本番用のサブスクリプションと開発用のサブスクリプションがあり、各リソースグループとリソースがこの下に紐づいています。
Storage
AWSでいうところのS3のようなストレージサービスになります。
主に以下のようなものがあるようです。
Azure Blob Storage
オブジェクト単位のデータでデータをアップロードorダウンロードできるようです。普通のファイルもそうですが、テキストデータやバイナリデータのようなものの格納も可能なようです。また静的なWebサイトのホスティングなどにも使われます。
Azure Files
VMやローカルのコンピューターに対してmountして共有が可能なようです。スナップショットやバックアップなどのファイルの記録なども可能です。
Azure Queue Storage
メッセージのキューの保存などで使われるようです。
Azure Table Storage
使ったことないのですが、NoSQL向けのデータストアのようです。
モニタリング系(Azure Monitor/LogAnalytics/Application Insights)
主に各リソースのパフォーマンスの監視やアラート、ログ出力などを管理するサービスです。
一般的なCPU使用率やメモリ以外には、例えばCPU使用率がn%になったらメールを飛ばす、などもできますし、LogAnalyticsというサービスでは、KQLというSQLに似た構文で、ログを抽出できます。
たとえば過去24時間以内に、特定のwebアプリでログレベル=infoのものでログ本文に****といったような文字が含まれているログの抽出などです。
Application Insightsではさらにアプリ単位のパフォーマンスチェックなどができます。
Logic Apps
Azure内のサービスを組み合わせて、連携させるサービスです。結局、使わなかったのですが、
- 決まった定時にLogAnalyticsから特定のクエリを抽出
- それをBlobStorageにCSVに加工して保存
といったサービスをノーコードで組みました。
AWSでいうとStepFunctionのようなもののようです。
AppService
いろんな言語のプラットフォームが搭載されていて、またスケリーングも可能なPaaSです。2021年-2022年のプロジェクトでゴリゴリ使ってました・・・
OSや言語ランタイムがすでに搭載されているので、バージョンアップなんかを気にすることなく、またロードバランサーも搭載さているので、アプリ開発だけに専念できます。
ソースをpullするか、成果物のzipをそのままエントリーポイントにデプロイすればいいのでめっちゃ楽です。herokuに近い感じ。AWSでいうと使ったことないのですが、Elastic Beanstalkというものが近いようです。
参考文献