クイックスタート: Azure PowerShell を使用した ExpressRoute 回線の作成と変更
このクイックスタートでは、Azure PowerShell を使用して、最大の回復性、高い回復性、標準の回復性という 3 種類の回復性で ExpressRoute 回線を作成する方法について説明します。 PowerShell コマンドレットを使用して回線の状態の確認、更新、削除、またはプロビジョニング解除を行う方法について説明します。
前提条件
- 構成を開始する前に、前提条件とワークフローを確認してください。
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- ローカルにインストールされた Azure PowerShell または Azure Cloud Shell
Azure Cloud Shell
Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには、以下のようにします。
オプション | 例とリンク |
---|---|
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 | |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を開始します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードまたはコマンドを実行します。
ExpressRoute 回線の作成とプロビジョニング
Azure アカウントにサインインしてサブスクリプションを選択する
Azure Cloud Shell を使用している場合は、[試してみる] をクリックすると、Azure アカウントに自動的にサインインします。 ローカルにサインインするには、昇格された特権で PowerShell コンソールを開き、コマンドレットを実行して接続します。
Connect-AzAccount
複数のサブスクリプションがある場合は、Azure サブスクリプションの一覧を取得します。
Get-AzSubscription
使用するサブスクリプションを指定します。
Select-AzSubscription -SubscriptionName "Name of subscription"
サポートされるプロバイダー、場所、帯域幅のリストを取得する
ExpressRoute 回線を作成する前に、サポートされている接続プロバイダー、場所、帯域幅オプションのリストが必要になります。
PowerShell コマンドレットの Get-AzExpressRouteServiceProvider は、この情報を返します。これは後の手順で使用します。
Get-AzExpressRouteServiceProvider
接続プロバイダーがそこにリストされているかどうかを確認します。 以下の項目は、回線を作成する際に後で必要になるため、書き留めておいてください。
- 名前
- PeeringLocations
- BandwidthsOffered
これで、ExpressRoute 回線を作成する準備が整いました。
回復性がある場所の一覧を取得する
回復性の種類が [最大の回復性] である ExpressRoute 回線を作成している場合は、回復性がある場所の一覧を把握している必要があります。 この情報を取得する手順を次に示します。
スクリプトを複製する
# Clone the setup script from GitHub.
git clone https://github.com/Azure-Samples/azure-docs-powershell-samples/
# Change to the directory where the script is located.
CD azure-docs-powershell-samples/expressroute/
回復性がある場所のスクリプトを実行する
Get-AzExpressRouteResilientLocations.ps1 スクリプトを実行して、回復性がある場所の一覧を取得します。 次の例は、特定のサブスクリプションの回復性がある場所を、シリコン バレーからの距離順に並べ替えて取得する方法を示しています。
$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
highAvailabilitySetup/Get-AzExpressRouteResilientLocations.ps1 -SubscriptionId $SubscriptionId -RelativeLocation "silicon valley"
場所を指定しない場合は、すべての回復性がある場所の一覧が取得されます。
ExpressRoute 回線の作成
リソース グループがまだない場合は、ExpressRoute 回線を作成する前に、作成しておく必要があります。 これを行うには、New-AzResourceGroup コマンドレットを実行します。
$resourceGroupName = (New-AzResourceGroup -Name "ExpressRouteResourceGroup" -Location "West US").ResourceGroupName
リソース グループが既にある場合は、Get-AzResourceGroup を使用してリソース グループ名を変数に取得できます。
$resourceGroupName = (Get-AzResourceGroup -Name "<ResourceGroupName>").ResourceGroupName
最大の回復性 (推奨) は、ExpressRoute 接続の最高レベルの回復性を提供します。 2 つの異なる ExpressRoute エッジ ロケーションにローカル冗長性を持つ 2 つの ExpressRoute 回線が提供されます。
次の例は、シリコン バレーとワシントン DC でローカル冗長を備えた Equinix 経由の 2 つの ExpressRoute 回線を作成する方法を示しています。 別のプロバイダーおよび異なる設定を使用する場合は、要求を実行するときにその情報に置き換えてください。
Note
この例では、New-AzHighAvailabilityExpressRouteCircuits.ps1 スクリプトを使用します。 回線を作成するには、GitHub からスクリプトをクローンする必要があります。 詳細については、スクリプトのクローンに関する記事を参照してください。
$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
highAvailabilitySetup/New-AzHighAvailabilityExpressRouteCircuits.ps1 -SubscriptionId $SubscriptionId -ResourceGroupName $resourceGroupName -Location "westus" -Name1 $circuit1Name -Name2 $circuit2Name -SkuFamily1 "MeteredData" -SkuFamily2 "MeteredData" -SkuTier1 "Standard" -SkuTier2 "Standard" -ServiceProviderName1 "Equinix" -ServiceProviderName2 "Equinix" -PeeringLocation1 "Silicon Valley" -PeeringLocation2 "Washington DC" -BandwidthInMbps 1000
Note
[最大の回復性] には、場所全体の停止および 1 つの ExpressRoute の場所での接続エラーに対する最大限の保護が用意されています。 このオプションは、すべてのクリティカルなワークロードおよび運用ワークロードに強くお勧めします。
必ず、適切な SKU レベルと SKU ファミリを指定してください。
- SKU レベルによって、ExpressRoute 回線が Local、Standard、Premium のどれであるかが決まります。 Local、*Standard、または Premium を指定できます。
- SKU ファミリによって、課金の種類が決まります。 従量制課金データ プランの場合は MeteredData、無制限データ プランの場合は UnlimitedData を指定できます。 課金の種類は MeteredData から UnlimitedData に変更できますが、その種類を UnlimitedData から MeteredData に変更することはできません。 Local 回線は常に UnlimitedData です。
重要
ExpressRoute 回線の課金は、サービス キーが発行されたときから始まります。 接続プロバイダーが回線をプロビジョニングする準備ができたら、この操作を実行します。
応答にはサービス キーが含まれます。 次のコマンドを実行することで、すべてのパラメーターの詳細な説明を取得できます。
get-help New-AzExpressRouteCircuit -detailed
すべての ExpressRoute 回線を一覧表示する
作成したすべての ExpressRoute 回線の一覧を取得するには、Get-AzExpressRouteCircuit コマンドを実行します。
Get-AzExpressRouteCircuit
応答は次の例のようになります。
Name : ExpressRouteARMCircuit
ResourceGroupName : ExpressRouteResourceGroup
Location : westus
Id : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag : W/"################################"
ProvisioningState : Succeeded
Sku : {
"Name": "Standard_MeteredData",
"Tier": "Standard",
"Family": "MeteredData"
}
CircuitProvisioningState : Enabled
ServiceProviderProvisioningState : NotProvisioned
ServiceProviderNotes :
ServiceProviderProperties : {
"ServiceProviderName": "Equinix",
"PeeringLocation": "Silicon Valley",
"BandwidthInMbps": 200
}
ServiceKey : **************************************
Peerings : []
この情報は、 Get-AzExpressRouteCircuit
コマンドレットを使用していつでも取得できます。 パラメーターを指定せずに呼び出しを実行すると、すべての回線が一覧表示されます。 サービス キーは ServiceKey フィールドに一覧表示されます。
Get-AzExpressRouteCircuit
応答は次の例のようになります。
Name : ExpressRouteARMCircuit
ResourceGroupName : ExpressRouteResourceGroup
Location : westus
Id : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag : W/"################################"
ProvisioningState : Succeeded
Sku : {
"Name": "Standard_MeteredData",
"Tier": "Standard",
"Family": "MeteredData"
}
CircuitProvisioningState : Enabled
ServiceProviderProvisioningState : NotProvisioned
ServiceProviderNotes :
ServiceProviderProperties : {
"ServiceProviderName": "Equinix",
"PeeringLocation": "Silicon Valley",
"BandwidthInMbps": 200
}
ServiceKey : **************************************
Peerings : []
プロビジョニングのためにサービス キーを接続プロバイダーに送信する
ServiceProviderProvisioningState は、サービス プロバイダー側でのプロビジョニングの現在の状態に関する情報を提供します。 CircuitProvisioningState は、Microsoft 側の状態を提供します。 回線のプロビジョニング状態に関する詳細については、ワークフローに関するページを参照してください。
新しい ExpressRoute 回線を作成する場合、この回線は次の状態になります。
ServiceProviderProvisioningState : NotProvisioned
CircuitProvisioningState : Enabled
回線は、接続プロバイダーが有効にしている間、次の状態に変化します。
ServiceProviderProvisioningState : Provisioning
CircuitProvisioningState : Enabled
ExpressRoute 回線を使用するには、次の状態になっている必要があります。
ServiceProviderProvisioningState : Provisioned
CircuitProvisioningState : Enabled
回線キーのステータスと状態を定期的に確認する
状態とサービス キーの状態を確認することで、プロバイダーがいつ回線をプロビジョニングしたのかを確認できます。 回線の構成が完了すると、次の例に示すように ServiceProviderProvisioningState が Provisioned と表示されます。
Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"
応答は次の例のようになります。
Name : ExpressRouteARMCircuit
ResourceGroupName : ExpressRouteResourceGroup
Location : westus
Id : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag : W/"################################"
ProvisioningState : Succeeded
Sku : {
"Name": "Standard_MeteredData",
"Tier": "Standard",
"Family": "MeteredData"
}
CircuitProvisioningState : Enabled
ServiceProviderProvisioningState : Provisioned
ServiceProviderNotes :
ServiceProviderProperties : {
"ServiceProviderName": "Equinix",
"PeeringLocation": "Silicon Valley",
"BandwidthInMbps": 200
}
ServiceKey : **************************************
Peerings : []
ルーティング構成を作成する
回線ピアリングの作成と変更の詳しい手順については、「 PowerShell を使用した ExpressRoute 回線のルーティングの作成と変更 」を参照してください。
重要
次の手順は、サービス プロバイダーが提供するレイヤー 2 接続サービスで作成された回線にのみ適用されます。 サービス プロバイダーが提供する管理対象レイヤー 3 サービス (MPLS など、通常は IP VPN) を使用する場合、接続プロバイダーがユーザーに代わってルーティングを構成して管理します。
ExpressRoute 回線への仮想ネットワークのリンク
次に、ExpressRoute 回線に仮想ネットワークをリンクします。 Resource Manager デプロイ モデルを使用するときは、「ExpressRoute 回線への仮想ネットワークのリンク」を参照してください。
ExpressRoute 回線の状態の取得
この情報は、Get-AzExpressRouteCircuit コマンドレットを使用していつでも取得できます。 パラメーターを指定せずに呼び出しを実行すると、すべての回線が一覧表示されます。
Get-AzExpressRouteCircuit
応答は次の例のようになります。
Name : ExpressRouteARMCircuit
ResourceGroupName : ExpressRouteResourceGroup
Location : westus
Id : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag : W/"################################"
ProvisioningState : Succeeded
Sku : {
"Name": "Standard_MeteredData",
"Tier": "Standard",
"Family": "MeteredData"
}
CircuitProvisioningState : Enabled
ServiceProviderProvisioningState : Provisioned
ServiceProviderNotes :
ServiceProviderProperties : {
"ServiceProviderName": "Equinix",
"PeeringLocation": "Silicon Valley",
"BandwidthInMbps": 200
}
ServiceKey : **************************************
Peerings : []
呼び出しに対するパラメーターとしてリソース グループ名と回線名を渡すことで、特定の ExpressRoute 回線に関する情報を取得できます。
Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"
応答は次の例のようになります。
Name : ExpressRouteARMCircuit
ResourceGroupName : ExpressRouteResourceGroup
Location : westus
Id : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag : W/"################################"
ProvisioningState : Succeeded
Sku : {
"Name": "Standard_MeteredData",
"Tier": "Standard",
"Family": "MeteredData"
}
CircuitProvisioningState : Enabled
ServiceProviderProvisioningState : Provisioned
ServiceProviderNotes :
ServiceProviderProperties : {
"ServiceProviderName": "Equinix",
"PeeringLocation": "Silicon Valley",
"BandwidthInMbps": 200
}
ServiceKey : **************************************
Peerings : []
次のコマンドを実行することで、すべてのパラメーターの詳細な説明を取得できます。
get-help Get-AzExpressRouteCircuit -detailed
ExpressRoute 回線の変更
ExpressRoute 回線の特定のプロパティは、接続に影響を与えることなく変更できます。
ダウンタイムなく、次のタスクを実行できます。
- ExpressRoute 回線の ExpressRoute Premium アドオンを有効または無効にします。
- ポートに使用可能な容量があれば、ExpressRoute 回線の帯域幅を増やします。 回線の帯域幅のダウングレードはサポートされていません。
- 課金プランを従量制課金データから無制限データに変更します。 無制限データから従量制課金データへの課金プランの変更はサポートされていません。
- 従来の操作の許可を有効または無効にできます。
制限と制約事項の詳細は、「ExpressRoute の FAQ」を参照してください。
ExpressRoute Premium アドオンを有効にするには
次の PowerShell スニペットを使用し、既存の回線の ExpressRoute Premium アドオンを有効にすることができます。
$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"
$ckt.Sku.Tier = "Premium"
$ckt.sku.Name = "Premium_MeteredData"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
これで、回線の ExpressRoute Premium アドオン機能が有効になりました。 このコマンドが正常に実行された時点から、Premium アドオン機能の課金が開始されます。
ExpressRoute Premium アドオンを無効にするには
重要
標準回線で許可されるリソースより多くのリソースを使用する場合、この操作は失敗することがあります。
次の情報をメモしておきます。
- Premium から Standard にダウングレードする前に、回線にリンクされている仮想ネットワークの数が 10 未満であることを確認する必要があります。 そうでない場合、更新要求が失敗し、Premium 料金で課金されます。
- 他の地理的リージョン内のすべての仮想ネットワークのリンクをまず解除する必要があります。 リンクを解除しないと、更新要求が失敗し、Premium 料金で引き続き課金されます。
- プライベート ピアリングの場合、ルート テーブルのサイズを 4,000 ルート未満にする必要があります。 ルート テーブルのサイズが 4,000 ルートを超えた場合、BGP セッションがドロップします。 公開プレフィックスの数が 4,000 を下回るまで、BGP セッションは再確立されません。
次の PowerShell コマンドレットを使用し、既存の回線の ExpressRoute Premium アドオンを無効にできます。
$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"
$ckt.Sku.Tier = "Standard"
$ckt.sku.Name = "Standard_MeteredData"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
ExpressRoute 回線の帯域幅を更新するには
プロバイダーでサポートされている帯域幅のオプションについては、「 ExpressRoute の FAQ」を確認してください。 既存の回線のサイズを超えるサイズを選択することができます。
重要
既存のポートの容量が不十分な場合、ExpressRoute 回線の再作成が必要になる可能性があります。 その場所に使用可能な追加の容量がない場合、回路をアップグレードすることはできません。
中断せずに ExpressRoute 回線の帯域幅を減らすことはできません。 帯域幅をダウングレードするには、ExpressRoute 回線のプロビジョニングを解除してから、新しい ExpressRoute 回線を再度プロビジョニングする必要があります。
必要なサイズを決定した後、次のコマンドを使用して、回線のサイズを変更できます。
$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"
$ckt.ServiceProviderProperties.BandwidthInMbps = 1000
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
お客様の回線のアップグレードは Microsoft 側で行われます。 次に、接続プロバイダーに連絡し、この変更に合わせて接続プロバイダー側の構成を更新するよう依頼する必要があります。 その通知が完了すると、更新された帯域幅オプションでの課金が開始されます。
SKU を従量制から無制限に変更するには
ExpressRoute 回線の SKU を変更するには、次の PowerShell スニペットを使用します。
$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"
$ckt.Sku.Family = "UnlimitedData"
$ckt.sku.Name = "Premium_UnlimitedData"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
クラシック環境および Resource Manager 環境へのアクセスを制御するには
「クラシック デプロイ モデルから Resource Manager デプロイ モデルへの ExpressRoute 回線の移行」の説明を参照してください。
ExpressRoute 回線のプロビジョニング解除
次の情報をメモしておきます。
- ExpressRoute 回線からすべての仮想ネットワークのリンクを解除する必要があります この操作が失敗した場合は、回線にリンクされている仮想ネットワークがないか確認してください。
- ExpressRoute 回線サービス プロバイダーのプロビジョニング状態がプロビジョニング中またはプロビジョニング済みの場合、サービス プロバイダー側の回線のプロビジョニングを解除するには、サービス プロバイダーに連絡する必要があります。 Microsoft は、サービス プロバイダーが回線のプロビジョニング解除を完了し、通知するまで、リソースの予約と課金を続行します。
- サービス プロバイダーが回線をプロビジョニング解除すると (つまり、サービス プロバイダーのプロビジョニング状態が Not provisioned に設定されると)、回線を削除できます。 回線に対する課金が停止します。
リソースをクリーンアップする
ExpressRoute 回線は、次のコマンドを実行して削除できます。
Remove-AzExpressRouteCircuit -ResourceGroupName "ExpressRouteResourceGroup" -Name "ExpressRouteARMCircuit"
次のステップ
回線を作成し、プロバイダーでプロビジョニングしたら、次の手順に進み、ピアリングを構成します。