お疲れ様です。
自分の好きなアーティストに会えると知って今からわくわくしている宮﨑です。
今回はARMテンプレートで仮想マシンをデプロイしてみます。
ARM(Azure Resource Manager)テンプレートとは
クラウドに移行するとき、多くのチームでアジャイル開発方法が採用されてきました。 このようなチームでは反復が迅速に行われます。 ソリューションをクラウドに繰り返しデプロイし、インフラストラクチャが信頼できる状態であることを把握する必要があります。 インフラストラクチャが反復的なプロセスの一部になると、運用と開発の間の区切りはなくなります。 チームは、統合されたプロセスを通してインフラストラクチャとアプリケーション コードを管理する必要があります。
これらの課題に対応するには、デプロイを自動化し、インフラストラクチャの手法をコードとして使用することができます。 コードでは、デプロイする必要があるインフラストラクチャを定義します。 インフラストラクチャのコードは、プロジェクトの一部になります。 アプリケーションのコードと同様に、インフラストラクチャのコードをソース リポジトリに格納し、そのバージョンを管理します。 チーム内の誰でもコードを実行して、同様の環境をデプロイできます。
Azure ソリューション用にインフラストラクチャをコードとして実装するには、Azure Resource Manager テンプレート (ARM テンプレート) を使用します。 テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、デプロイしようとしているものを、それを作成する一連のプログラミング コマンドを記述しなくても記述できる、宣言型の構文を使用しています。 このテンプレートでは、デプロイするリソースとそれらのリソースのプロパティを指定します。
ARM テンプレートとは
全く同じ環境を作成することが出来るのでインフラ作成時のミスの危険性を減らし、また1度作成した環境をすぐにデプロイ出来るので、効率化も図れます。
ARMテンプレートで仮想マシンをデプロイする
仮想マシンを作成し、リソースグループのデプロイメニューに移動します。
テンプレートとパラメータを確認するとJSONで構成されていることがわかります。
ARMテンプレートファイルはAzureリソースの定義や依存関係、展開手順などを記述するJSON形式のファイルになります。
デプロイするAzureリソースの詳細が含まれており、リソースの構成や属性、リソース間の関係など、リソースのトポロジーを表現し、Azure上に展開されるリソースの構造を定義します。
パラメータファイルはARMテンプレートに渡される値や設定を定義するためのファイルです。
JSON形式で書かれ、ARMテンプレートが必要とするパラメータの値を指定します。これにより、同じARMテンプレートを使用して異なる環境や設定に対してデプロイする際に、パラメータの値を変更することができます。たとえば、リソースの名前、リソースのサイズ、接続文字列などを指定します。
ARMテンプレートファイルはデプロイするリソースの構造を定義し、パラメータファイルはそのARMテンプレートに渡される具体的な値を指定するものと思ってください。
ファイルをダウンロードしました。こちらのパラメーターファイルをテンプレートとして使用し新しい仮想マシンをデプロイします。
今回は同じセキュリティグループ、仮想ネットワークで起動してみます。変更するのは仮想マシン名、ネットワークインターフェース名、パブリックIPアドレス名です。
またセキュリティ上の理由からパスワードのような機密情報はテンプレートやパラメーターファイルに直接記述しないほうが良いので削除します。
仮想マシン名の変更
ネットワークインターフェース名の変更
パブリックIPアドレス名の変更
パスワードの削除
これで完了です。ARMテンプレートファイルのほうですが、今回は何も変更する必要がありません。というのも、Azureはすでに指定したリソースが存在する場合(仮想ネットワークなど)は再デプロイ時に検証を行い、プロパティが一致した場合は何もせずに処理が終了するためです。
作成したファイルをデプロイするためにPowerShellを使用します。
New-AzResourceGroupDeployment -ResourceGroupName リソースグループ名 -TemplateFile "テンプレートファイルの場所" -TemplateParameterFile "パラメータファイルの場所"
パスワードを入力ししばらく待つと作成された通知がきます。Azureポータルで確認すると作成されていることがわかります。これで完了です。
まとめ
もとのテンプレートの値を変更するだけでよいので、何度も作業を繰り返す際のミスを最小限に抑えられるのは大きいと感じました。WindowsからLinuxへの変更も簡単みたいなので自己学習の中で試してみます。最後まで読んでいただきありがとうございました。