Azure Web Apps 入門

1,367 views

Published on

第23回devcussionで発表した資料です。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,367
On SlideShare
0
From Embeds
0
Number of Embeds
833
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Azure Web Apps 入門

  1. 1. Azure Web Apps入門 devcussion #23 2016/06/19 Kurosawa 1
  2. 2. About me 黒澤 ・ガジェクラ(スマホ、ノートPC) ・スマホアプリ(Xamarin) ・Webアプリ、ツール ・Twitter(@kurosawa0626) ・Blog(ぅゎょぅι゛ょっょぃ) 仕事 ・フリーランス ・サーバーサイドエンジニア(PHP、HTML5、CSS3、JS) ・主にソシャゲの開発、運営、ツール作成 2
  3. 3. 本日の目標 • Linuxとか全然詳しくないです。 • Google Cloud Platformはインスタンスすら立てられなかった。(3年ぐらい前の話) • AWSは少し触ったことあるけど正直訳わからなかったし二度と触りたくない。 • そんな俺でもあまり悩まずに使えたAzure Web Appsを紹介したい。 • 紹介したいというか興味持ったら是非使ってノウハウ共有したい。 • Azureに詳しい人が雲の上の存在過ぎて聞きにくい。(クラウドだけに) 3
  4. 4. 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. 5. 5
  6. 6. 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
  7. 7. Web Apps立ち上げ 7
  8. 8. Web Apps立ち上げ • アプリ名 サブドメイン名(サイトのURLになる) • サブスクリプション 課金対象のAzureアカウント • リソースグループ Azure各種サービスをまとめたグループ (リソースグループを削除すると各種サービスも削除される) • App Service プラン/場所 サーバースペックとデータセンターの選択 複数のWeb Appsを同じプラン/リージョンに設置すると追加料金は発生しない。 8
  9. 9. App Service プラン • App Service プランの名前 任意の名前 • 場所 データセンターの場所(リージョン) 日本国内だと東日本/西日本とあるが米国リージョンと比べると割高 なぜか西日本のほうがちょっと安い • 価格レベル スペックによってFreeプランからPremiumプランまで 9
  10. 10. アプリケーションの設定 • 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
  11. 11. アプリケーションの設定 • 接続文字列 以下のPrefix文字列が付く以外はアプリ設定と同じ。 SQL Server: SQLCONNSTR_ MySQL: MYSQLCONNSTR_ SQL Database: SQLAZURECONNSTR_ カスタム: CUSTOMCONNSTR_ • 既定のドキュメント 弄らなくてもいいけど要らないのは消しといたほうがいい。 • 仮想アプリケーションとディレクトリ Web サイトのルートに対する相対パスを指定できる。 FuelPHPなどを使うときは、sitewwwroot を sitewwwrootpublic に変更が必要。 11
  12. 12. 診断ログ • アプリケーションログ (ファイルシステム) ファイル システムに、アプリケーションのログを書き込みます。 追加料金はありませんが、ログ記録は12 時間しか記録されません。 • アプリケーションログ (Blob) Blob Storageにログを書き込みます。 消さないかぎり残りますが、Blob Storageの料金が発生します。 • Webサーバーログ アクセスログなどを書き込みます。 ファイルシステムとストレージはアプリケーションログと同じ。 12
  13. 13. デプロイ (Bitbucketの場合) • ソースの選択 展開元サービス • 承認 サービスの認証 • プロジェクトの選択 展開元プロジェクト • ブランチの選択 展開元ブランチ 13
  14. 14. スケール • 手動 指定したインスタンス数を維持する。 • CPU使用率 指定使用率を上回るとインスタンスを増やし、下回ると減らす。 50%~75%で指定すると75%を一定時間超えると増やし、50%を一定時間下回ると減らす。 • スケジュールおよびパフォーマンスルール オートスケールのルールを指定スケジュールで行う。 ルールにはCPU使用率以外にメモリ使用率、Diskキュー、Httpキュー、Data I/Oがある。 14
  15. 15. スケール時に気にすること • ロードバランサ Azureがよろしくやってくれるので気にしなくて良い。 その代わり振り分けルールは決められない。(多分均等割当) • ストレージ Webサーバーは増えるがデータディスク自体は共有なため気にする必要が無い。 Azureがよろしくやってくれる。 • セッション 外部キャッシュが必要。 15
  16. 16. デプロイメントスロット 要Standardプラン以上 主に本番環境に展開する前に使用するステージング環境構築ためのもの。 デプロイメントスロットを利用すると以下の機能が利用可能になる。 • スワップ 運用スロットとデプロイメントスロットをダウンタイムなしに入れ替える。 • トラフィックルーティング 指定割合で運用スロットとデプロイメントスロットにトラフィックを流す。 16
  17. 17. 認証/承認機能 コードを書かずに認証/承認処理が出来る。 ActiveDirectoryを使えば指定ユーザーだけがアクセス出来るようになる。 Microsoft、Google、Facebook、Twitterでの認証は誰でもできるので、その先はコードを書かないといけない。 ※サイト全体にかかるので使いドコロは限られるのでデモのみ 17
  18. 18. 値段 • Free 共有コア (60分/日)、1GB RAM、1GBストレージ、0 • Shared 共有コア (240分/日)、0.5GB RAM、1GBストレージ、1.56/時間 (1,161.09/月) • Basic B1: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
  19. 19. 値段 • Standard S1: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/月) • Premium P1: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
  20. 20. 値段 • ブロック Blob Storage 最初の1TB/月は¥2.45~6.22/GB(データ冗長オプションによる) 100,000トランザクション(読み取り、書き込み)あたり0.37 • データ転送 受信データはいくら受信しても無料 送信データは最初の5GB/月は無料、それ以降の5GB~10TB/月は東日本リージョンの場合14.08/GB ※同じリージョン内でのデータ転送は無料 20
  21. 21. 艦これデータリンクの場合 • App Service 5,940 東日本リージョン、S1 Standard 719時間 • ブロック 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
  22. 22. 問題点 • MySQLがない VM立ててその中にMySQLを用意出来るが別途料金がかかる上に、IaaSなため作業コストが高くつく。 ClearDBというサードパティ製のMySQLもあるが、性能はお世辞にも高くない。 • Microsoftが命名下手すぎのせいでググリビリティ、Bingリビリティが低すぎる Web Appsもあれだけど、これの前がWeb Sitesという名前でもっとやばかった。 SQL Databaseとかもっとヒット率やばい。 • ポータルのUXが酷い 教えてくれる人がいないと分からないところが多々ある。 22
  23. 23. 興味を持ったら • 学生 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
  24. 24. Azureな方々 • こすもすえびさん(@kosmosebi) Azureの新情報はまずブチザッキと言われるぐらい毎回ちゃんとまとめてくれる方 • しばやんさん(@shibayan) しばやん雑記にはAzure Web Appsの大切なことが全部詰まってるんだよ(ポロローン) • 帝国兵さん(@superriver) Azureの中の人と噂の暗黒面な人 24
  25. 25. 質疑応答 25

×