📄

Cloud Shellのストレージを東日本リージョンにする

2024/06/16に公開

はじめに

Azure Cloud Shellはデフォルトで作成すると、日本のリージョンでは作られません。
これではポリシーなどで国内リージョンに制限されている場合などは困ります。
そのため、データ保存用のストレージを日本にする方法を記事にしました。

概要

  • ストレージは日本国内に指定できますが、処理用のインスタンスは日本以外のリージョンで実行されます。
  • 既に他のリージョンにストレージをマウントしていた場合、ユーザー設定のリセットで指定し直すことができます。

参考

https://zenn.dev/tomot/articles/ccc166805e50b2

https://learn.microsoft.com/ja-jp/azure/cloud-shell/get-started/new-storage

新規作成

まずは右上のCloud Shellのアイコンをクリックします。

作業の開始で ストレージアカウントをマウントする を選択し、サブスクリプションを選択します。

新規で作成する場合は ストレージアカウントの作成を希望する を選択します。

各種リソースは東日本リージョンで作成します。

設定に問題が無ければデプロイします。

実行リージョンを確認

ストレージ作成リージョンは東日本を選択しましたが、Cloud Shellが動いているインスタンスはどこのリージョンかを確認します。

以下のコマンドで、IPを確認します。

curl http://ifconfig.me/

得られたIPから住所を検索します。以下のサイトを使いました。

https://rakko.tools/tools/11/

ストレージは東日本を指定しましたが、インスタンスはシンガポールで実行しているようです。

マウント済みの状態から変更

既に作成済みの状態から変更したい場合、[設定]-[ユーザー設定のリセット]で一度リセットします。


再度、Cloud Shellを起動すると指定することができます。

既存のストレージアカウントをマウントする際は、既存のストレージアカウントの選択 から指定します。

ストレージアカウントの選択で対象を指定します。
※画像では先ほど作ったものを指定しています。

リソースを作成するARMテンプレート

必要なリソースはダイアログから自動作成されますが、作っておきダイアログで指定することもできます。
必要な最低限のリソースを作るARMテンプレートは以下になります。ポリシーに合うように必要に応じてより細かく設定してください。

リソースグループ
{
  "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "rgName": {
      "type": "string"
    },
    "rgLocation": {
      "type": "string",
      "defaultValue": "[deployment().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/resourceGroups",
      "apiVersion": "2022-09-01",
      "name": "[parameters('rgName')]",
      "location": "[parameters('rgLocation')]",
      "properties": {}
    }
  ]
}
ストレージアカウント&ファイル共有
{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "storageAccounts_name": {
            "type": "String"
        },
        "location": {
          "type": "string",
          "defaultValue": "[resourceGroup().location]",
          "metadata": {
            "description": "Location for all resources."
          }
        }
    },
    "resources": [
        {
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2023-04-01",
            "name": "[parameters('storageAccounts_name')]",
            "location": "[parameters('location')]",
            "sku": {
                "name": "Standard_LRS",
                "tier": "Standard"
            },
            "kind": "StorageV2",
            "properties": {
                "minimumTlsVersion": "TLS1_2",
                "encryption": {
                    "services": {
                        "file": {
                            "keyType": "Account",
                            "enabled": true
                        }
                    }
                }
            }
        },
        {
            "type": "Microsoft.Storage/storageAccounts/fileServices",
            "apiVersion": "2023-04-01",
            "name": "[concat(parameters('storageAccounts_name'), '/default')]",
            "dependsOn": [
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
            ],
            "sku": {
                "name": "Standard_LRS",
                "tier": "Standard"
            },
            "properties": {
                "shareDeleteRetentionPolicy": {
                    "enabled": true,
                    "days": 7
                }
            }
        },
        {
            "type": "Microsoft.Storage/storageAccounts/fileServices/shares",
            "apiVersion": "2023-04-01",
            "name": "[concat(parameters('storageAccounts_name'), '/default/shares')]",
            "dependsOn": [
                "[resourceId('Microsoft.Storage/storageAccounts/fileServices', parameters('storageAccounts_name'), 'default')]",
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
            ]
        }
    ]
}

AzureポータルからARMテンプレートでデプロイする方法は、以前の記事を参考にしてください。

https://zenn.dev/arbr/articles/79808d0f137768

おわりに

今回はAzure Cloud Shellの保存ストレージのリージョンを指定・変更する方法を記事にしました。
ストレージはリージョンを指定できますが、インスタンスのリージョンは現在は日本では使えないので、国内リージョンのみ可などのポリシーがあるところでは使いづらいかもしれません。
この記事がどなたかのお役に立てれば幸いです。

Discussion