azure web apps 入門
TRANSCRIPT
Azure Web Apps 入門
devcussion #232016/06/19 Kurosawa
1
About me
黒澤
・ガジェクラ(スマホ、ノート PC )
・スマホアプリ( Xamarin )
・ Web アプリ、ツール
・ Twitter ( @kurosawa0626)
・ Blog (ぅゎょぅι゛ょっょぃ)
仕事
・フリーランス
・サーバーサイドエンジニア
( PHP 、 HTML5 、 CSS3 、 JS )
・主にソシャゲの開発、運営、ツール作成
2
本日の目標
• Linux とか全然詳しくないです。
• Google Cloud Platform はインスタンスすら立てられなかった。( 3 年ぐらい前の話)
• AWS は少し触ったことあるけど正直訳わからなかったし二度と触りたくない。
• そんな俺でもあまり悩まずに使えた Azure Web Apps を紹介したい。
• 紹介したいというか興味持ったら是非使ってノウハウ共有したい。
• Azure に詳しい人が雲の上の存在過ぎて聞きにくい。(クラウドだけに)
3
Microsoft Azure
• Microsoft が提供しているクラウドサービス(競合他社に Amazon AWS 、 Google Cloud など)
• VPS のような IaaS(Infrastructure as a Service)
• レンタルサーバーのような PaaS(Platform as a Service)
• Twitter 、 Google Apps 、 Outlook のような SaaS(Software as a Service)
• サーバースペックや台数を自由に変更出来る
• 使った分だけお支払い
4
5
Web Apps
• Azure App Service でのアプリの 1 つで、 Web サイトと Web アプリケーションをホストするためのサー
ビス
• PaaS として提供されているため開発者はコーディングに集中できる
• .NET 、 Node.js 、 Java 、 PHP 、 Python をサポート
• VSTS 、 Git ( Local 、 Github 、 bitbucket )、 OneDrive 、 Dropbox からデプロイ
• オートスケール (Standard 以上 )
• デプロイメントスロット( Standard 以上)
• 認証 / 承認機能
6
Web Apps 立ち上げ
7
Web Apps 立ち上げ
• アプリ名
サブドメイン名(サイトの URL になる)
• サブスクリプション
課金対象の Azure アカウント
• リソースグループ
Azure 各種サービスをまとめたグループ
(リソースグループを削除すると各種サービスも削除される)
• App Service プラン / 場所
サーバースペックとデータセンターの選択
複数の Web Apps を同じプラン / リージョンに設置すると追加料金は発生しない。
8
App Service プラン
• App Service プランの名前
任意の名前
• 場所
データセンターの場所(リージョン)
日本国内だと東日本 / 西日本とあるが米国リージョンと比べると割高
なぜか西日本のほうがちょっと安い
• 価格レベル
スペックによって Free プランから Premium プランまで
9
アプリケーションの設定
• Runtime のバージョン
.NET framework 3.5 / 4.6 、 PHP 5.4 / 5.5 / 5.6 / 7.0 、 Java 7 / 8 、 Python 2.7 / 3.4
• 常時接続 (Basic 以上 )オフにするとコールドスタンバイになり、長時間アクセスがないと初回アクセス時に時間がかかる。
• アプリ設定
.NET の場合は構成の AppSettings に挿入され、既存設定を上書きする。
PHP 、 Python 、 Java 、 Node は環境変数として設定される。
10
アプリケーションの設定
• 接続文字列
以下の Prefix 文字列が付く以外はアプリ設定と同じ。
SQL Server: SQLCONNSTR_MySQL: MYSQLCONNSTR_SQL Database: SQLAZURECONNSTR_カスタム : CUSTOMCONNSTR_
• 既定のドキュメント
弄らなくてもいいけど要らないのは消しといたほうがいい。
• 仮想アプリケーションとディレクトリ
Web サイトのルートに対する相対パスを指定できる。
FuelPHP などを使うときは、 site\wwwroot を site\wwwroot\public に変更が必要。
11
診断ログ
• アプリケーションログ ( ファイルシステム )ファイル システムに、アプリケーションのログを書き込みます。
追加料金はありませんが、ログ記録は 12 時間しか記録されません。
• アプリケーションログ (Blob)Blob Storage にログを書き込みます。
消さないかぎり残りますが、 Blob Storage の料金が発生します。
• Web サーバーログ
アクセスログなどを書き込みます。
ファイルシステムとストレージはアプリケーションログと同じ。
12
デプロイ (Bitbucket の場合 )
• ソースの選択
展開元サービス
• 承認
サービスの認証
• プロジェクトの選択
展開元プロジェクト
• ブランチの選択
展開元ブランチ
13
スケール
• 手動
指定したインスタンス数を維持する。
• CPU 使用率
指定使用率を上回るとインスタンスを増やし、下回ると減らす。
50%~ 75%で指定すると 75%を一定時間超えると増やし、 50%を一定時間下回ると減らす。
• スケジュールおよびパフォーマンスルール
オートスケールのルールを指定スケジュールで行う。
ルールには CPU 使用率以外にメモリ使用率、 Disk キュー、 Http キュー、 Data I/O がある。
14
スケール時に気にすること
• ロードバランサ
Azure がよろしくやってくれるので気にしなくて良い。
その代わり振り分けルールは決められない。(多分均等割当)
• ストレージ
Web サーバーは増えるがデータディスク自体は共有なため気にする必要が無い。
Azure がよろしくやってくれる。
• セッション
外部キャッシュが必要。
15
デプロイメントスロット
要 Standard プラン以上
主に本番環境に展開する前に使用するステージング環境構築ためのもの。
デプロイメントスロットを利用すると以下の機能が利用可能になる。
• スワップ
運用スロットとデプロイメントスロットをダウンタイムなしに入れ替える。
• トラフィックルーティング
指定割合で運用スロットとデプロイメントスロットにトラフィックを流す。
16
認証 / 承認機能
コードを書かずに認証 / 承認処理が出来る。
ActiveDirectory を使えば指定ユーザーだけがアクセス出来るようになる。
Microsoft 、 Google 、 Facebook 、 Twitter での認証は誰でもできるので、その先はコードを書かないといけ
ない。
※サイト全体にかかるので使いドコロは限られるのでデモのみ
17
値段
• Free共有コア (60 分 / 日 ) 、 1GB RAM 、 1GB ストレージ、 \0
• Shared共有コア (240 分 / 日)、 0.5GB RAM 、 1GB ストレージ、 \1.56/ 時間 (\1,161.09/月 )
• BasicB1: 1 コア、 1.75GB RAM 、 10GB ストレージ、 \09.03/ 時間 (\06,716/月 )B2: 2 コア、 3.50GB RAM 、 10GB ストレージ、 \18.05/ 時間 (\13,432/月 )B3: 4 コア、 7.00GB RAM 、 10GB ストレージ、 \36.11/ 時間 (\26,864/月 )
18
値段
• StandardS1: 1 コア、 1.75GB RAM 、 50GB ストレージ、 \12.04/ 時間 (\8,955/月 )S2: 2 コア、 3.50GB RAM 、 50GB ストレージ、 \24.07/ 時間 (\17,910/月 )S3: 4 コア、 7.00GB RAM 、 50GB ストレージ、 \48.14/ 時間 (\35,819/月 )
• PremiumP1: 1 コア、 01.75GB RAM 、 500GB ストレージ、 \036.11/ 時間 (\026,864/月 )P2: 2 コア、 03.50GB RAM 、 500GB ストレージ、 \072.22/ 時間 (\053,729/月 )P3: 4 コア、 07.00GB RAM 、 500GB ストレージ、 \144.43/ 時間 (\107,457/月 )P4: 8 コア、 14.00GB RAM 、 500GB ストレージ、 \288.86/ 時間 (\214,915/月 )
東日本リージョンの場合
https://azure.microsoft.com/ja-jp/pricing/details/app-service/
19
値段
• ブロック Blob Storage最初の 1TB/月は¥ 2.45~ 6.22/GB (データ冗長オプションによる)
100,000 トランザクション(読み取り、書き込み)あたり \0.37
• データ転送
受信データはいくら受信しても無料
送信データは最初の 5GB/月は無料、それ以降の 5GB~10TB/月は東日本リージョンの場合 \14.08/GB※ 同じリージョン内でのデータ転送は無料
20
艦これデータリンクの場合
• App Service \5,940東日本リージョン、 S1 Standard719 時間
• ブロック Blob Storage \244東日本リージョン、 Basic 、ローカル冗長
30.7GB 、 4,158万トランザクション
• Standard Schedule \1,426東日本リージョン、 1ユニット
• データ転送 \359受信 2.03GB 、送信 25.5GB
• Redis Cache \1,669東日本リージョン、 C0 Basic
• SQL Database \1,728東日本リージョン、 S0 Standard
合計 \7,969 (+\3,397)
Visual Studio Enterprise with MSDN サブスクライバー (BizSpark)4月 26 日 ~5月 25 日のデータ(春イベント 5月 3 日 ~6月 1 日)
21
問題点
• MySQL がない
VM 立ててその中に MySQL を用意出来るが別途料金がかかる上に、 IaaS なため作業コストが高くつく。
ClearDB というサードパティ製の MySQL もあるが、性能はお世辞にも高くない。
• Microsoft が命名下手すぎのせいでググリビリティ、 Bing リビリティが低すぎる
Web Apps もあれだけど、これの前が Web Sites という名前でもっとやばかった。
SQL Database とかもっとヒット率やばい。
• ポータルの UX が酷い
教えてくれる人がいないと分からないところが多々ある。
22
興味を持ったら
• 学生
DreamSpark を使えばクレカなくても Azure を使える。
ただし WebApp 、 MySQL (ClearDB) 、 VS Online 、 Application Insight のみなのでかなり制限される。
• Visual Studio サブスクライバー
Professional \5,500/月、 Platforms \10,500/月、 Enterprise \15,500/月BizSpark は Enterprize枠
• 無料試用版
30 日間 \20,500 の無料クレジットが利用可能
登録にクレカが必要
Azure で利用できる無料の機能 https://azure.microsoft.com/ja-jp/free/pricing-offers/
23
Azure な方々
• こすもすえびさん( @kosmosebi)Azure の新情報はまずブチザッキと言われるぐらい毎回ちゃんとまとめてくれる方
• しばやんさん( @shibayan)
しばやん雑記には Azure Web Apps の大切なことが全部詰まってるんだよ(ポロローン)
• 帝国兵さん( @superriver)Azure の中の人と噂の暗黒面な人
24
質疑応答
25