リソース グループの原則
新しい職場での最初の週、あなたは会社の Azure サブスクリプションの既存リソースに目を通しました。 さまざまなリソースが含まれたリソース グループがたくさんありますが、一貫性のある構造で整理されていません。 あなたは以前 Azure を使用した経験がありますが、リソース グループのしくみとその役割についてはまったくわかりません。 リソースを整理する上でそれが役に立つものであるとあなたは推測しました (その推測は当たっています)。 これらの正体とどのように使用できるかを見ていきましょう。
Note
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
リソース グループとは何か。
リソース グループは Azure プラットフォームの基礎要素です。 リソース グループは、Azure でデプロイされているリソース用の論理コンテナーです。 これらのリソースには、仮想マシン、Application Gateway、Cosmos DB インスタンスなど、Azure サブスクリプション内で作成するあらゆるものが該当します。 リソースはすべてリソース グループに属する必要があります。1 つのリソースは、1 つのリソース グループにのみ属することができます。 移動のための特定の制限または要件があるサービスが含まれるリソースの多くを、リソース グループ間で移動することができます。 リソース グループを入れ子にすることはできません。 リソースをプロビジョニングするには、その配置先となるリソース グループが必要です。
論理的なグループ化
リソース グループは、Azure リソースの管理と整理に役立てるために存在しています。 用途、種類、場所が類似するリソースをリソース グループに配置することにより、Azure で作成するリソースを順序付けし、整理することができます。 会社のリソースが正しく整理されていないため、論理的なグループ化がここで最も関心のある側面となります。
ライフサイクル
リソース グループを削除すると、そのグループに含まれているリソースもすべて削除されます。 リソースをライフサイクルによって整理することは、実験を試み、完了後には破棄する非運用環境で役立ちます。 リソース グループを利用することで、リソースの集まりを一度に削除できます。
承認
リソース グループは、ロールベースのアクセス制御 (RBAC) のアクセス許可を適用するための範囲でもあります。 RBAC アクセス許可をリソース グループに適用することで、管理作業を減らし、必要なものだけを許可するようにアクセスを制限できます。
リソース グループを作成する
次の方法を使用して、リソース グループを作成することができます。
- Azure portal
- Azure PowerShell
- Azure CLI
- テンプレート
- Azure SDK (.NET、Java など)
Azure portal でリソース グループを作成する手順を進めましょう。 自身のサブスクリプション内で進めることもできます。
Web ブラウザーを開き、Azure portal にサインインします。
重要
必ずご自分のサブスクリプションを使用してください。 無料のサンドボックス環境では、リソース グループを作成できません。 画面の左上のプロフィール画像の下のテナント名を見ることで、自分が使用しているサブスクリプションを確認できます。 テナントを切り替えるには、プロファイル画像を選択して、オプション メニューから [ディレクトリの切り替え] を選択します。
Azure portal またはホーム ページで、[リソースの作成] を選択します。 [リソースの作成] ウィンドウが表示されます。
[Search services and marketplace](サービスとマーケットプレースの検索) 検索ボックスで [リソース グループ] を検索して選択します。 [リソース グループ] ペインが表示されます。
[作成] を選択します。 [リソース グループを作成します] ウィンドウが表示されます。
[基本] タブで、各設定に対して次の値を入力します。
設定 値 プロジェクトの詳細 サブスクリプション ドロップダウン リストから、この演習で使用する Azure サブスクリプションを選択します。 リソース グループ 「msftlearn-core-infrastructure-rg」を入力します。 リソースの詳細 リージョン ドロップダウン リストから、最も近い場所を選択します [確認および作成] を選択し、検証に成功したら [作成] を選択してリソース グループを作成します。
これで完了です。リソース グループが作成されたので、Azure リソースのデプロイ時に使用できるようになりました。 このリソース グループと、いくつかの重要な事項について詳しく見ていきましょう。
リソース グループを調べ、リソースを追加する
Azure portal のメニューまたは [ホーム] ページで、[Azure サービス] の下の [リソース グループ] を選択します。
一覧から、新しく作成したリソース グループを選択します。 [リソース グループ] ペインが表示されます。
Note
NetworkWatcherRG というリソース グループも表示されている場合があります。 このリソース グループは無視できます。これは、Azure 仮想ネットワークで Network Watcher を有効にするために自動作成されているからです。
リソース グループが属するサブスクリプション、サブスクリプション ID、適用されたタグ、このリソース グループに対する過去のデプロイなど、リソース グループに関する基本情報が [概要] ページに表示されます。 タグについては次のユニットで取り上げます。 ページの上部にある [要点] を展開すると、[デプロイ] リンクが表示され、このリソース グループへのすべてのデプロイの履歴が表示されている新しいパネルに移動できます。 リソースを作成するたびに、それはデプロイとなり、ここで各リソース グループの履歴を確認できます。
リソース グループ ページの上段にあるツールバーを使用して、さらにリソースを追加したり、一覧の列を変更したり、リソース グループを別のサブスクリプションに移動したり、完全に削除したりすることができます。
左側のメニューにはさまざまなオプションがあります。
このリソース グループにはまだリソースがありません。そのため、下部の一覧は空になっています。 リソース グループにリソースをいくつか作成してみましょう。
上部のメニュー バーで、[作成] を選択するか、ペインの下部にある [リソースの作成] ボタンを選択します。いずれの方法でも機能します。 [リソースの作成] ウィンドウが表示されます。
[Search services and marketplace](サービスとマーケットプレースの検索) 検索ボックスで [仮想ネットワーク] を検索して選択します。 [仮想ネットワーク] ペインが表示されます。
作成 を選択します。 [仮想ネットワークの作成] ペインが表示されます。
[基本] タブで、各設定に対して次の値を入力します。
設定 値 プロジェクトの詳細 サブスクリプション ドロップダウン リストから、この演習で使用する Azure サブスクリプションを選択します。 リソース グループ msftlearn-core-infrastructure-rg が確実に表示されるようにします。 インスタンスの詳細 名前 「msftlearn-vnet1」と入力します。 リージョン ドロップダウン リストから、最も近い場所を選択します [確認と作成] を選択し、検証に合格したら、[作成] を選択して、仮想ネットワークをリソース グループに追加します。
もう一度仮想ネットワークの作成手順を繰り返して、もう 1 つ仮想ネットワークを作成します。 前に作成したリソース グループに仮想ネットワークを配置し、仮想ネットワークに msftlearn-vnet2 という名前を付けます。
ご利用のリソース グループに戻ります。 作成した 2 つの仮想ネットワークが [概要] ペインに表示されます。
リソース グループには 2 つの仮想ネットワーク リソースが含まれます。それらのリソースの作成時にリソース グループを指定したためです。 このリソース グループ内に新しくリソースを作成するか、またはサブスクリプションに新しくリソース グループを作成して、そこにリソースをデプロイすることもできます。
リソースの作成時、通常、既存のリソース グループを使用する代わりに新しいリソース グループを作成する選択肢が表示されます。 これによりプロセスは簡素化されるかも知れませんが、新しい組織の中を見て分かるように、リソースの整理方法についてあまり考慮せずにこれを行うことで、リソースが複数のリソース グループに散らばってしまう可能性があります。
リソース グループを利用して整理する
それでは、どのようにすればリソース グループを新しい組織の中で上手く利用できるでしょうか? 整理に役立つガイドラインとベスト プラクティスがいくつかあります。
一貫した命名規則
まず、理にかなった命名規則を使用します。 今回、リソース グループに msftlearn-core-infrastructure-rg という名前を付けました。 その用途 (msftlearn)、その中に含まれるリソースの種類 (core-infrastructure)、そのリソースの種類 (rg) を伝えるものを含めました。 このわかりやすい名前によって、その内容をより良く理解できます。 my-resource-group や rg1 のように名前を付けてしまうと、一見しただけではその用途が分かりません。 この場合は、インフラストラクチャのコア部分が中に含まれているのであろうと推測できます。 仮想ネットワークやストレージ アカウント、あるいは会社が "コア インフラストラクチャ" であると考えるその他のリソースを新たに作成した場合、それらのリソースもここに配置すれば、会社のリソースをより適切に整理することができます。 命名規則は会社によって大幅に異なり、社内でさえも異なる場合がありますが、いくらか計画することが役立ちます。
整理の原則
リソース グループはさまざまな方法で整理できます。いくつかの例を見てみましょう。 "コア インフラストラクチャ" であるすべてのリソースをこのリソース グループに配置することもできますが、リソースの種類ごとに厳密にリソースを整理することもできます。 たとえば、あるリソース グループにはすべての仮想ネットワークを、別のリソース グループにはすべての仮想マシンを、そしてさらに別のリソース グループにはすべての Azure Cosmos DB インスタンスを入れるといったことが可能です。
これらは、本番、QA、開発の環境 (prod、qa、dev) 別に整理することもできます。 その場合は、すべての本番リソースを 1 つのリソース グループに入れ、すべてのテスト リソースを別のリソース グループに入れます。
マーケティング、財務、人事の部署 (marketing、finance、hr) 別に整理することもできます。 たとえば、マーケティング リソースをマーケティング リソースのリソース グループに、財務リソースを財務リソースのリソース グループに、人事リソースを人事リソースのリソース グループに入れます。
これらの方針の組み合わせを使用し、たとえば、環境と部署で整理することもできます。 運用/財務リソースの組み合わせを 1 つのリソース グループに、開発/財務リソースの組み合わせを別のリソース グループに入れます。マーケティング リソースについても同様です。
リソース整理に使用する戦略に関係する要素には、認可、リソースのライフサイクル、課金などがあります。
承認を対象とする整理
リソース グループは RBAC のスコープであるため、"誰が" それを管理する必要があるかによってリソースを整理できます。 データベース管理チームがすべての Azure SQL Database インスタンスの管理を担当している場合、それらを同じリソース グループに入れると、管理が簡素化されます。 リソース グループ内のデータベースを管理できるよう、このチームにリソース グループ レベルで適切なアクセス許可を付与できます。 同様に、データベース管理チームが意図せずに自分たちの担当の範囲外のリソースを変更してしまうことがないように、仮想ネットワークに関するリソース グループへのデータベース管理チームのアクセスを拒否することができます。
ライフサイクルを対象とする整理
リソース グループは、それに属するリソースのライフサイクルとして機能することを前に説明しました。 リソース グループを削除すると、そこに含まれるリソースもすべて削除されます。 この機能は、非運用環境など、リソースを破棄する場合が多い領域で特に便利です。 最後の数か月だけ存続することがわかっているプロジェクトに 10 台のサーバーをデプロイする場合は、すべて 1 つのリソース グループ内に入れることをお勧めします。 1 つのリソース グループの方が、10 個以上のリソース グループよりも簡単にクリーンアップできるためです。
課金を対象とする整理
最後に、同じリソース グループにリソースを置くことは、請求報告で使用する目的でリソースをグループ化する 1 つの方法です。 Azure 環境でコストがどのように分配されているのかを知りたければ、リソース グループ別にリソースをグループ化し、データを絞り込み、並べ替えることでコストの割り当てをより良く理解できます。
まとめ
まとめると、リソースはリソース グループでかなり自由に整理できます。 そのことを念頭に置き、Azure 環境でリソース グループを使用するとき、一貫性のある手法を採用してください。