SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Infrastructure as Code for
Azure
GoAzure 2015 / 2015.01.16
JAZUG 青木 賢太郎
JAZUG 亀渕 景司
Ver 1.3
Agenda
• Infrastructure as Code概論
• Azureでの基本
• システム全体
• インスタンス単位
• まとめ
2
Speaker's
3
{
"objectType": "User",
“displayName”: “青木 賢太郎",
"mail": "aoki-kentaro@mki.co.jp",
“company”: “三井情報株式会社",
"onPremisesSecurityIdentifier": null,
"odata.type": "Microsoft.DirectoryServices.User"
}
MKI
Speaker's
{
"name" : "Keiji Kamebuchi",
"corporation" : "pnop Inc.",
"mail" : "kamebuchi@pnop.co.jp",
"web" : "http://buchizo.wordpress.com/",
"twitter" : "@kosmosebi",
}
4
buchizo@kosmosebi
Senior Fellow
大事なお知らせ
5
• このセッションは 2015/01/16 時点の情報を
基にしています
• 最新情報はWebで❕
こんな経験ありませんか?
• 手順書見ながらインストール
– 手順書が古い / どれが最新か分からない
– 行間を読まないといけない(漏れ・ミス)
• 人力チェック!
• 毎回何か違う…
6
どうすればいいの
• 自動化するといいよね
• 誰が何度やっても同じ結果にしよう
7
• プログラムのようにコーディングして
• コンピューターに実行・チェックさせればいい
• Infrastructure as Code
Goal
• Azureにおける Infrastructure as
Codeを知る
• Azureのインフラをコードで
制御する術を知る
8
最初に
• Infrastructureって?
• Infrastructure as Codeって?
• Immutable?冪等性?
9
Infrastructureって?
• アプリケーションを動かすための基盤
(※このセッションでの狭義)
• ハードウェア、ネットワーク、OS、ミドルウェア…
10
OS Middleware Application
Infrastructure
Infrastructure as Code
• ハードウェア・ネットワークなどプラットフォームの仮
想化により、ソフトウェア的に定義できる
= コードのようにインフラを定義できる
11
Immutable Infrastructure /
Disposable Components
• Immutable (不変の)
• Disposable (使い捨てな)
• Disposable は重要
– 継続的インテグレーションや継続的改善がしやすい
– 気軽に破棄できないと展開やライフサイクルに影響
– 永続化されるデータを外部へ(ログなど)
12
冪等性(べき等性)
• 冪等:ある操作を1度行っても複数回行っ
ても同じ結果(効果)になること
• PowerShell DSCなど多くの宣言的な構成
ツールは冪等性が担保されている
– ⇒ 何度実行しても同じ構成になることを保証
13
手続きと宣言
• 手続き的
– 逐次処理を記述
• 宣言的
– どのようにしたいかを記述
– ChefのレシピやPowerShell DSCの
Configurationなど
14
システムのライフサイクル
15
• 粒度の差はあれど大筋
は変わらない
• どうやって展開・運用
する?
• 何を使う?
• スパンは?
開発
展開運用
今日の主題
AZUREでの基本
16
Command Line Interface
• Azure PowerShell
– PowerShell Cmdlets
– Windows PowerShell 3.0 / .NET
Framework 4.5 が必要
• Azure クロスプラットフォーム CLI
– Azure xplat CLI
– Node.js が必要
17
使う前に
• Add-AzureAccount
– 対話ログオン
– xplat CLIの場合: azure login
• Import-AzurePublishSettingsFile
– 証明書を使った資格情報の設定
– xplat CLIの場合: azure account import
18
その他
• Azure Management REST API
– 言語非依存
– Azure PowerShellやxplat CLIが利用
– http://msdn.microsoft.com/ja-jp/library/azure/ee460799.aspx
19
全体像(展開時)
20
システム全体
OS
アプリケーション
インフラ
Azureネイティブ 3rd Party
Azure Resource Manager
Azure Automation
Azure PowerShell / xplat CLI
AzureManagementRESTAPI
Azure VM Extension
Kubernetes
Orchestration
Configuration
Bootstrapping
システム全体
21
Orchestration
• 複数ロール・台数のサーバーを自動的に構成・管理
• 機能・対象範囲などソリューションによって様々
22
Azure Resource Manager
• Azureのサービスやインスタンスなどをリソースとして
扱うための機能
– 機能単位ではなく論理的なリソースとして纏めて管理できる
– 役割ベースの管理(RBAC)やタグ
• 使用するリソースを記述したテンプレートを用いて
宣言的にAzure上に構成可能
– テンプレートはJSON形式
23
利用時の注意点
• Azure PowerShellのモードを切り替える
– Switch-AzureMode -Name AzureResourceManager
– 戻す場合は Switch-AzureMode -Name AzureServiceManagement
• Azure xplat CLIの場合
– azure config mode arm
– 戻す場合は azure config mode asm
• 必ず対話ログオンが必要
– Add-AzureAccount または azure login など
• 現状まだ利用できるリソースやドキュメントは少ない
– Azureをフル活用するまでもう暫く時間が必要
• 監視等との連携や有機的に接続するにはまだまだ分断されている
• 関連ツール等含めて今後の展開に期待
24
コマンド集
• 利用可能なギャラリーのテンプレート一覧で取得
– Get-AzureResourceGroupGalleryTemplate | Sort-Object -Unique Publisher
• テンプレートの取得
– Save-AzureResourceGroupGalleryTemplate -Identity OutercurveFoundation.OrchardCMS.0.3.2-preview -
Path .¥
• 作成例
$RGPassword = ConvertTo-SecureString "pass" -asplaintext -force
$RGNonSecurePassword = "pass"
$DCLocation = "Japan West"
New-AzureResourceGroup -GalleryTemplateIdentity Acquiacom.AcquiaDrupal7SQL.0.2.1-preview `
-Name "GoAzureRG" -Location $DCLocation -DeploymentName GoAzureD -Tag
@(@{Name="Event";Value="GoAzure"}) `
-siteName "GoAzureD" -hostingPlanName GoAzureRGPlan -siteLocation $DCLocation
-sku Free -workerSize 0 -serverName goazuresrv03 -serverLocation $DCLocation `
-administratorLogin username -administratorLoginPassword $RGPassword `
-databaseName goazurergdb `
-webDeploy_DatabaseUsername username -webDeploy_DatabasePassword $RGNonSecurePassword
25
デモ用のべた書きなのでこういうことはしないこと
実行結果
26
Azure Automation
• Windows PowerShell Workflow構文で
記述されたRunbookをスケジュールに
従って実行できる
• 定型処理などAzure上でホスト・実行
27
Runbook
• ギャラリーやTechNetに多数のサンプル
28
その他のツールなど
• SystemCenter 2012 R2 Orchestrator*
– オーケストレーション
– Azureも対象
• Service Management Automation*
– Windows Azure Pack用
• Vagrant, Knife azure (Chef), msopentech/windowsazure (Puppet)
– 仮想マシンのデプロイ・破棄など
• Release Management for Visual Studio
– デプロイフローの管理・DSCやChefなどを使ったデプロイ
– Azureもオンプレミスも対象
• Ubuntu Juju
• Serfなど
* Azure AutomationのRunbookと互換
29
現状
• 仮想ネットワークや他のAzureサービス
との連携などまだまだ仕組みとして弱い
– ARMで使用できるリソース種別がまだ少ない
• Azure Management APIやAzure
PowerShellなどで構成
• ツールや目的に合った粒度と線引きを
30
インスタンス単位
31
コンテナと構成ツール
• コンテナ
– Dockerなどのコンテナ化技術を使った構成と
アプリケーション配布
• 構成ツール
– Azure標準イメージ(+カスタムイメージ)に
仮想マシン拡張(VM Extension)を使用した
構成
• 標準以外も使うことは可能ですが割愛
32
Application
コンテナと構成ツール
33
Azure VM
OS (CoreOS/Ubuntu)
コンテナ コンテナ
Azure VM
OS (Windows/Linux)
VM Extensions
Chef Extension
Puppet Extension
PowerShell DSC Extension
ApplicationApplication
VM Extensions
Docker Extension
※ Dockerの場合
シーケンス概要
34
仮想マシンのデプロイ
実行環境の準備
(仮想ネットワーク/ストレージなど)
Extensionの実行コンテナの配置
OS起動
Orchestration /
Bootstrap
Configuration
Docker
• コンテナを実行・配布するための仕組み
• Linux/Windows [Preview]
• Docker Hub on Azure はまだ…
• Azureだと2パターン
– Docker Extensionを使ってDocker Engineを
インストール
– Dockerネイティブなイメージを利用
• Dockerコマンドでコンテナを展開すること
でコード化が容易に
35
仮想マシン
or
VM Extensions
Docker Extension Docker Engine
Docker on Azure
コンテナ
Application
コンテナ
Application
コンテナの展開
アプリケーション
Dockerfile
Docker on Azure スクリプト
#!/bin/bash
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install git
sudo apt-get -y install docker.io
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
sudo git clone https://github.com/KentaroAOKI/goazure2015dockerdemo.git
sudo docker build -t goazure2015 goazure2015dockerdemo
sudo docker run -d -t -p 8080:5004 goazure2015
37
Custom Script Extension用
(LFにすること)
Docker on Azure スクリプト
FROM microsoft/aspnet
RUN apt-get -qq update && apt-get -qqy install git
RUN mkdir /app
WORKDIR /app
RUN git clone https://github.com/buchizo/goazure.git
WORKDIR /app/goazure
RUN kpm restore
EXPOSE 5004
ENTRYPOINT ["k", "kestrel"]
38
Dockerfile
Docker on Azure スクリプト
$PublishSettingsFile = ".¥goazure.publishsettings"
$SubscriptionName = "Converted buchizo MSDN 2nd"
$StorageAccountName = "goazure"
$InstanceName = "GoAzureDocker01"
$CloudServiceName = "GoAzureDocker01"
$AdminAccountName = "azureuser"
$AdminAccountPassword = "Password1!"
$VmLocation = "Japan West"
Import-AzurePublishSettingsFile $PublishSettingsFile
Select-AzureSubscription -SubscriptionName $SubscriptionName
Set-AzureSubscription -SubscriptionName $SubscriptionName -CurrentStorageAccountName $StorageAccountName
$OSImage = (Get-AzureVMImage | Where { $_.ImageFamily -eq " Ubuntu Server 14.10" } | sort PublishedDate -Descending | Select-
Object -First 1)
$ImageName = $OSImage.ImageName
$CustomScriptExtension = Get-AzureVMAvailableExtension | Where { $_.ExtensionName -eq "CustomScriptForLinux" }
$TimeStamp = (Get-Date).Ticks
$PublicConfiguration = '{"fileUris":["http://goazure.blob.core.windows.net/docker/dockerbuild.sh"], "commandToExecute": "sh
dockerbuild.sh", "timestamp": "' + $TimeStamp + '" }'
$VmConfig = New-AzureVMConfig -Name $InstanceName -ImageName $ImageName -InstanceSize "Basic_A1" -Verbose `
| Add-AzureProvisioningConfig -Linux -LinuxUser $AdminAccountName -Password $AdminAccountPassword -Verbose `
| Set-AzureVMExtension -ExtensionName $CustomScriptExtension.ExtensionName -Publisher $CustomScriptExtension.Publisher -
Version $CustomScriptExtension.Version -PublicConfiguration $PublicConfiguration `
| Add-AzureEndpoint -Name "web" -LocalPort 8080 -PublicPort 80 -Protocol tcp
New-AzureVM -ServiceName $CloudServiceName -Location $VmLocation -VMs $VmConfig -Verbose -WaitForBoot
39
パラメーター等(ベタ書きの場合)
準備
仮想マシンの
構成
Dockerの構成用
仮想マシンの作成
Dockerの設定
デモ用のべた書きなのでこういうことはしないこと
Docker on Azure 実行例
40
Chef Extension
• Chef Clientのインストール・構成を行う
• Windows/Linux(各ディストリビューション用)にExtensionが存在
– Set-AzureVMChefExtension -Windows または -Linux
– azure vm extension で指定
• Client.rbと検証用PEMファイル、実行するRun Listを指定する
41
Chef Server
仮想マシン
Chef Extension
Chef Client
適用
Client.rb
cookbook
(Pull)
Puppet Extension
42
• PuppetのAgentを利用
• Windows: ExtensionでPuppet Masterを指定
• Linux: Custom Script ExtensionでPuppet Agentの構成
仮想マシン
Puppet Extension
Puppet Master
manifest
(Pull)
Puppet Agent
適用
構成
PowerShell DSC Extension
43
PowerShell DSC
Extension
仮想マシン
Blobストレージ
Configuration
ファイル
LCM
適用
Push
• あらかじめConfigurationファイルをBlobに置いておく
– 実際は使用するResourceなども含めた固めたZipファイル
• Extensionで指定すればPushで適用
• 他の要件の場合はCustom Script Extensionで対応
PowerShell DSC Extension
• 対象OS:Windows Server 2012 / Windows
Server 2012 R2
• Windows Management Framework 5.0
Preview Release November 2014を使用
44
Sample #1
$PublishSettingsFile = ".¥your.publishsettings"
$SubscriptionName = "your subscription name"
$StorageAccountName = "storage account name"
$InstanceName = "GoAzureSrv01"
$CloudServiceName = "GoAzureSrv01"
$AdminAccountName = "azureuser"
$AdminAccountPassword = "password"
$PuppetMasterFqdn = "buchipm.cloudapp.net"
$VmLocation = "Japan West"
Import-AzurePublishSettingsFile $PublishSettingsFile
Select-AzureSubscription -SubscriptionName $SubscriptionName
Set-AzureSubscription -SubscriptionName $SubscriptionName -CurrentStorageAccountName $StorageAccountName
$OSImage = (Get-AzureVMImage | Where { $_.ImageFamily -eq "Windows Server 2012 R2 Datacenter" } | sort PublishedDate -Descending
| Select-Object -First 1)
$ImageName = $OSImage.ImageName
$VmConfig = New-AzureVMConfig -Name $InstanceName -ImageName $ImageName -InstanceSize "Basic_A1" -Verbose `
| Add-AzureProvisioningConfig -Windows -AdminUsername $AdminAccountName -Password $AdminAccountPassword -Verbose `
| Set-AzureVMBGInfoExtension -Verbose `
| Set-AzureVMPuppetExtension -Verbose -PuppetMasterServer $PuppetMasterFqdn
New-AzureVM -ServiceName $CloudServiceName -Location $VmLocation -VMs $VmConfig -Verbose -WaitForBoot
45
準備
仮想マシン
の構成
仮想マシンの作成
Puppetの構成
(Puppet Masterの指定)
パラメーター等(ベタ書きの場合)
デモ用のべた書きなのでこういうことはしないこと
Sample #1 実行例
46
Sample #2
$PublishSettingsFile = ".¥your.publishsettings"
$SubscriptionName = "your subscription name"
$StorageAccountName = "storage account name"
$InstanceName = "GoAzureSrv02"
$CloudServiceName = "GoAzureSrv02"
$AdminAccountName = "azureuser"
$AdminAccountPassword = "password"
$VmLocation = "Japan West"
Import-AzurePublishSettingsFile $PublishSettingsFile
Select-AzureSubscription -SubscriptionName $SubscriptionName
Set-AzureSubscription -SubscriptionName $SubscriptionName -CurrentStorageAccountName $StorageAccountName
$OSImage = (Get-AzureVMImage | Where { $_.ImageFamily -eq "Windows Server 2012 R2 Datacenter" } | sort PublishedDate -Descending | Select-Object -
First 1)
$ImageName = $OSImage.ImageName
$VmConfig = New-AzureVMConfig -Name $InstanceName -ImageName $ImageName -InstanceSize "Basic_A1" -Verbose `
| Add-AzureProvisioningConfig -Windows -AdminUsername $AdminAccountName -Password $AdminAccountPassword -Verbose `
| Set-AzureVMBGInfoExtension -Verbose `
| Set-AzureVMDscExtension -ConfigurationArchive "goazuredsc.ps1.zip" -ConfigurationName "WebServerInstall" -Verbose -ContainerName "dsc" -Force `
| Add-AzureEndpoint -Name "web" -LocalPort 8080 -PublicPort 80 -Protocol tcp
New-AzureVM -ServiceName $CloudServiceName -Location $VmLocation -VMs $VmConfig -Verbose -WaitForBoot
47
パラメーター等(ベタ書きの場合)
準備
仮想マシンの構成
仮想マシンの作成
PowerShell DSCの構成
(Configurationの指定)
デモ用のべた書きなのでこういうことはしないこと
Sample #2 Configuration
48
Configuration WebServerInstall
{
Import-DscResource -Module xWebAdministration, xNetworking
$progressPreference = 'silentlyContinue'
Invoke-WebRequest -Uri
http://goazure.blob.core.windows.net/dsc/Web.zip -OutFile
D:¥web.zip
Node $AllNodes.NodeName
{
LocalConfigurationManager
{
ConfigurationMode = "ApplyAndAutoCorrect"
RebootNodeIfNeeded = $true
}
WindowsFeature InstalledIIS
{
Name = "Web-Server"
Ensure = "Present"
IncludeAllSubFeature = $true
}
Windowsfeature InstalledAspNet45
{
Name = "Web-Asp-Net45"
Ensure = "Present"
}
xWebsite TestWebSite
{
Name = "TestWebSite"
PhysicalPath = "C:¥approot"
State = "Started"
BindingInfo = MSFT_xWebBindingInformation
{
Protocol = "HTTP"
Port = 8080
}
Ensure = "Present"
DependsOn = "[Archive]AppFiles"
}
Archive AppFiles
{
Ensure = "Present"
Path = "D:¥web.zip"
Destination = "C:¥approot"
DependsOn = "[WindowsFeature]InstalledIIS"
}
xFirewall 'Allow HTTP'
{
Name = 'Allow HTTP'
DisplayName = 'Allow HTTP'
DisplayGroup = 'Custom'
Ensure = 'Present'
Access = 'Allow'
State = 'Enabled'
Profile = ('Any')
Direction = 'InBound'
Protocol = 'TCP'
LocalPort = '8080'
Description = ''
}
}
}
ちゃんとリソースにすべきところ
Sample #2 実行例
49
その他
• Custom Script Extension
– Windows/Linuxで使えるExtension
– CustomScriptExtension と CustomScriptForLinux
• Ansible
– 現状はAzure標準サポートではない(手間かければ構成することは可能)
• Octopus Deploy
– PowerShell DSCと組み合わせてアプリケーション配布
– Extensionはありそうで無い(ドキュメントにはあるが…謎)
• Vagrant, Knife azure (Chef), msopentech/windowsazure (Puppet)
– 仮想マシンの立ち上げ部分からサポート
• パッケージマネージャ
– OneGet、Web Platform InstallerやChocolateyなど
– Linuxはディストリ付属が標準的(yumとか)
• Bootstrapと構成に必要な「何か」だけ設定すれば比較的自由
50
Azure Cloud Servicesの場合
• Windowsのみ対象
• Startup Taskで構成
– PowerShellやBATで構成(=Code)
• 基本的にPaaSのためメリットを潰さない
ように
• Cloud Servicesを展開するためのCode
51
Azure Websites/Mobile Services
• PaaSなので構成できる要素は極小
• アプリケーションの構成などが主な
ターゲット
– どのようにアプリケーションを展開するか等
– SCMと連携させる? ビルドツールと連携?
• アプリケーションを展開・連携させるた
めのCode
52
まとめ
53
悩ましい点
• 資格情報の管理
– どのようにコードと切り離すか
– 権限は限定的にしたい(RBACなど)
– Azure Key Vault [Public Preview]
• テスト
– コードが正しく動作するか = インフラが正しい
状態か
– テストの自動化とテスト駆動インフラ
54
展開をどうするか
• いわゆるBlue-Green Deploymentなど
• アプリケーションを「いつ」「どうやって」
展開するか
– 利用環境や粒度、ツール、頻度(ライフサイクル)
などで考慮
– インフラのサイクルとアプリケーションのサイクル
を分けるのか揃えるのか
55
まとめ
• できるところからコード化しよう
– メンテナンス重要! 資産を負債にしない!
– 版管理は大事(GitなどのSCMで集約)
• コード化しシステムを織り成すのは文化
– 文化を熟成しよう
• 真似から始めよう
• よそはよそ、うちはうち、目的に合った文化に
– 枝葉はプラットフォーム固有
• Azure固有の部分と全体像をうまく取り扱おう
56
57
• このセッションは
2015/01/16 時点の情報を
基にしています
• 最新情報はWebで❕
※Azureは日々進化するのでこの時点から
情報が劣化していきます…
質
問
シ
テ
ネ
!
Appendix
• CLI
– Azure PowerShell
• http://azure.microsoft.com/ja-jp/documentation/articles/install-configure-powershell/
– Azure xplat cli
• http://azure.microsoft.com/ja-jp/documentation/articles/xplat-cli/
• Azure Management REST API
– http://msdn.microsoft.com/ja-jp/library/azure/ee460799.aspx
• TechNet – Azure Automation Script resources
– http://goo.gl/Fhu8dY
• Azure VM Extensions and Features
– http://msdn.microsoft.com/en-us/library/azure/dn606311.aspx
• Azure Key Vault
– http://azure.microsoft.com/en-us/services/key-vault/
– http://blogs.technet.com/b/kv/archive/2015/01/09/azure-key-vault-step-by-step.aspx
58

Mais conteúdo relacionado

Mais procurados

クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割junichi anno
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADjunichi anno
 
Azure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例についてAzure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例についてShinya Yamaguchi
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版junichi anno
 
Microsoft と Digital Identity
Microsoft と Digital IdentityMicrosoft と Digital Identity
Microsoft と Digital Identityjunichi anno
 
.NETラボ勉強会資料 Azure AD Identity Protection を知る
.NETラボ勉強会資料 Azure AD Identity Protection を知る.NETラボ勉強会資料 Azure AD Identity Protection を知る
.NETラボ勉強会資料 Azure AD Identity Protection を知るShinya Yamaguchi
 
Dynamic Access Control 解説編
Dynamic Access Control 解説編Dynamic Access Control 解説編
Dynamic Access Control 解説編junichi anno
 
Office365のIdentity管理
Office365のIdentity管理Office365のIdentity管理
Office365のIdentity管理Naohiro Fujie
 
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018Shinichiro Kosugi
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理Naohiro Fujie
 
Insight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeInsight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeKazuki Takai
 
ID連携における仮名
ID連携における仮名ID連携における仮名
ID連携における仮名Naohiro Fujie
 
AAD authentication for azure app v0.1.20.0317
AAD authentication for azure app v0.1.20.0317AAD authentication for azure app v0.1.20.0317
AAD authentication for azure app v0.1.20.0317Ayumu Inaba
 
4/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1
4/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.14/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1
4/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1junichi anno
 
IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計Trainocate Japan, Ltd.
 
Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版junichi anno
 
JAZUG Nagoya Azure Update 20140607
JAZUG Nagoya Azure Update 20140607JAZUG Nagoya Azure Update 20140607
JAZUG Nagoya Azure Update 20140607Ayako Omori
 
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...Norio Sashizaki
 
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~junichi anno
 

Mais procurados (20)

クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
 
Azure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例についてAzure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例について
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
 
Microsoft と Digital Identity
Microsoft と Digital IdentityMicrosoft と Digital Identity
Microsoft と Digital Identity
 
.NETラボ勉強会資料 Azure AD Identity Protection を知る
.NETラボ勉強会資料 Azure AD Identity Protection を知る.NETラボ勉強会資料 Azure AD Identity Protection を知る
.NETラボ勉強会資料 Azure AD Identity Protection を知る
 
Dynamic Access Control 解説編
Dynamic Access Control 解説編Dynamic Access Control 解説編
Dynamic Access Control 解説編
 
Office365のIdentity管理
Office365のIdentity管理Office365のIdentity管理
Office365のIdentity管理
 
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理
 
Insight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeInsight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & Scope
 
ID連携における仮名
ID連携における仮名ID連携における仮名
ID連携における仮名
 
AAD authentication for azure app v0.1.20.0317
AAD authentication for azure app v0.1.20.0317AAD authentication for azure app v0.1.20.0317
AAD authentication for azure app v0.1.20.0317
 
4/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1
4/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.14/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1
4/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1
 
IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計
 
Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版
 
JAZUG Nagoya Azure Update 20140607
JAZUG Nagoya Azure Update 20140607JAZUG Nagoya Azure Update 20140607
JAZUG Nagoya Azure Update 20140607
 
ADFS の vNext
ADFS の vNext ADFS の vNext
ADFS の vNext
 
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...
 
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
 

Destaque

ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure FunctionsKeiji Kamebuchi
 
VYATTA USERS MEETING Spring 2014 - JAZUG
VYATTA USERS MEETING Spring 2014 - JAZUGVYATTA USERS MEETING Spring 2014 - JAZUG
VYATTA USERS MEETING Spring 2014 - JAZUGKeiji Kamebuchi
 
C#ユーザー会 //build/ まとめ(サーバー編)
C#ユーザー会 //build/ まとめ(サーバー編)C#ユーザー会 //build/ まとめ(サーバー編)
C#ユーザー会 //build/ まとめ(サーバー編)Keiji Kamebuchi
 
ちょっと分かった気になるAzure概要
ちょっと分かった気になるAzure概要ちょっと分かった気になるAzure概要
ちょっと分かった気になるAzure概要Keiji Kamebuchi
 
Azure App Service Overview LT
Azure App Service Overview LTAzure App Service Overview LT
Azure App Service Overview LTKeiji Kamebuchi
 
スクリプトによるAzure管理Tips / JAZUG 2014.09.26
スクリプトによるAzure管理Tips / JAZUG 2014.09.26スクリプトによるAzure管理Tips / JAZUG 2014.09.26
スクリプトによるAzure管理Tips / JAZUG 2014.09.26Keiji Kamebuchi
 
Azure概要とハイブリッドWebサイトとか / 2014.09.27
Azure概要とハイブリッドWebサイトとか / 2014.09.27Azure概要とハイブリッドWebサイトとか / 2014.09.27
Azure概要とハイブリッドWebサイトとか / 2014.09.27Keiji Kamebuchi
 
AzureでLaravel動かしてみた
AzureでLaravel動かしてみたAzureでLaravel動かしてみた
AzureでLaravel動かしてみたKeiji Kamebuchi
 
クラウドことはじめ
クラウドことはじめクラウドことはじめ
クラウドことはじめKeiji Kamebuchi
 
Azure How to Learn & ゆるふわ雑談Q&A
Azure How to Learn &ゆるふわ雑談Q&AAzure How to Learn &ゆるふわ雑談Q&A
Azure How to Learn & ゆるふわ雑談Q&AKeiji Kamebuchi
 
Azure Functions と Serverless - 概要と企業向け Tips
Azure Functions と Serverless - 概要と企業向け TipsAzure Functions と Serverless - 概要と企業向け Tips
Azure Functions と Serverless - 概要と企業向け TipsKeiji Kamebuchi
 

Destaque (12)

ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure Functions
 
Azure <3 Openness
Azure <3 OpennessAzure <3 Openness
Azure <3 Openness
 
VYATTA USERS MEETING Spring 2014 - JAZUG
VYATTA USERS MEETING Spring 2014 - JAZUGVYATTA USERS MEETING Spring 2014 - JAZUG
VYATTA USERS MEETING Spring 2014 - JAZUG
 
C#ユーザー会 //build/ まとめ(サーバー編)
C#ユーザー会 //build/ まとめ(サーバー編)C#ユーザー会 //build/ まとめ(サーバー編)
C#ユーザー会 //build/ まとめ(サーバー編)
 
ちょっと分かった気になるAzure概要
ちょっと分かった気になるAzure概要ちょっと分かった気になるAzure概要
ちょっと分かった気になるAzure概要
 
Azure App Service Overview LT
Azure App Service Overview LTAzure App Service Overview LT
Azure App Service Overview LT
 
スクリプトによるAzure管理Tips / JAZUG 2014.09.26
スクリプトによるAzure管理Tips / JAZUG 2014.09.26スクリプトによるAzure管理Tips / JAZUG 2014.09.26
スクリプトによるAzure管理Tips / JAZUG 2014.09.26
 
Azure概要とハイブリッドWebサイトとか / 2014.09.27
Azure概要とハイブリッドWebサイトとか / 2014.09.27Azure概要とハイブリッドWebサイトとか / 2014.09.27
Azure概要とハイブリッドWebサイトとか / 2014.09.27
 
AzureでLaravel動かしてみた
AzureでLaravel動かしてみたAzureでLaravel動かしてみた
AzureでLaravel動かしてみた
 
クラウドことはじめ
クラウドことはじめクラウドことはじめ
クラウドことはじめ
 
Azure How to Learn & ゆるふわ雑談Q&A
Azure How to Learn &ゆるふわ雑談Q&AAzure How to Learn &ゆるふわ雑談Q&A
Azure How to Learn & ゆるふわ雑談Q&A
 
Azure Functions と Serverless - 概要と企業向け Tips
Azure Functions と Serverless - 概要と企業向け TipsAzure Functions と Serverless - 概要と企業向け Tips
Azure Functions と Serverless - 概要と企業向け Tips
 

Semelhante a Infrastructure as code for azure

20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなし20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなしTakayoshi Tanaka
 
SugarCRM meets Azure
SugarCRM meets AzureSugarCRM meets Azure
SugarCRM meets AzureToshiya TSURU
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用Yatabe Terumasa
 
BCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormationBCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormation真吾 吉田
 
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Kazuki Takai
 
ZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツShinsukeYokota
 
Azure Policyでハイブリッドな構成管理
Azure Policyでハイブリッドな構成管理Azure Policyでハイブリッドな構成管理
Azure Policyでハイブリッドな構成管理Masahiko Ebisuda
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionYoshitaka Seo
 
Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Shotaro Suzuki
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報Kazuki Takai
 
現場的!オンプレとAWSの違い
現場的!オンプレとAWSの違い現場的!オンプレとAWSの違い
現場的!オンプレとAWSの違い真吾 吉田
 
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0Toshiro Shimizu
 
Aws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそうAws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそうGenta Watanabe
 
Azure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionAzure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionKazuki Takai
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドMicrosoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドKazumi Hirose
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門Tsukasa Kato
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 

Semelhante a Infrastructure as code for azure (20)

20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなし20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなし
 
SugarCRM meets Azure
SugarCRM meets AzureSugarCRM meets Azure
SugarCRM meets Azure
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
 
BCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormationBCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormation
 
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
 
ZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツ
 
Azure Policyでハイブリッドな構成管理
Azure Policyでハイブリッドな構成管理Azure Policyでハイブリッドな構成管理
Azure Policyでハイブリッドな構成管理
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom Vision
 
Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報
 
現場的!オンプレとAWSの違い
現場的!オンプレとAWSの違い現場的!オンプレとAWSの違い
現場的!オンプレとAWSの違い
 
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
 
AWS Blackbelt 2015シリーズ AWS Lambda
AWS Blackbelt 2015シリーズ AWS LambdaAWS Blackbelt 2015シリーズ AWS Lambda
AWS Blackbelt 2015シリーズ AWS Lambda
 
Aws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそうAws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそう
 
Azure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionAzure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox Edition
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドMicrosoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
HTML5 on ASP.NET
HTML5 on ASP.NETHTML5 on ASP.NET
HTML5 on ASP.NET
 

Último

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 

Último (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

Infrastructure as code for azure

  • 1. Infrastructure as Code for Azure GoAzure 2015 / 2015.01.16 JAZUG 青木 賢太郎 JAZUG 亀渕 景司 Ver 1.3
  • 2. Agenda • Infrastructure as Code概論 • Azureでの基本 • システム全体 • インスタンス単位 • まとめ 2
  • 3. Speaker's 3 { "objectType": "User", “displayName”: “青木 賢太郎", "mail": "aoki-kentaro@mki.co.jp", “company”: “三井情報株式会社", "onPremisesSecurityIdentifier": null, "odata.type": "Microsoft.DirectoryServices.User" } MKI
  • 4. Speaker's { "name" : "Keiji Kamebuchi", "corporation" : "pnop Inc.", "mail" : "kamebuchi@pnop.co.jp", "web" : "http://buchizo.wordpress.com/", "twitter" : "@kosmosebi", } 4 buchizo@kosmosebi Senior Fellow
  • 5. 大事なお知らせ 5 • このセッションは 2015/01/16 時点の情報を 基にしています • 最新情報はWebで❕
  • 6. こんな経験ありませんか? • 手順書見ながらインストール – 手順書が古い / どれが最新か分からない – 行間を読まないといけない(漏れ・ミス) • 人力チェック! • 毎回何か違う… 6
  • 7. どうすればいいの • 自動化するといいよね • 誰が何度やっても同じ結果にしよう 7 • プログラムのようにコーディングして • コンピューターに実行・チェックさせればいい • Infrastructure as Code
  • 8. Goal • Azureにおける Infrastructure as Codeを知る • Azureのインフラをコードで 制御する術を知る 8
  • 9. 最初に • Infrastructureって? • Infrastructure as Codeって? • Immutable?冪等性? 9
  • 11. Infrastructure as Code • ハードウェア・ネットワークなどプラットフォームの仮 想化により、ソフトウェア的に定義できる = コードのようにインフラを定義できる 11
  • 12. Immutable Infrastructure / Disposable Components • Immutable (不変の) • Disposable (使い捨てな) • Disposable は重要 – 継続的インテグレーションや継続的改善がしやすい – 気軽に破棄できないと展開やライフサイクルに影響 – 永続化されるデータを外部へ(ログなど) 12
  • 13. 冪等性(べき等性) • 冪等:ある操作を1度行っても複数回行っ ても同じ結果(効果)になること • PowerShell DSCなど多くの宣言的な構成 ツールは冪等性が担保されている – ⇒ 何度実行しても同じ構成になることを保証 13
  • 14. 手続きと宣言 • 手続き的 – 逐次処理を記述 • 宣言的 – どのようにしたいかを記述 – ChefのレシピやPowerShell DSCの Configurationなど 14
  • 17. Command Line Interface • Azure PowerShell – PowerShell Cmdlets – Windows PowerShell 3.0 / .NET Framework 4.5 が必要 • Azure クロスプラットフォーム CLI – Azure xplat CLI – Node.js が必要 17
  • 18. 使う前に • Add-AzureAccount – 対話ログオン – xplat CLIの場合: azure login • Import-AzurePublishSettingsFile – 証明書を使った資格情報の設定 – xplat CLIの場合: azure account import 18
  • 19. その他 • Azure Management REST API – 言語非依存 – Azure PowerShellやxplat CLIが利用 – http://msdn.microsoft.com/ja-jp/library/azure/ee460799.aspx 19
  • 20. 全体像(展開時) 20 システム全体 OS アプリケーション インフラ Azureネイティブ 3rd Party Azure Resource Manager Azure Automation Azure PowerShell / xplat CLI AzureManagementRESTAPI Azure VM Extension Kubernetes Orchestration Configuration Bootstrapping
  • 23. Azure Resource Manager • Azureのサービスやインスタンスなどをリソースとして 扱うための機能 – 機能単位ではなく論理的なリソースとして纏めて管理できる – 役割ベースの管理(RBAC)やタグ • 使用するリソースを記述したテンプレートを用いて 宣言的にAzure上に構成可能 – テンプレートはJSON形式 23
  • 24. 利用時の注意点 • Azure PowerShellのモードを切り替える – Switch-AzureMode -Name AzureResourceManager – 戻す場合は Switch-AzureMode -Name AzureServiceManagement • Azure xplat CLIの場合 – azure config mode arm – 戻す場合は azure config mode asm • 必ず対話ログオンが必要 – Add-AzureAccount または azure login など • 現状まだ利用できるリソースやドキュメントは少ない – Azureをフル活用するまでもう暫く時間が必要 • 監視等との連携や有機的に接続するにはまだまだ分断されている • 関連ツール等含めて今後の展開に期待 24
  • 25. コマンド集 • 利用可能なギャラリーのテンプレート一覧で取得 – Get-AzureResourceGroupGalleryTemplate | Sort-Object -Unique Publisher • テンプレートの取得 – Save-AzureResourceGroupGalleryTemplate -Identity OutercurveFoundation.OrchardCMS.0.3.2-preview - Path .¥ • 作成例 $RGPassword = ConvertTo-SecureString "pass" -asplaintext -force $RGNonSecurePassword = "pass" $DCLocation = "Japan West" New-AzureResourceGroup -GalleryTemplateIdentity Acquiacom.AcquiaDrupal7SQL.0.2.1-preview ` -Name "GoAzureRG" -Location $DCLocation -DeploymentName GoAzureD -Tag @(@{Name="Event";Value="GoAzure"}) ` -siteName "GoAzureD" -hostingPlanName GoAzureRGPlan -siteLocation $DCLocation -sku Free -workerSize 0 -serverName goazuresrv03 -serverLocation $DCLocation ` -administratorLogin username -administratorLoginPassword $RGPassword ` -databaseName goazurergdb ` -webDeploy_DatabaseUsername username -webDeploy_DatabasePassword $RGNonSecurePassword 25 デモ用のべた書きなのでこういうことはしないこと
  • 27. Azure Automation • Windows PowerShell Workflow構文で 記述されたRunbookをスケジュールに 従って実行できる • 定型処理などAzure上でホスト・実行 27
  • 29. その他のツールなど • SystemCenter 2012 R2 Orchestrator* – オーケストレーション – Azureも対象 • Service Management Automation* – Windows Azure Pack用 • Vagrant, Knife azure (Chef), msopentech/windowsazure (Puppet) – 仮想マシンのデプロイ・破棄など • Release Management for Visual Studio – デプロイフローの管理・DSCやChefなどを使ったデプロイ – Azureもオンプレミスも対象 • Ubuntu Juju • Serfなど * Azure AutomationのRunbookと互換 29
  • 32. コンテナと構成ツール • コンテナ – Dockerなどのコンテナ化技術を使った構成と アプリケーション配布 • 構成ツール – Azure標準イメージ(+カスタムイメージ)に 仮想マシン拡張(VM Extension)を使用した 構成 • 標準以外も使うことは可能ですが割愛 32
  • 33. Application コンテナと構成ツール 33 Azure VM OS (CoreOS/Ubuntu) コンテナ コンテナ Azure VM OS (Windows/Linux) VM Extensions Chef Extension Puppet Extension PowerShell DSC Extension ApplicationApplication VM Extensions Docker Extension ※ Dockerの場合
  • 35. Docker • コンテナを実行・配布するための仕組み • Linux/Windows [Preview] • Docker Hub on Azure はまだ… • Azureだと2パターン – Docker Extensionを使ってDocker Engineを インストール – Dockerネイティブなイメージを利用 • Dockerコマンドでコンテナを展開すること でコード化が容易に 35
  • 36. 仮想マシン or VM Extensions Docker Extension Docker Engine Docker on Azure コンテナ Application コンテナ Application コンテナの展開 アプリケーション Dockerfile
  • 37. Docker on Azure スクリプト #!/bin/bash sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y install git sudo apt-get -y install docker.io sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io sudo git clone https://github.com/KentaroAOKI/goazure2015dockerdemo.git sudo docker build -t goazure2015 goazure2015dockerdemo sudo docker run -d -t -p 8080:5004 goazure2015 37 Custom Script Extension用 (LFにすること)
  • 38. Docker on Azure スクリプト FROM microsoft/aspnet RUN apt-get -qq update && apt-get -qqy install git RUN mkdir /app WORKDIR /app RUN git clone https://github.com/buchizo/goazure.git WORKDIR /app/goazure RUN kpm restore EXPOSE 5004 ENTRYPOINT ["k", "kestrel"] 38 Dockerfile
  • 39. Docker on Azure スクリプト $PublishSettingsFile = ".¥goazure.publishsettings" $SubscriptionName = "Converted buchizo MSDN 2nd" $StorageAccountName = "goazure" $InstanceName = "GoAzureDocker01" $CloudServiceName = "GoAzureDocker01" $AdminAccountName = "azureuser" $AdminAccountPassword = "Password1!" $VmLocation = "Japan West" Import-AzurePublishSettingsFile $PublishSettingsFile Select-AzureSubscription -SubscriptionName $SubscriptionName Set-AzureSubscription -SubscriptionName $SubscriptionName -CurrentStorageAccountName $StorageAccountName $OSImage = (Get-AzureVMImage | Where { $_.ImageFamily -eq " Ubuntu Server 14.10" } | sort PublishedDate -Descending | Select- Object -First 1) $ImageName = $OSImage.ImageName $CustomScriptExtension = Get-AzureVMAvailableExtension | Where { $_.ExtensionName -eq "CustomScriptForLinux" } $TimeStamp = (Get-Date).Ticks $PublicConfiguration = '{"fileUris":["http://goazure.blob.core.windows.net/docker/dockerbuild.sh"], "commandToExecute": "sh dockerbuild.sh", "timestamp": "' + $TimeStamp + '" }' $VmConfig = New-AzureVMConfig -Name $InstanceName -ImageName $ImageName -InstanceSize "Basic_A1" -Verbose ` | Add-AzureProvisioningConfig -Linux -LinuxUser $AdminAccountName -Password $AdminAccountPassword -Verbose ` | Set-AzureVMExtension -ExtensionName $CustomScriptExtension.ExtensionName -Publisher $CustomScriptExtension.Publisher - Version $CustomScriptExtension.Version -PublicConfiguration $PublicConfiguration ` | Add-AzureEndpoint -Name "web" -LocalPort 8080 -PublicPort 80 -Protocol tcp New-AzureVM -ServiceName $CloudServiceName -Location $VmLocation -VMs $VmConfig -Verbose -WaitForBoot 39 パラメーター等(ベタ書きの場合) 準備 仮想マシンの 構成 Dockerの構成用 仮想マシンの作成 Dockerの設定 デモ用のべた書きなのでこういうことはしないこと
  • 40. Docker on Azure 実行例 40
  • 41. Chef Extension • Chef Clientのインストール・構成を行う • Windows/Linux(各ディストリビューション用)にExtensionが存在 – Set-AzureVMChefExtension -Windows または -Linux – azure vm extension で指定 • Client.rbと検証用PEMファイル、実行するRun Listを指定する 41 Chef Server 仮想マシン Chef Extension Chef Client 適用 Client.rb cookbook (Pull)
  • 42. Puppet Extension 42 • PuppetのAgentを利用 • Windows: ExtensionでPuppet Masterを指定 • Linux: Custom Script ExtensionでPuppet Agentの構成 仮想マシン Puppet Extension Puppet Master manifest (Pull) Puppet Agent 適用 構成
  • 43. PowerShell DSC Extension 43 PowerShell DSC Extension 仮想マシン Blobストレージ Configuration ファイル LCM 適用 Push • あらかじめConfigurationファイルをBlobに置いておく – 実際は使用するResourceなども含めた固めたZipファイル • Extensionで指定すればPushで適用 • 他の要件の場合はCustom Script Extensionで対応
  • 44. PowerShell DSC Extension • 対象OS:Windows Server 2012 / Windows Server 2012 R2 • Windows Management Framework 5.0 Preview Release November 2014を使用 44
  • 45. Sample #1 $PublishSettingsFile = ".¥your.publishsettings" $SubscriptionName = "your subscription name" $StorageAccountName = "storage account name" $InstanceName = "GoAzureSrv01" $CloudServiceName = "GoAzureSrv01" $AdminAccountName = "azureuser" $AdminAccountPassword = "password" $PuppetMasterFqdn = "buchipm.cloudapp.net" $VmLocation = "Japan West" Import-AzurePublishSettingsFile $PublishSettingsFile Select-AzureSubscription -SubscriptionName $SubscriptionName Set-AzureSubscription -SubscriptionName $SubscriptionName -CurrentStorageAccountName $StorageAccountName $OSImage = (Get-AzureVMImage | Where { $_.ImageFamily -eq "Windows Server 2012 R2 Datacenter" } | sort PublishedDate -Descending | Select-Object -First 1) $ImageName = $OSImage.ImageName $VmConfig = New-AzureVMConfig -Name $InstanceName -ImageName $ImageName -InstanceSize "Basic_A1" -Verbose ` | Add-AzureProvisioningConfig -Windows -AdminUsername $AdminAccountName -Password $AdminAccountPassword -Verbose ` | Set-AzureVMBGInfoExtension -Verbose ` | Set-AzureVMPuppetExtension -Verbose -PuppetMasterServer $PuppetMasterFqdn New-AzureVM -ServiceName $CloudServiceName -Location $VmLocation -VMs $VmConfig -Verbose -WaitForBoot 45 準備 仮想マシン の構成 仮想マシンの作成 Puppetの構成 (Puppet Masterの指定) パラメーター等(ベタ書きの場合) デモ用のべた書きなのでこういうことはしないこと
  • 47. Sample #2 $PublishSettingsFile = ".¥your.publishsettings" $SubscriptionName = "your subscription name" $StorageAccountName = "storage account name" $InstanceName = "GoAzureSrv02" $CloudServiceName = "GoAzureSrv02" $AdminAccountName = "azureuser" $AdminAccountPassword = "password" $VmLocation = "Japan West" Import-AzurePublishSettingsFile $PublishSettingsFile Select-AzureSubscription -SubscriptionName $SubscriptionName Set-AzureSubscription -SubscriptionName $SubscriptionName -CurrentStorageAccountName $StorageAccountName $OSImage = (Get-AzureVMImage | Where { $_.ImageFamily -eq "Windows Server 2012 R2 Datacenter" } | sort PublishedDate -Descending | Select-Object - First 1) $ImageName = $OSImage.ImageName $VmConfig = New-AzureVMConfig -Name $InstanceName -ImageName $ImageName -InstanceSize "Basic_A1" -Verbose ` | Add-AzureProvisioningConfig -Windows -AdminUsername $AdminAccountName -Password $AdminAccountPassword -Verbose ` | Set-AzureVMBGInfoExtension -Verbose ` | Set-AzureVMDscExtension -ConfigurationArchive "goazuredsc.ps1.zip" -ConfigurationName "WebServerInstall" -Verbose -ContainerName "dsc" -Force ` | Add-AzureEndpoint -Name "web" -LocalPort 8080 -PublicPort 80 -Protocol tcp New-AzureVM -ServiceName $CloudServiceName -Location $VmLocation -VMs $VmConfig -Verbose -WaitForBoot 47 パラメーター等(ベタ書きの場合) 準備 仮想マシンの構成 仮想マシンの作成 PowerShell DSCの構成 (Configurationの指定) デモ用のべた書きなのでこういうことはしないこと
  • 48. Sample #2 Configuration 48 Configuration WebServerInstall { Import-DscResource -Module xWebAdministration, xNetworking $progressPreference = 'silentlyContinue' Invoke-WebRequest -Uri http://goazure.blob.core.windows.net/dsc/Web.zip -OutFile D:¥web.zip Node $AllNodes.NodeName { LocalConfigurationManager { ConfigurationMode = "ApplyAndAutoCorrect" RebootNodeIfNeeded = $true } WindowsFeature InstalledIIS { Name = "Web-Server" Ensure = "Present" IncludeAllSubFeature = $true } Windowsfeature InstalledAspNet45 { Name = "Web-Asp-Net45" Ensure = "Present" } xWebsite TestWebSite { Name = "TestWebSite" PhysicalPath = "C:¥approot" State = "Started" BindingInfo = MSFT_xWebBindingInformation { Protocol = "HTTP" Port = 8080 } Ensure = "Present" DependsOn = "[Archive]AppFiles" } Archive AppFiles { Ensure = "Present" Path = "D:¥web.zip" Destination = "C:¥approot" DependsOn = "[WindowsFeature]InstalledIIS" } xFirewall 'Allow HTTP' { Name = 'Allow HTTP' DisplayName = 'Allow HTTP' DisplayGroup = 'Custom' Ensure = 'Present' Access = 'Allow' State = 'Enabled' Profile = ('Any') Direction = 'InBound' Protocol = 'TCP' LocalPort = '8080' Description = '' } } } ちゃんとリソースにすべきところ
  • 50. その他 • Custom Script Extension – Windows/Linuxで使えるExtension – CustomScriptExtension と CustomScriptForLinux • Ansible – 現状はAzure標準サポートではない(手間かければ構成することは可能) • Octopus Deploy – PowerShell DSCと組み合わせてアプリケーション配布 – Extensionはありそうで無い(ドキュメントにはあるが…謎) • Vagrant, Knife azure (Chef), msopentech/windowsazure (Puppet) – 仮想マシンの立ち上げ部分からサポート • パッケージマネージャ – OneGet、Web Platform InstallerやChocolateyなど – Linuxはディストリ付属が標準的(yumとか) • Bootstrapと構成に必要な「何か」だけ設定すれば比較的自由 50
  • 51. Azure Cloud Servicesの場合 • Windowsのみ対象 • Startup Taskで構成 – PowerShellやBATで構成(=Code) • 基本的にPaaSのためメリットを潰さない ように • Cloud Servicesを展開するためのCode 51
  • 52. Azure Websites/Mobile Services • PaaSなので構成できる要素は極小 • アプリケーションの構成などが主な ターゲット – どのようにアプリケーションを展開するか等 – SCMと連携させる? ビルドツールと連携? • アプリケーションを展開・連携させるた めのCode 52
  • 54. 悩ましい点 • 資格情報の管理 – どのようにコードと切り離すか – 権限は限定的にしたい(RBACなど) – Azure Key Vault [Public Preview] • テスト – コードが正しく動作するか = インフラが正しい 状態か – テストの自動化とテスト駆動インフラ 54
  • 55. 展開をどうするか • いわゆるBlue-Green Deploymentなど • アプリケーションを「いつ」「どうやって」 展開するか – 利用環境や粒度、ツール、頻度(ライフサイクル) などで考慮 – インフラのサイクルとアプリケーションのサイクル を分けるのか揃えるのか 55
  • 56. まとめ • できるところからコード化しよう – メンテナンス重要! 資産を負債にしない! – 版管理は大事(GitなどのSCMで集約) • コード化しシステムを織り成すのは文化 – 文化を熟成しよう • 真似から始めよう • よそはよそ、うちはうち、目的に合った文化に – 枝葉はプラットフォーム固有 • Azure固有の部分と全体像をうまく取り扱おう 56
  • 57. 57 • このセッションは 2015/01/16 時点の情報を 基にしています • 最新情報はWebで❕ ※Azureは日々進化するのでこの時点から 情報が劣化していきます… 質 問 シ テ ネ !
  • 58. Appendix • CLI – Azure PowerShell • http://azure.microsoft.com/ja-jp/documentation/articles/install-configure-powershell/ – Azure xplat cli • http://azure.microsoft.com/ja-jp/documentation/articles/xplat-cli/ • Azure Management REST API – http://msdn.microsoft.com/ja-jp/library/azure/ee460799.aspx • TechNet – Azure Automation Script resources – http://goo.gl/Fhu8dY • Azure VM Extensions and Features – http://msdn.microsoft.com/en-us/library/azure/dn606311.aspx • Azure Key Vault – http://azure.microsoft.com/en-us/services/key-vault/ – http://blogs.technet.com/b/kv/archive/2015/01/09/azure-key-vault-step-by-step.aspx 58