なるほどわかった!azure resource managerのテンプレート機能

24
ななななななななAzure Resouce Manager ななななななななな ななななななななななな ななななな ななななななななな なな なな

Upload: takayuki-fuwa

Post on 24-Jan-2017

303 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: なるほどわかった!Azure Resource Managerのテンプレート機能

なるほどわかった!Azure Resouce Manager

のテンプレート機能こだまリサーチ株式会社

テクニカル・エヴァンジェリスト 不破 崇行

Page 2: なるほどわかった!Azure Resource Managerのテンプレート機能

自己紹介

不破 崇行 ( ふわ たかゆき )こだまリサーチ株式会社所属 テクニカル・エヴァンジェリスト

• 開発から保守を担当しつつ、お話をするお仕事

• 社内では AWS/Azure 案件を担当しています

• 好きな食べ物• 稲荷寿司と歌舞伎揚げ

• 好きな言語• PHP とアイヌ語 ( ユーカラ )

• 最近札幌に戻ってきました

Page 3: なるほどわかった!Azure Resource Managerのテンプレート機能

本日のお話しについて

• Azure のアーキテクチャ• Azure Resource Manager(ARM) とは?

• ARM Template 機能について

Page 4: なるほどわかった!Azure Resource Managerのテンプレート機能

Microsoft Azure ?

Page 5: なるほどわかった!Azure Resource Managerのテンプレート機能

Azure Resource Manager• 2014 年から、 Azure 上におけるリソースの扱い方が新しくなりまし

• 分散しがちだった各種リソースを束ねる「リソースグループ」という概念が出来ました

• VM をはじめ、仮想 NIC やロードバランサ・ストレージを 束ねることで、 1 つのサービスを作り出す仕組みになった

• 従来の VM は「クラシック」という扱いになった

Page 6: なるほどわかった!Azure Resource Managerのテンプレート機能

Azure Resource Manager(ARM)• リソースを 1 つに束ねることによ

り、リソース 1 つ 1 つとの関係が明確に出来るようになった• 「リソースグループ」といいます

• 従来の Azure( 旧ポータル ) では、各リソースの関係性を見いだすのが難しかった• 特にリソースが増えてくると収拾が付

かなくなった

Page 7: なるほどわかった!Azure Resource Managerのテンプレート機能

ARM の設定例

• 構成例• AP * 2(VM)• DB * 1(VM)• ロードバランサ• 仮想 NIC• バックアップサービ

ス• パブリック IP

Moodle を大学などで全学的に

使用することを想定した構成。

Page 8: なるほどわかった!Azure Resource Managerのテンプレート機能

ARM のメリット

• リソース同士の関係性を明確化させることができる

• リソースの一括管理が容易• 全部リソースを消す場合も、リソースグループを消せば良い

• テンプレート機能により、リソースグループごと JSON ファイルから生成することが出来る

Page 9: なるほどわかった!Azure Resource Managerのテンプレート機能

ARM Template と特徴

• JSON 形式のファイルでテンプレートを作ることが出来る• AWS の CloudFormation に近い

• 1 つのテンプレートでリソースグループ内のリソースをほぼ全てデプロイ可能• 変数化して別の JSON ファイルで記述できるため、 使い回ししやすい特性を持つ• Visual Studio でコーディングしてそのままデプロイ出来る• Community Edition( 無料版 ) でも出来ます

Page 10: なるほどわかった!Azure Resource Managerのテンプレート機能

ARM Template の一部Linux VM(Scale Set) を生成する場合{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", "contentVersion": "1.0.0.0", "parameters": { "vmSize": { "type": "string", "defaultValue": "Standard_A1", "minLength": 1 }, "ubuntuOSVersion": { "type": "string", "defaultValue": "14.04.4-LTS", "allowedValues": [ "15.10", "14.04.4-LTS" ], "metadata": { "description": "The Ubuntu version for the VM. This will pick a fully patched image of this given Ubuntu version. Allowed values are: 15.10, 14.04.4-LTS." } },

Page 11: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 1Visual Studio を使う場合Azure SDK をインストールするとVisual Studio 上でコーディング出来る

https://azure.microsoft.com/ja-jp/downloads/

Page 12: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 1Visual Studio の場合• VS 上でプロジェクト新規作成

Page 13: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 1Visual Studio の場合• Visual C# -> Cloud を選択

Page 14: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 1Visual Studio の場合• MS が用意したテンプレートから作成することも可能

Page 15: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 1Visual Studio の場合

Page 16: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 1Visual Studio の場合• プロジェクトを右クリックして「配置」を押下するとデプロイ出来る

Page 17: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 2ポータルから新規作成• ポータル画面から新規作成も出来る

Page 18: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 3ARM Template Visualizer を使う• ドラッグアンドドロップで配置

すると JSON ファイルを生成してくれる便利ツール• CloudFormation Designer  に近

• 「とりあえず仮組みを作ってみる」という用途に便利• 微調整などは手動でやる

• http://armviz.io/#/

Page 19: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 4Azure クイック スタート テンプレート• MS とコミュニティが用意してい

るテンプレートを使う• https://azure.microsoft.com/ja-

jp/documentation/templates/

Page 20: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 4Azure クイック スタート テンプレート• デプロイしたいアプリ名

で検索すると出てくる• “Moodle” で検索した場合

Page 21: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 4Azure クイック スタート テンプレート• Azure へそのままデプロ

イできるし、テンプレートをダウンロードすることが出来る

Page 22: なるほどわかった!Azure Resource Managerのテンプレート機能

作り方 5既にあるリソースから生成する• 手動で作ったリソースか

ら、リソースグループごとテンプレート化することが出来る。

Page 23: なるほどわかった!Azure Resource Managerのテンプレート機能

メリット変数を別ファイルに分けることが出来る

{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "vmssName": { "value": "IaaSTestVM" }, "instanceCount": { "value": 2 }, "adminUsername": { "value": "fuwa" }, "ubuntuOSVersion": { "value": "15.10" } }}

Page 24: なるほどわかった!Azure Resource Managerのテンプレート機能

まとめ

• Azure はここ数年で一気に変わった• Visual Studio だけでデプロイまで出来る• コードガリガリかいてインフラ構築が出来るようになってきた