飲んだくれプログラマの酒記

趣味とか仕事とかのらりくらりへべれけに

Azure で Web サービスを開発するときのテンプレ構成

ご挨拶

私が Azure で Web サービスを立ち上げるときに軸にする構成をざっくり紹介します。 何かのお役に立てれば幸いです。

構成

  • 青字 : Azure のサービス名称 (と必要に応じ添字)
  • BlobService に静的コンテンツ(画像ファイルなど)を配置する想定です
  • DBに関しては利用するDBへの依存が強いため省略しました

f:id:kyakumo:20161214115400p:plain

Azure TIPS

ご挨拶

質問を受けたケース・気が付きにくかったケースをベースに随時更新します。 何かしら参考になれば幸いです。 解決出来るかわかりませんが質問等あれば気軽にご質問下さい。

App Service

Web App

Web Job

  • 長時間かかるジョブが途中で止まる
    • Application Settings から Always On を ON にする
    • 参考
  • ジョブをgithub/bitbucket等からデプロイしたい
    • Webジョブはアプリのディレクトリ構造・設定ファイルを見て実行されます。
    • 以下のディレクトリ・ファイルを作ることで github 等からデプロイするだけで動作します。
      • App_Data/jobs/triggerd/(ジョブ名)
      • App_Data/jobs/triggerd/(ジョブ名)/settings.job
    • 詳しくはこちら

Azure Web App (App Service)に Let's Encrypt で発行した証明書を適用する方法

ご挨拶

最近盛り上がりを見せてきている Azure ですが、まだまだ欲しい情報にたどり着きにくいのが現状です。 Azure を利用している人に少しでも役に立てればと思います。

今回は旧ポータルを使わずに適用する方法が見当たらなかった、 現ポータルを利用して Web App (App Service)に Let's Encrypt で発行した証明書を適用する方法を紹介します。

以下前提条件

  • ある程度 Azure での作業に慣れている人を対象にしています。App Service, Let's Encrypt 等の詳細には触れません。
  • 基本テキストベースの作業メモです。わかりにくい等あればご指摘頂けると幸いです。
  • Azure ポータルの言語設定は英語です。
  • クリーンな状態から設定完了までの想定しているため、適宜読み飛ばして下さい。
  • 設定項目の値は適当です。環境に合わせて補完して下さい。

Azure Active DIrectory (プリンシパル) の作成

設定項目 内容
Name myservice-ad-app
Application Type Web app / API
Sign-on URL http://your-domain

Azure Active Directory の設定画面より App registrations を選択し、 Application 登録をして下さい。

myservice-ad-app の設定

設定項目 内容
Key description Let's Encrypt
Duration Never expires
Value myservice-ad-app-key ※

先程作成しした myservice-ad-app の設定画面より、 Key の登録をして下さい。

※ Save 後一度だけ表示されます。忘れずにメモして下さい。 ※ 忘れた際は key を作り直して下さい。

Resource group の作成

設定項目 内容
Resource group name myservice-resource-group
  • Resource group を作成して下さい。
  • これ以降利用する Azure のサービスは、特に言及がない限りここで作成する Resource group / location に作成下さい。

myservice-resource-group の設定

設定項目 内容
Select a role Contributor
Add users myservice-ad-app

Resource group の設定画面より、 Access control (IAM) の追加をして下さい。

Web App の作成

設定項目 内容
App name myservice-web-app
Resouce Group myservice-resource-group

myservice-web-app の設定

カスタムドメイン設定

設定項目 内容
Hostname myservice.your-domain

設定画面の Custom domains から利用するホストの登録をして下さい。 ※ ドメインのネームサーバーへ CNAME レコードを追加する必要があります。 ※ ex) myservice.your-domain. 3600 IN CNAME myservice-web-app.azurewebsites.net

Let's Encrypt 拡張機能導入

設定項目 内容
Choose Extension Azure Let's Encrypt (x64)

設定画面の Extensions より、 Azure Let's Encrypt (x86) もしくは Azure Let's Encrypt (x64)を導入。

※ 32bit or 64bit は設定画面の Application Settings より確認・変更出来ます。

Azure Let's Encrypt の設定

設定項目 内容
Tenant XXXX.onmicrosoft.com と言った名前 (Azure Active Directory の Domains から確認できます)
SubscriptionId SubscriptionID (Subscriptions 設定画面より確認出来ます)
ClientId myservice-ad-app の ApplicationID (設定画面より確認できます)
ClientSecret myservice-ad-app-key
ResourceGroupName myservice-resource-group
ServicePlanResourceGroupName myservice-resource-group
UseIPBasedSSL disable
SiteSlotName -
Update Application Settings enable

App Service 設定の Extensions から Azure Let's Encrypt を選択し、 展開される画面左上の Browse から設定出来ます。 f:id:kyakumo:20161209121426p:plain 上記項目の入力さえ終わればあとはすんなり設定できると思います。

つまりどころ

動作確認

https://your-domain でアクセスし表示できれば完了です。 快適な Azure Life を!