かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Azure を始めるアプリ開発者の人がスムーズに使い始められますように

ということで、これを知っておくと捗ると思うものを独断と偏見で書いていきたいと思います。

リソースとリソースグループ

Azure にサーバーを立てたり何かを作ったりするときに、必ずリソースグループやリソースという単語を見ることになります。 これを知らないと、なんなのこれ?これ作るとお金かかるの?どうなの??という心配が心をよぎると思います。ということでまずは、ここから書いていこうと思います。

  • リソース:Azure 上に作れるもの全てがリソース (VM や Docker のレジストリーやストレージなど全て) これが課金対象になります。フリープランがあるものは制限付きですが無料で使えます。
  • リソースグループ:リソースをまとめて入れることが出来るフォルダーみたいなもの。リソースは必ず何らかのリソースグループに入れないといけないので必須です。 リソースグループはただの入れ物なので課金対象ではありません。

ポータルの左側のリストにリソースグループというものがあると思います。

f:id:okazuki:20190627090212p:plain

ここをクリックするとリソースグループのリストが出てくるので、ここから各リソースグループに行って作られたリソースを見にいくということをよくします。

f:id:okazuki:20190627090342p:plain

リソースグループをクリックすると、こんな感じでリソースグループ内のリソースの一覧が出てきます。

f:id:okazuki:20190627090649p:plain

簡単に消せて怖い!

リソースグループ単位でざくっとリソースを消すことが出来たりします。削除ボタンを押すと以下のような画面が出てきてリソースグループ名を入れると削除できます。

f:id:okazuki:20190627090957p:plain

個人的には、さくっと試してさくっと消す用途に使うことが多いので大変便利なのですが、本番環境をさくっと消されるかと思うと怖い場合には、リソースやリソースグループなどの単位でアクセス権を設定できます。

f:id:okazuki:20190627090851p:plain

ちゃんと運用するときは、間違って消されない(消さない)ことを祈るよりもファイルシステムの権限管理などと一緒で権限ちゃんとつけて運用するのがいいと思います。

リソースグループとかをもっと知りたい人は以下のドキュメントあたりを見るといいかも。

docs.microsoft.com

Web 開発者向けサービス

さて、リソースを作ろう!!となっても数百種類もあるので迷います。ということで便利なものをいくつかピックアップ。

Azure App Service

まずお勧めなのが Azure App Service です。Linux や Windows ベースのランタイム込みのマイクロソフトが管理しているコンテナーが簡単に作れるというようなサービスです。

.NET はもちろん Node.js, Java, PHP, Ruby, Python などが組み込みでサポートされていて、スケールアウトやスケールアップ機能などもあります。 アプリのコードをデプロイするだけで簡単に使えるのでお手軽です。

スロットと呼ばれるもので本番環境、ステージング環境、テスト環境を管理出来て任意のタイミングで本番環境とステージング環境を入れ替えたり出来て捗ります。

azure.microsoft.com

ちなみに、上記のような Azure のサービス概要紹介みたいなページに行ったらドキュメントリンクをクリックしましょう。ドキュメントに飛びます。 実際に開発するときには、ドキュメントを読みます。

App Service の中には動かすアプリケーションの形態に応じていくつか種類があります。

  • Web App : Webアプリ用です。
  • Function App : サーバーレスアプリ用です。
  • Logic App : デザイナーでワークフロー組み立てて動かすものです。

Web App を作りたい場合はポータルのリソースの作成から Web App で検索すると出てきます。

f:id:okazuki:20190627092233p:plain

Web アプリを選択して作成を押すとウィザードが走るので、必要事項を入力して作成する感じです。

f:id:okazuki:20190627092330p:plain

App Service プランというものの上に実際の Web App が乗る感じで、App Service プランで性能とかを設定できます。フリープランもあります。

デプロイも git push でデプロイしたりビルド結果を zip に固めて REST API でアップロードしてデプロイしたり色々な方法があります。

docs.microsoft.com

Docker 使いたいのですが

Web App for Container にデプロイすれば OK です。

azure.microsoft.com

プライベートなレジストリーが欲しい場合は Azure Container Registry になります。

azure.microsoft.com

Kubernetes が使いたい場合は Azure Kubernetes Service というサービスがそれです。

azure.microsoft.com

DB が欲しい

Microsoft が管理してくれる MySQL、PostgreSQL、SQL Database などがあります。好きなの使いましょう。 自分で管理しないといけない理由がある場合は VM でも立ててその上に構築しましょう。

azure.microsoft.com

azure.microsoft.com

azure.microsoft.com

azure.microsoft.com

NoSQL がいい

CosmosDB というのが Azure 一押しの NoSQL になります。 新規作成時にアプリからアクセスするときに使用する API の種類として SQL API, Cassandra API, MongoDB API, Gremlin API が選べます。

docs.microsoft.com

GUI だるいんですが

GUI はとっかかりにはいいけど、慣れてくればくるほど、何回も繰り返せば繰り返すほどめんどくさくなってきます。

Azure CLI というコマンドラインツールがあります。Windows 10 はもちろん、Ubuntu、macOS などでも動きます。

docs.microsoft.com

Azure CLI 入れるのに何か抵抗ある場合は Azure ポータルの上側にある Cloud shell のボタンをクリックしてみましょう。

f:id:okazuki:20190627093640p:plain

はじめて押したときはファイルを置くためのストレージを作るように案内されるので作成します。そうするとブラウザーで色々入った状態の Bash が立ち上がります。ファイルは作られたストレージに保存されます。

f:id:okazuki:20190627102740p:plain

1 つ 1 つリソースを作るのがめんどくさい

ARM テンプレートという名前の JSON でデプロイするリソースを書いて一気にデプロイする方法があります。 以下のドキュメントのクイックスタートあたりから。

docs.microsoft.com

Azure 固有記法過ぎて嫌だ!というケースなどでは Terraform も使えます。 先ほどの Cloud shell には Terraform も入ってるのでサクッと使ってみることが出来ます。試すために自分の環境にインストールは不要です。Azure CLI とかも入ってるからちょっと試すのには便利。

docs.microsoft.com

ツール類

Visual Studio 2017 / 2019 でインストール時に Azure を選択しておけば色々入りますが、Visual Studio Code にも拡張機能があります。入れると捗るので入れておきましょう。Azure Tools という名前のツールです。

Azure Tools - Visual Studio Marketplace

その他にも必要に応じて以下のツールを入れておくといいです。

こんな感じで Visual Studio Code から色々閲覧したり操作したりできるようになります。

f:id:okazuki:20190627095034p:plain

無料で試したい

Microsoft Learn というサイトに学習コンテンツがいくつかあるのですが、これがクレジットカード不要で実環境で試せるコンテンツになっています。

docs.microsoft.com

Microsoft Learn については過去に 2 つほど記事を書いてますので興味がある方は見てみてください。

blog.okazuki.jp

blog.okazuki.jp

評価したい

\22,500 + α使えます。

azure.microsoft.com

\22,500 円は、SQL Database の一番チープなやつが月額600円ちょっと、MySQL の一番弱いやつが月額5,000円くらい、AppService はフリープランもあるけど運用を想定された Standard プランが月額 1 万くらいな雰囲気です。もちろん作って試して終わって消してをちゃんとしてれば使った時間での課金になります。

まとめ

なんとなく思いつくままにですが、知っておくと便利かな?と思ったものを列挙してみました。

より良い Azure でのアプリ開発が出来ますように。