0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure Pipelines で VMSS agents も便利だよ、という話

Posted at

VMSS agents (Azure virtual machine scale set agents) を使うことで Microsoft-hosted agents では難しい Private Link や NSG の制限などから解放することが可能です。 Self-hosted agents でも同じようなことは可能なのですが、 VMSS agents のほうがコストが抑えられたり、 Agent のメンテナンスから解放されるようになるといったメリットがあります。
この記事では VMSS agents の作り方と、実際に実行してみた結果どうなるか、という部分を記載しています。

ざっくり三つの種類のエージェント比較

現在のエージェントの種類はざっくり分けて三つの種類のエージェントがあり、ざっくり表分けするとこんな感じです。

種類 様々な状況に対応 価格の安さ 運用の楽さ 手軽さ
Microsoft-hosted agents
Self-hosted agents
VMSS agents

VMSS agents の作成

公式ドキュメントの手順通り進めていけば特に問題なく作成できるかと思います。 VMSS を検討する例なども載っているので、ぜひ見てほしいです。

Azure 仮想マシン スケール セット エージェント - Azure Pipelines | Microsoft Docs

途中 DevOps 側の操作で Agent pool を追加するときは "Number of agents to keep on standby" を 0 に設定することで、 Pipelines を動かしてないときに全ての仮想マシンを停止させることが可能です。

Image from Gyazo

Pipeline の実行

実際にテンプレートで作られる YAML を使って pool だけ変更したものを動かしてみます。

trigger:
- main

pool: vmss-linux

steps:
- script: echo Hello, world!
  displayName: 'Run a one-line script'

- script: |
    echo Add other tasks to build, test, and deploy your project.
    echo See https://aka.ms/yaml
  displayName: 'Run a multi-line script'

Image from Gyazo

Pipeline の実行画面から正常に実行されることを確認しました。
ただ初回実行時は仮想マシンの起動に失敗したので、一度キューをキャンセルしてから実行することで正常に実行されました。

また、 Project Settings > Agent pools メニューの Diagnostics タブから起動に失敗したなどの情報が得ることが可能です。
今回は "Delay in minutes before deleting excess idle agents" の設定を 10 にしていたので、 Pipeline を実行して 1 つ仮想マシンが立ち上がり、 10 分後に仮想マシンが 0 個になっていることも確認できます。

Image from Gyazo

Image from Gyazo

Azure で VMSS の状態を確認すると、同じ状態になっていることも確認できます。

Image from Gyazo

Image from Gyazo

その他

仮想マシンの起動時間

仮想マシンが 0 の状態から Pipeline を実行して、仮想マシンが立ち上がるまでの時間を Job の Wait time で確認したところ、今回の UbuntuLTS イメージでは 16 秒でした。

Image from Gyazo

ビルド用に用意された便利な Microsoft-hosted agents のイメージファイルを使いたい

VMSS に Microsoft-hosted agents のイメージファイルを直接使用することは出来ませんが、公式ドキュメントに書いてある通りイメージファイルを作成するためのスクリプトはオープンソースなので、 VMSS で Microsoft-hosted agent と似たような仮想マシンを使いたい場合は参考にしてカスタムイメージを作る必要があります。

Azure 仮想マシン スケール セット エージェント - Azure Pipelines | Microsoft Docs

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?