AzureではIaaSの管理を簡単にできますか?
2018.05.28
Q:AzureではIaaSの管理を簡単にできますか?
A:AzureではIaaSを柔軟な管理を可能にするための様々なツールが用意されています。
【解説】
IaaSに求められる効率的な管理
IaaSでは、ハードウェアやネットワークの物理的な障害などはクラウド事業者に任せられるようになり、利用者は、システムの負荷やサーバーの処理性能が必要な要件に見合っているか、といった運用にフォーカスを変えられます。
一方、IaaSは、仮想マシンや仮想ネットワークなどのインフラだけではなく、その上で稼働するストレージ・Webアプリ・データベースなどソフトウェアやデータなど多岐にわたるリソースが管理対象となるので、効率的な管理が求められます。
そこでIaaSを効率よく管理するためのツールとして、Azureでは「Azure Resource Manager(ARM)」が用意されています。
ARMのページ
ARMでできること
旧来のクラウドでは、それぞれのリソースを個別に管理していました。しかし「IaaSを導入するのであれば、作業環境・運用環境を同じ構成で複製したり、一気通貫で監視したりしたい」というニーズを受け、提供を開始したのが「ARM」です。
ARMを使用することにより、以下のような管理ができるようになります。
・リソースのグループごとの管理
1社でWebサービスA、Bと2 つのサービスを提供している場合、サービスAのグループ、サービスBのグループを設置すれば、リソース・課金の管理をサービスごとに分けられます。タグを活用して柔軟に確認することもできます。
・テンプレートを活用したリソース管理
インフラの手動作成は、作業ミスのリスクがあります。もし定義ファイルを活用できるのであれば、ミスをなくし、効率よくデプロイできるでしょう。ARMではJSONによるテンプレートを作成することで必要なリソースをまとめてデプロイできます。
・リソース間の依存性を定義してデプロイが可能
デプロイする際にリソース間の依存が問題になることがあります。データベースをデプロイするにはデータベースサーバーがすでに存在していなければならない、などのケースです。ARMではリソース間の依存性を定義できるので、順番が必要なものはその順序でデプロイされ、依存していないリソースは並行してデプロイされます。
・ロールベースアクセス制御(RBAC)の簡単な適用
情報システムでは職務権限に基づくアクセス制御が求められますが、ARMでは管理するすべてのサービスに対してアクセス制御が可能です。権限のないスタッフによる設定変更やデータの閲覧を防げます。
ARMをCLI・APIで利用する
ARMはコマンドラインからも管理できます。テンプレートからデプロイする際にはコマンドラインを使用することになりますが、AzureではPowerShellやAzure Portalに加え、Azure CLIというコマンドライン・インターフェースを活用して操作できます。
コマンドラインの利点は処理を自動化しやすいこと、前の操作の戻り値を活用した指示を行えること、スケジューリングしたスクリプトに組み込みやすいことなどがあげられるでしょう。
Azure CLIをインストールすれば、「azure account set」「azure group create」といったコマンドを活用してアカウントの設定やグループの作成が行えます。繰り返し行う作業であればスクリプトを保存して効率化できます。
また、ARMでは、Azure Resource Manager APIを使って以下のような操作を自動化できます。これにより、外部からのAzureの管理が柔軟になります。
・スケールアップ・ダウン
・リソースの作成・削除・開始・停止
・容量の監視・更新、リソースグループやサブスクリプションの容量一覧取得
これらのAPIはAzure PowerShellで利用できます。
ARMテンプレートを利用してDockerを管理する
Azure VM 拡張機能の使用については「Windows 用の仮想マシン拡張機能とその機能」 をご参照ください。
ARMテンプレートを使ったDockerの構築は、Azureのマーケットプレースから「テンプレートのデプロイ」を選択して作成することで簡単に行えます。
photo:Thinkstock / Getty Images