Azure Event

Tech Summit 2018: Linuxユーザが扱うAzure Resource Manager Templateの活用方法

Tech Summit 2018: Linuxユーザが扱うAzure Resource Manager Templateの活用方法 2018-11-27Leave a comment
Tech Summit 2018 Report(AD09) The way to use Azure Resource Manager Template for Linux Users

〇はじめに

クラウドソリューションエンジニアの藤井です。

Tech Summit 2018で受講したセッション「Linuxユーザが扱うAzure Resource Manager Templateの活用方法」について、ご紹介します。

セッション内の様々なトピックスから抜粋してご紹介し、Azure Resource Manager Template(以下、ARM Template)を、藤井が過去の案件で利用した時の経験も補足いたします。

〇ARM Templateとは何か

ARM TemplateとはAzure Resource Manager(ARM)モデル(※)として、デプロイされた各リソースの情報を、json形式でテンプレート化したものです。

各リソースの設定だけでなく、リソース同士の依存関係もテンプレートの情報に含まれています。

既存の環境の構成をバックアップできることに加えて、開発用や本番用などとして同じ構成の環境を、繰り返し複製することができます。

※Micorosoft Azureで提供されている各種サービスは、大別して2種類に分かれます。

2010年にAzureのサービスが開始された時から提供されているAzure Service  Manager(ASM)モデルという区分と、2015年から提供が開始されたAzure Resource Manager(ARM)モデルという区分が存在します。

〇セッション内容の紹介

トピックス①パラメータファイルの分割について

ARM Templateでは「本体ファイル」とは別の「パラメータファイル」として、一部の値を記載し「本体ファイル」に読み込ませることができます。

社内共通で必ず設定する値を「本体ファイル」に記載し、利用者ごとに変更するような値を「パラメーター」ファイルに記載することで、各利用者が「本体ファイル」の値を不用意に

変更しないようにすることができます。

トピックス②デプロイは40分でタイムアウトし、ロールバックはされない

構築が一部のリソースのみ成功した場合、成功したリソースはリソースグループに残される。一部が失敗した後に、同じリソースグループへ再実行して全て成功した場合、作成済みのリソースはスキップされ、未作成のリソースのみ追加されます。

トピックス③リソースの依存関係について

複数のリソースを作成する場合に、作成する順番をARM Templateファイル内で”dependson”として制御する必要がある場合があります。何も指定が無い場合、リソースは常に同時に作成されます。例えば、仮想マシンは仮想ネットワークに対して登録されるので、仮想ネットワークが先に作成されるように制御します。

トピックス④ループ処理を利用する

「ループ処理」の機能を利用することで、「Code as a Infrastructure」としてプログラムのように処理を組むこともできます。例えば、クラスター環境で仮想マシンを大量に構築するときに有用です。同じ設定の仮想マシンを「ループ処理」で構築するプログラムを組むことで、作成する仮想マシンの台数を「ループ処理」の実行回数として柔軟に増減させることができます。

トピックス⑤JSONファイルの編集

JSONファイルを直接に編集するのが大変なケースも多いので、linuxユーザーにはなじみのあるYAML形式で作成して、変換する方法方も公開されています。

https://github.com/TeamYARM/YARM-CLI

〇藤井の経験則から補足

トピックス①パラメータファイルの分割について

セッション内で紹介されているケースとは逆に、利用者数が少なかったり、

特定のチームに限定される場合は、「パラメーターファイル」を使用せず、

全て「本体ファイル」で完結させた方が、簡便です。

トピックス②デプロイは40分でタイムアウトし、ロールバックはされない

リソースの種類数が多いときは、種類別に分割してARM Templateを設計することがお勧めです。修正を加えてテストするときに、対象の範囲を絞ることができます。

トピックス③リソースの依存関係について

設計時の肝要になるポイントです。

作成されるリソースの順序関係を指定した場合、前の順番のリソースの作成が完了してから、次のリソースの作成が開始されるため、全体の完了時間を左右します。

不要な設定をすると、完了に時間がかかります。

トピックス④ループ処理を利用する

ARM Templateの利用するメリットが最も発揮される機能です。藤井が対応したケースでは、100台以上のサーバーを同一のマスターイメージから大量に作成し、コンピューター名やIPアドレスなどを連番で割り振るように実装しました。ループ処理の回数などの実行条件を、利用することで、仮想マシンのリソース名を「1号機、2号機・・・」と連番で割り振るといったこともできます。

トピックス⑤JSONファイルの編集

セッションで紹介のあった方法以外に、エディターから直に編集するときは、Visual Studio Codeを利用すると、インテリセンスによる入力が利用できとても便利です。

〇その他

セッション内で説明のあったトピックス以外に捕捉すると、SSH接続にパスワードを使うパターンだけでなく、認証鍵を使うパターンでも同様に構築ができた実績があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

%d人のブロガーが「いいね」をつけました。