一応メモ書きで。先月末Azureのデフォルトoutboundが廃止になるということでちょっとした騒ぎになりました。
日本のサポートチームからもアナウンスが出ています。
今日のイベントでも少し触れたのですが、Azure Pipelines(もちろんGitHub Actions)のselfhost agentをAzureのVM単位で動かしている場合、ばっちり影響受けます。多くの人はselfhost agentをVM単位で稼働させていると思います。
こんな感じ。これが2025/10/1より作られたVM(現時点)ではこうなります。ちなみにWindows Updateもできなくなります。Ubuntuのapt updateはAzure内にミラーがあるようですが、多分private経由ではない気がします(調べていない)。
(訂正)
2025/10/1以降も既存のVMはSNATでアクセスできるそうですが、VMごとに変わるのでわかりづらいですね。
Public IPを割り当てない場合、デフォルトのoutboundがなくなるので、Azure DevOpsにつながらなくなります。Public IPはStandard SKUで500円くらいでしょうか?ただ、VMが1台ならともかく、複数台になると高くなるし、そもそもInternet facingをなくしたいのでPublic IPを割り当てていなかったのに割り当てるとなると本末転倒です。それにそのためのセキュリティ強化も必要になります。
Public IPでもIPv6なら無料のはずなので、outboundはIPv6を使うというのも手ですが、やめた方がいいでしょうね。代替手段としてはどちらかになります。
NAT Gatewayを使う。VM一台だけとするなら高い(5000円/月くらい)のですが、Azure Automationと組み合わせてビルドするときだけデプロイするのは…めんどうでしょうね。outbound Load Balancerのほうが少し安いですが、NAT Gatewayのほうが構成が柔軟なので、選ばないほうがいいでしょうね。
本筋はこちらでVMSSを作って運用です。私も原則これ。
エージェントの更新、キューと並列契約数に従って、増減しますし、使わないときは0にもできます。そのかわりエージェント1にするまでに多少時間がかかりますが(Ubuntuで1分くらい?Windowsで2-3分くらい)、お得です。設定した時間で0になります。
…大小じゃないですが、VMのイメージを作るのが大変です。一応Microsoftが公式イメージを用意してくれているので、これを使ってビルドすればいいです。Ubuntuで3-4時間、Windowsで7-8時間くらいかかりますが。私は不要なものを消したものを作っています。
後2年までとそんなに時間がないので、GitHub Actionsの人もAzure Pipelinesの人もAzureで動かしている場合は移行しましょう。