Azure Dev Test Labsに触れてみた
AzureにはAzure DevTest Labsという、開発者&テスター向けの仮想マシンを管理する機能があります。
どの程度何ができるのか軽く触れてみたのでまとめておきます。
できること
- 仮想マシンの数とインスタンスサイズを制限
- 作成する仮想マシンのイメージを制限
- Marketplaceから使用できるイメージを制限
- 独自のVHDイメージ
- 仮想マシンを作成後にアーティファクト(成果物)と呼ばれるアプリケーションをプロビジョニング
- 仮想マシンの自動起動と自動シャットダウン
アーティファクト(成果物)について
まだ、日本語訳の問題なのかアーティファクトと成果物という単語が乱立しているので混乱しますが、アーティファクトは仮想マシンの作成後にインストールするアプリケーションです。
仮想マシンイメージを作るときのアーティファクト選択はWindowsとLinuxベースで異なりますが、Windowsだとこのような感じのアプリがデフォルトで用意されてます。
アーティファクトはjsonで管理されているリポジトリに定義されているので、独自でアーティファクトを追加する事もできます。
自動起動・自動シャットダウンのスケジュール
仮想マシンの自動起動や自動停止は全体だけでなく、仮想マシン単位で行う事ができます。
起動のスケジュールは曜日単位で選べるのですが、停止スケジュールは曜日選択できないようです。
まとめ
DevTest Labを使うとユーザーは制限された範囲内で仮想マシンを使用する事ができます。管理者側からするとDevTest Lab単位でコストの確認や、Azureサブスクリプションから開発&テストメンバー用にサブスクリプションを貸し出しているような利用方法になります。
月給を吹っ飛ばすAzureサービスについて考えてみた
この記事はMicrosoft Azure Advent Calendar 2015の11日目の記事です。
今回はAzureの料金についてのお話しです。
見積もりを作ったり、月の使用料だったりと料金を気にする機会が多いのですが、自分で頑張って計算しようとすると面倒くさいので便利なサービスはどんどん使ってしまいましょう。
プロに任せる
何事も専門家に任せると安心ですね。Microsoftでは無料で構成を伝えると見積もりを行っているので、お客様等に見積もりを出す際には積極的に利用していきたいですね。
Webからの申請とFAXでの申請の2種類があり、申請後に担当者からの返信がある一般的な見積もりです。ちなみにお値段は無料。
だいたいの構成と料金が知りたい
構成例と大まかな料金をシミュレートするには「Microsoft Azure 簡易見積もりシミュレータ」を利用しても良いかと思います。簡単な構成例の金額が大まかに解るので大まかな試算に利用します。
自分で頑張る
細かい部分の金額も含めて試算する場合には料金計算ツールを利用します。サービス単位に細かい設定が可能なのでもっとも利用頻度が高いです。
新しいサービスや名称変更の反映など、Azureのアップデートにも頑張って対応しているように感じます。
以上、3つを利用すれば殆ど困らない範囲で、試算はできると思います。
試算してみた
とりあえず使ってみたかったので金額を決めて試算してみました。設定金額は某○○師匠からネタを頂いてサラリーマンの月給程度とします。
サラリーマンの平均給与
サラリーマンの平均給与は、国税庁が行っている民間給与実態統計調査結果を参照します。
ここには統計表*1があるため、平成26年度分の調査結果の中から「第12表 業種別及び年齢階層別の給与所得者数・給与額」を見ると全業種の全年齢平均給与額は\415,000だと解ります。 30歳~34歳の製造業や情報通信業の平均給与は44万円~48万円という結果が読み解けます(ミナサン オカネモチ デスネ)
今回は全年齢の平均給与:\415,000でどのくらいAzureのサービスが使えるのか調べてみました。
仮想マシン
利用頻度の高い仮想マシンのD14インスタンスを1ヶ月(31日間)動かし続けると\228,422/月となります。
一台でこの価格なので二台回せば1ヶ月で平均給与を吹っ飛ばせる程度にはなりますが、コア数の制限に引っかかるかと思います。
各サービスには様々な制限があるので以下のページを確認して事前に確認しておきましょう。
月給を溶かす構成
月給を溶かせそうな構成を考えてみました。以前、Media Servicesで痛い思いをしたので今回もAzure Media Serviceを利用します。
Media Serviceのエンコードユニットやライブストリーミングユニットは高額なのでとりあえずPremiumEncoderユニットを25立ち上げると月給を超えた金額を気軽に飛ばす事ができます。
- Media Services
- PremiumEncoderユニット × 25 → ¥1,017,450/月
溶かさないようにする仕組み
Azureには課金に関するAPIが用意されているので、そちらを利用すると月給を溶かす前に検知できるかと思います。*2
- Azure Resource Usage API
- Azureの使用状況に関するAPI
- Azure Resource RateCard API
- 推定金額やレート情報に関するAPI
この2つのAPIを組み合わせる事で溶かさない仕組みを作り出せるのですが、年末の忙しさにより試せませんでした。。。(今年中には触りたい)
まとめ
Media Service → 高い
俺らの給与 → 安い
AzurePowerShellでリソースグループを削除する方法
勉強会でデモ用のサイトを複数立てたのでサイトが乱立していました。
一気に消したい場合はリソースグループごと削除するとサイトをまとめて消せるためとても便利です。
新ポータルから削除しても良いのですがAzure PowerShellに慣れるために試しにPowerShell経由で削除しました。
リソースマネージャを操作できるようにモジュールを切り替え
Azure PowerShellには3つのモジュールが用意されており以下のようになっています。
- Azure
- 従来のコマンドレットが含まれています。
- AzureResourceManager
- Azureのリソースをまとめて管理するためのコマンドレットが含まれています。
- AzureProfile
- AzureとAzureResourceManagerに共通するコマンドレットが含まれています。(Add-AzureAccount 等)
以下のようにしてAzureResourceManagerコマンドに切り替え
Switch-AzureMode -Name AzureResourceManager
リソースグループを表示
ポータルから見るとこんな感じ
Get-AzureResourceGroupコマンドレットでリソースグループを表示
Get-AzureResourceGroup | Format-Table ResourceGroupName
結果はこんな感じ
ResourceGroupName ----------------- FukuazuResourceGrp01 FukuazuRsourceGrp02
リソースグループの中のリソースを表示
リソースグループの中にどんなリソースがあるか確認したい場合はGet-AzureResourceコマンドレットを使用します。NameとResourceTypeを表示する事で中身を何となく特定できます。
Get-AzureResource -ResourceGroupName FukuazuResourceGrp01 | Format-Table Name,ResourceType
Name ResourceType ---- ------------ CPUHigh FukuazuBasic1Plan01 microsoft.insights/alertrules CPUHigh FukuazuStandard-01Plan01 microsoft.insights/alertrules ForbiddenRequests fukuazu201502site003 microsoft.insights/alertrules ForbiddenRequests fukuazu201502site007-01 microsoft.insights/alertrules LongHttpQueue FukuazuBasic1Plan01 microsoft.insights/alertrules LongHttpQueue FukuazuStandard-01Plan01 microsoft.insights/alertrules ServerErrors fukuazu201502site003 microsoft.insights/alertrules ServerErrors fukuazu201502site007-01 microsoft.insights/alertrules FukuazuBasic1Plan01-FukuazuResourceGrp01 microsoft.insights/autoscalesettings FukuazuStandard-01Plan01-FukuazuResourceGrp01 microsoft.insights/autoscalesettings fukuazu201502site003 microsoft.insights/components fukuazu201502site007-01 microsoft.insights/components FukuazuBasic1Plan01 Microsoft.Web/serverFarms FukuazuStandard-01Plan01 Microsoft.Web/serverFarms fukuazu201502site003 Microsoft.Web/sites fukuazu201502site007-01 Microsoft.Web/sites
リソースグループを削除
Remove-AzureResourceGroup -Name FukuazuResourceGrp01
確認を促してくるのでYを入力
Are you sure you want to remove resource group 'FukuazuResourceGrp01' [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y
ポータルからも削除されている事を確認できます。
PS C:\> Get-AzureResourceGroup | Format-Table ResourceGroupName ResourceGroupName ----------------- FukuazuRsourceGrp02