ということで、これを知っておくと捗ると思うものを独断と偏見で書いていきたいと思います。
リソースとリソースグループ
Azure にサーバーを立てたり何かを作ったりするときに、必ずリソースグループやリソースという単語を見ることになります。 これを知らないと、なんなのこれ?これ作るとお金かかるの?どうなの??という心配が心をよぎると思います。ということでまずは、ここから書いていこうと思います。
- リソース:Azure 上に作れるもの全てがリソース (VM や Docker のレジストリーやストレージなど全て)
- リソースグループ:リソースをまとめて入れることが出来るフォルダーみたいなもの。リソースは必ず何らかのリソースグループに入れないといけないので必須です。
ポータルの左側のリストにリソースグループというものがあると思います。
ここをクリックするとリソースグループのリストが出てくるので、ここから各リソースグループに行って作られたリソースを見にいくということをよくします。
リソースグループをクリックすると、こんな感じでリソースグループ内のリソースの一覧が出てきます。
簡単に消せて怖い!
リソースグループ単位でざくっとリソースを消すことが出来たりします。削除ボタンを押すと以下のような画面が出てきてリソースグループ名を入れると削除できます。
個人的には、さくっと試してさくっと消す用途に使うことが多いので大変便利なのですが、本番環境をさくっと消されるかと思うと怖い場合には、リソースやリソースグループなどの単位でアクセス権を設定できます。
ちゃんと運用するときは、間違って消されない(消さない)ことを祈るよりもファイルシステムの権限管理などと一緒で権限ちゃんとつけて運用するのがいいと思います。
リソースグループとかをもっと知りたい人は以下のドキュメントあたりを見るといいかも。
Web 開発者向けサービス
さて、リソースを作ろう!!となっても数百種類もあるので迷います。ということで便利なものをいくつかピックアップ。
Azure App Service
まずお勧めなのが Azure App Service です。Linux や Windows ベースのランタイム込みのマイクロソフトが管理しているコンテナーが簡単に作れるというようなサービスです。
.NET はもちろん Node.js, Java, PHP, Ruby, Python などが組み込みでサポートされていて、スケールアウトやスケールアップ機能などもあります。 アプリのコードをデプロイするだけで簡単に使えるのでお手軽です。
スロットと呼ばれるもので本番環境、ステージング環境、テスト環境を管理出来て任意のタイミングで本番環境とステージング環境を入れ替えたり出来て捗ります。
ちなみに、上記のような Azure のサービス概要紹介みたいなページに行ったらドキュメントリンクをクリックしましょう。ドキュメントに飛びます。 実際に開発するときには、ドキュメントを読みます。
App Service の中には動かすアプリケーションの形態に応じていくつか種類があります。
- Web App : Webアプリ用です。
- Function App : サーバーレスアプリ用です。
- Logic App : デザイナーでワークフロー組み立てて動かすものです。
Web App を作りたい場合はポータルのリソースの作成から Web App で検索すると出てきます。
Web アプリを選択して作成を押すとウィザードが走るので、必要事項を入力して作成する感じです。
App Service プランというものの上に実際の Web App が乗る感じで、App Service プランで性能とかを設定できます。フリープランもあります。
デプロイも git push でデプロイしたりビルド結果を zip に固めて REST API でアップロードしてデプロイしたり色々な方法があります。
Docker 使いたいのですが
Web App for Container にデプロイすれば OK です。
プライベートなレジストリーが欲しい場合は Azure Container Registry になります。
Kubernetes が使いたい場合は Azure Kubernetes Service というサービスがそれです。
DB が欲しい
Microsoft が管理してくれる MySQL、PostgreSQL、SQL Database などがあります。好きなの使いましょう。 自分で管理しないといけない理由がある場合は VM でも立ててその上に構築しましょう。
NoSQL がいい
CosmosDB というのが Azure 一押しの NoSQL になります。 新規作成時にアプリからアクセスするときに使用する API の種類として SQL API, Cassandra API, MongoDB API, Gremlin API が選べます。
GUI だるいんですが
GUI はとっかかりにはいいけど、慣れてくればくるほど、何回も繰り返せば繰り返すほどめんどくさくなってきます。
Azure CLI というコマンドラインツールがあります。Windows 10 はもちろん、Ubuntu、macOS などでも動きます。
Azure CLI 入れるのに何か抵抗ある場合は Azure ポータルの上側にある Cloud shell のボタンをクリックしてみましょう。
はじめて押したときはファイルを置くためのストレージを作るように案内されるので作成します。そうするとブラウザーで色々入った状態の Bash が立ち上がります。ファイルは作られたストレージに保存されます。
1 つ 1 つリソースを作るのがめんどくさい
ARM テンプレートという名前の JSON でデプロイするリソースを書いて一気にデプロイする方法があります。 以下のドキュメントのクイックスタートあたりから。
Azure 固有記法過ぎて嫌だ!というケースなどでは Terraform も使えます。 先ほどの Cloud shell には Terraform も入ってるのでサクッと使えます。
ツール類
Visual Studio 2017 / 2019 でインストール時に Azure を選択しておけば色々入りますが、Visual Studio Code にも拡張機能があります。入れると捗るので入れておきましょう。Azure Tools という名前のツールです。
Azure Tools - Visual Studio Marketplace
その他にも必要に応じて以下のツールを入れておくといいです。
- Azure Cosmos DB - Visual Studio Marketplace
- Azure App Service - Visual Studio Marketplace
- Azure Storage - Visual Studio Marketplace
- Azure Functions - Visual Studio Marketplace
こんな感じで Visual Studio Code から色々閲覧したり操作したりできるようになります。
まとめ
なんとなく思いつくままにですが、知っておくと便利かな?と思ったものを列挙してみました。
より良い Azure でのアプリ開発が出来ますように。