SlideShare a Scribd company logo
Azure Portal/CLI 使いこなし
レッドハット株式会社
Microsoft MVP for VSDT
田中孝佳 (@tanaka_733)
自己紹介
2
Red Hat K.K.
.NET Core on RHEL, Red Hat on Azure, OpenShift
Microsoft MVP for VSDT (*)
Build Insiderなどで執筆「C# 7.0新機能」など
C#, .NET Core, Azure, Visual Studio SDKなどが最近の興味
ブログ「銀の光と碧い空」「Silver Light and Blue Sky」
会社ブログ「Red Hat Developers」などでも書いてます
(*) Visual Studio and Development Technologies (Azure ではない)
ハイパー宣伝タイム
3
ヤパチー(y8 2017 spring)というイベントにCFP出しているので、
GitHubのissueにいいねお願いします
(興味あれば来てください!)
本日の概要
4
多少、タイトルは誇張したものの…
トラブルシューティングや新機能検証などで
いろんなリソースを作ったりするときに便利なTips集
IaaS中心です
原則、ARMモード
Azure Portal CLI 概要
5
Azureのリソース操作
• Azure Portal (Web画面)
• Azure CLI 1.0 (Node.js製)
• Azure CLI 2.0 (Python製)
– Azure CLI Shell: Interactive
• Azure PowerShell
• Azure REST API と各種言語でのSDK
Azure Portal
• とりあえずすぐに使える
• たまに表示がおかしくなるので、F5リロード
• すぐに使えるからとっつきやすいけど、
操作方法をドキュメント化する時とかつらい
– UI変更や機能追加があると…
Azure CLI
• 最近はCLI 2.0推しを感じる
• Managed DiskとかはCLI 2.0の方がサポートが手厚い(気がする)
• 2.0のフィルタとか出力形式変更が地味に便利
– 結果をほかのコマンドで使う場合にgrepとかする必要ないね!
• 今週になってCLI Shell 2.0もGA
– https://github.com/Azure/azure-cli-shell
CLI 2.0のフィルタと出力形式
$ az disk list -g $ResourceGroup 
--query '[*].{Name:name,Gb:diskSizeGb,Tier:accountType}'
Name Gb Tier
----------------- ---- ------------
osdisk_02Dv1SieNk 100 Standard_LRS
osdisk_nBievUHOZb 100 Standard_LRS
osdisk_qs2D9aVOvM 200 Standard_LRS
Azure CLI Shell
https://github.com/Azure/azure-cli-shell
Azure PowerShell
• Windowsユーザーであればおすすめ
– Linux上でのAzure PowerShellはまだPreviewなので…
• Azure AutomationではPowerShellでScript書きます
– Graphicalも使えるけど
• オブジェクトのフィルタとか変換を言語機能でできるのは強み
• Preview機能の登録などでPowerShellのコマンドしか載っていないこと
とがあった (現時点では確認できず)
REST APIと各種言語のSDK
• アプリとして作りたい場合は必要
– 簡易的にはCLI実行でもいいだろうけど、それ以上を求めるとき
• 言語ごとに対応状況に差がある
• 個人的にはkubernetesのAzure Disk PluginでGo SDK を見ています
Resource Group
13
Resource group
• タスクごとにResource groupを作っています
– VMの名前などはResource groupごとに一意
– vNet, vSubnetなどはResource Groupごとに作成できる
• 同一Subnetにまとめたいものは、同じResource Groupにしないといけない
– あとでまとめて消せるのが便利
$ az group create --name <ResourceGroupName> --location japanwest
$ az group delete --name <ResourceGroupName>
ロケーション
ロケーション
• 特典などサブスクリプションによっては選べないロケーションも
• (個人的おすすめ1) japanwest
– レイテンシそこまで悪くならない(東日本勢)わりに、東日本より安い
• (個人的おすすめ2) westus2
– 安い
• レイテンシ至上なら一番近いところへ
• locationによってはサポートしていない機能も
– https://azure.microsoft.com/en-us/regions/services/
• ごくまれにlocation依存の不具合があるので、
トラブルシューティングのときは気に留めておいてもよいかも
無駄遣い削減
17
Azure Automationで定期削除
• 検証環境などは定時の間だけ起動してお
けばよいものもある
• 停止し忘れを忘れるためにAzure
Automationで自動起動・停止してみよう
• 昔、社内向けにSilverlight+Java製のアプリ作って同じことした想い出
今は、クラウドの機能を使って実現できます
Azure Automationとは…
• Azure版タスクスケジューラー的な
• 下記のタスクが実行できる
– Runbook (それぞれスクリプトとグラフィカルエディタが選べる)
• PowerShell
• PowerShell Workflow
– DSC
• 実例入りのドキュメントあります
– https://docs.microsoft.com/ja-
jp/azure/automation/automation-intro
コード例
"Getting VMs"
# Only get those VM's that have been explicitly tagged for Shutdown:true
$vms = Get-AzureRmVM | Where { ($_.Tags.ContainsKey("Shutdown") -and
($_.Tags.Get_Item("Shutdown").Equals("True")))};
foreach ($vm in $vms)
{
$vmi = Get-AzureRmVm -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName -Status;
foreach ($code in $vmi.Statuses.Code)
{
if($code -contains "PowerState/running")
{
"Shuttind down: " + $vm.Name;
Invoke-AzureRmResourceAction -ResourceGroupName $vm.ResourceGroupName -ResourceType
Microsoft.Compute/virtualMachines -ResourceName $vm.Name -Action deallocate -Force;
}
}
}
"Finished"
#最初の認証情報取得の定型処理は省略
#Shutdown:True というタグがついているVMをShutdown。case insensitive にするいい方法ゆるぼ…
#どういうタグがついていれば、どうする、というあたりをルールにしてカスタマイズ可
もっといけてる方法…
ピーク時間外 VM 起動/停止
• OMS管理が必要なプレビュー機能ですが
– https://docs.microsoft.com/ja-
jp/azure/automation/automation-solution-vm-
management
Virtual Machine
23
Unmanaged Disk VS Managed Disk
UnmanagedなVMに
ManagedなDiskはattachできない
UnmanagedなDiskを使うケース
• MarketplaceのVM
– 用意されているものがUnmanagedな場合
– 変換すればManagedでも(原則)いけるはず
• 使うアプリケーションがUnmanagedのみサポート
– kubernetes のAzure Disk pluginとか
• 注意:Managed Diskはサイズによる課金が階段状
– ~32GBまで同じ値段だけど、33GBにすると約2倍 (Standard)
閑話休題:LinuxとDisk
• Azure上ではOS DiskのLVMは非推奨
– Azureでは起動しないVMの復旧に
別VMにDiskをattachすることがある
– 同じイメージだとLVMのUUIDかぶりが((
– を避けるために非推奨扱い
• OS Diskの暗号化はディストリ次第
26
CLIで複雑なVMを作成
• 複数NICなど
$ az vm create -n solnode1 -g solexample1 -l japanwest 
--image $Image --availability-set solClusterAS 
--size Standard_DS2_V2 
--nics solnode1-dnic,solnode1-vnic 
--admin-password tanaka733 --admin-password ‘P@ssW0rd'
VHDのUtilityツール
• https://github.com/Microsoft/azure-vhd-utils
• 実行ファイルは下記
– $GOPATH/bin/azure-vhd-utils
• 並列アップロードとか
• VHDのファイルのfooter確認とか
ImageからVMを作成
• CLI 2.0でImageを作る場合は
RHELなどの予約語は避けましょう
– CLIで起動する場合はリソースID指定で
– http://tech.tanaka733.net/entry/launch-unintended-vm-from-azure-
marketplace
$ az vm create -n solnode1 -g solexample1 -l japanwest 
--image 
"/subscriptions/<UUID>/resourceGroups/<RG>/providers/Microsoft.Compute/images/rhel73-base“ 
--size Standard_DS2_V2
その他
30
AAD App
• RBACなアプリケーションはCLI 2.0で一発作成可能に
– 今までの面倒さはなんだったんだ(
– Portalのスクショの手順書もコマンド1行に(
• こちらを参考に
– http://blog.shibayan.jp/entry/20170123/1485154436
$ az ad sp create-for-rbac -n "http://my-app" --role contributor 
--scopes <ResourceGroupID>
課金トラブル
• トラブルの原因となった課金明細は
自分でチェックするのが一番早い
• 原因がわかって、対処してほしいことがあれば
サポートへ  MSDN特典アカウントでも割と素早い反応
あやしげな課金の正体をつかむ
まとめ
• Azure CLI 2.0はいいぞ
• Linuxメイン でも Azure PowerShell は使う場面あり
– むしろLinuxでAzure PowerShell正式サポートでもいいんですよ?
• Azure Automationはいろいろな無駄遣いを防止する効果あり
• Managed Diskはいいぞ
– Imageのエイリアスは気を付けてね
• 課金トラブルはまず自分で調査が早い

More Related Content

PDF
社内向けTech Talk資料~Fluentdの基本紹介~
PPT
Using Windows Azure
PDF
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
PDF
AWS SDK for Haskell開発
PDF
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
PDF
PDF
Build insider testingwithvs
PPT
081108huge_data.ppt
社内向けTech Talk資料~Fluentdの基本紹介~
Using Windows Azure
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
AWS SDK for Haskell開発
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
Build insider testingwithvs
081108huge_data.ppt

What's hot (18)

PPTX
20141017 introduce razor
PDF
データマイニング+WEB勉強会資料第6回
PPTX
Step by stepで学ぶTerraformによる監視付きAWS構築
PDF
ECMAScript6による関数型プログラミング
PDF
Sbtのマルチプロジェクトはいいぞ
PDF
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
PDF
[de:code 2018] [DA19] 次世代データベース サービス「Azure Cosmos DB」を使いこなそう ~ Azure Cosmos D...
PPTX
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
PDF
Ansible 入門 #01 (初心者向け)
PPTX
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
PDF
AWS SDK for Go in #jawsmeguro
PDF
sbtマルチプロジェクトビルドの使いどころ
PDF
Ansible入門
PDF
Alfrescoのカスタムテーブルの使い方
PDF
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
PDF
sbt, past and future / sbt, 傾向と対策
PPTX
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
PDF
React で CSS カプセル化の可能性を考える
20141017 introduce razor
データマイニング+WEB勉強会資料第6回
Step by stepで学ぶTerraformによる監視付きAWS構築
ECMAScript6による関数型プログラミング
Sbtのマルチプロジェクトはいいぞ
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
[de:code 2018] [DA19] 次世代データベース サービス「Azure Cosmos DB」を使いこなそう ~ Azure Cosmos D...
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Ansible 入門 #01 (初心者向け)
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
AWS SDK for Go in #jawsmeguro
sbtマルチプロジェクトビルドの使いどころ
Ansible入門
Alfrescoのカスタムテーブルの使い方
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
sbt, past and future / sbt, 傾向と対策
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
React で CSS カプセル化の可能性を考える
Ad

Similar to 20170422 azure portal cli 使いこなし (20)

PDF
20200610 hccjp azure-stackhci
PDF
Infrastructure as code for azure
PDF
Azure CLI あずにゃんの CLI を使ってみた結果www
PDF
最近の PowerShell のお話
PDF
Azure Arc Automanage Machine Configuration による構成の管理と適用
PPTX
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
PDF
Azure Infrastructure as Code 体験入隊
PPTX
PowerShell de Azure
PPTX
Azureで始めるDevOps
PDF
Azure Automation 概要
PDF
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
PDF
俺的 Build Update まとめ
PDF
[Japan Tech summit 2017] DEP 006
PPTX
Lt com camp2016_azureautomation_山p(AzureAutomationを使ってみた話)
PDF
ArcBox のおさらいと最新情報
PDF
S15 コマンドラインおよび API による Microsoft Azure の管理
PDF
Azure Stack 受け入れ準備_20180630
PDF
Tech Summit 2017 CLD007 現場目線で Azure IaaS を解説
PDF
Azure Stack HCI OS で HCI を構築してみた!(手順付)
PDF
あなたもハマるかもしれない "Azure あるある" ~アーキテクトがクラウド導入の現場で見た課題の傾向と対策~
20200610 hccjp azure-stackhci
Infrastructure as code for azure
Azure CLI あずにゃんの CLI を使ってみた結果www
最近の PowerShell のお話
Azure Arc Automanage Machine Configuration による構成の管理と適用
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure Infrastructure as Code 体験入隊
PowerShell de Azure
Azureで始めるDevOps
Azure Automation 概要
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
俺的 Build Update まとめ
[Japan Tech summit 2017] DEP 006
Lt com camp2016_azureautomation_山p(AzureAutomationを使ってみた話)
ArcBox のおさらいと最新情報
S15 コマンドラインおよび API による Microsoft Azure の管理
Azure Stack 受け入れ準備_20180630
Tech Summit 2017 CLD007 現場目線で Azure IaaS を解説
Azure Stack HCI OS で HCI を構築してみた!(手順付)
あなたもハマるかもしれない "Azure あるある" ~アーキテクトがクラウド導入の現場で見た課題の傾向と対策~
Ad

More from Takayoshi Tanaka (20)

PDF
deep dive distributed tracing
PPTX
202202 open telemetry .net handson
PPTX
202109-New_Relic-for-csharp-engineers
PDF
20210129 azure webapplogging
PDF
20201127 .NET 5
PPTX
Unity(再)入門
PPTX
最近のQ#について
PDF
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
PDF
20191024 Get Start gRPC with ASP.NET
PDF
New Relicで始める、.NET Applications on AWSのObservability
PPTX
C#エンジニアのためのdocker kubernetesハンズオン (再)
PPTX
20190806 Q# Measurements
PPTX
C#エンジニアのためのdocker kubernetesハンズオン
PDF
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
PDF
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
PDF
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
PDF
Try! Visual Studio 209 git feature
PDF
Q#基礎 ver1.1
PDF
(過去バージョン) Q#基礎 ver1.0
PDF
ゼロから始めるQ#
deep dive distributed tracing
202202 open telemetry .net handson
202109-New_Relic-for-csharp-engineers
20210129 azure webapplogging
20201127 .NET 5
Unity(再)入門
最近のQ#について
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
20191024 Get Start gRPC with ASP.NET
New Relicで始める、.NET Applications on AWSのObservability
C#エンジニアのためのdocker kubernetesハンズオン (再)
20190806 Q# Measurements
C#エンジニアのためのdocker kubernetesハンズオン
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
Try! Visual Studio 209 git feature
Q#基礎 ver1.1
(過去バージョン) Q#基礎 ver1.0
ゼロから始めるQ#

20170422 azure portal cli 使いこなし