※当サイトの記事には、広告・プロモーションが含まれます。

VS Code(Visual Studio Code)の拡張機能「Azure Tools」を利用してAzureと連携するのが良いのか

gigazine.net

Mozilla Foundationは長らくバージョン管理システムとしてMercurialを使用していましたが、2023年11月にMercurialからGitに移行することを発表しました。これに伴い、Firefoxの正規ホームもMozilla.orgサーバーのMercurialからGitHubに移行したとのこと。

Mozillaが開発するウェブブラウザ「Firefox」の公式GitHubリポジトリが登場 - GIGAZINE

⇧ 時代の流れですかね...

Azure Virtual Machines for Visual Studio Code (Preview)でローカル環境からAzureの仮想マシンを操作できるらしいが...

何やら、

github.com

Azure Virtual Machines extension for Visual Studio Code

Create and manage Azure Virtual Machines directly from VS Code.

https://github.com/microsoft/vscode-azurevirtualmachines

⇧ ローカル環境の「VS CodeVisual Studio Code)」からAzure環境にログインして、「Azure Virtual Machine」に対して操作ができるらしい。

ただし、「SSH接続」できるのは、「Linux」環境の「仮想マシン」の「Azure リソース」に限られるようだ。

Remote into Azure VM via SSH

https://github.com/microsoft/vscode-azurevirtualmachines

NOTE: This command is only available for Linux virtual machines.

https://github.com/microsoft/vscode-azurevirtualmachines

⇧「SSH接続」には別途「拡張機能」が必要になるようだ。

更には、「Azure Bastion」などを踏み台サーバーとして経由しての、所謂、多段SSH接続をする必要がある場合は、別途「拡張機能」が必要となるようだ。

code.visualstudio.com

⇧「VS Code」の「拡張機能」で「SSH Tunnel」する分には、「CLI」をインストールする必要はないようだ。

「Common questions」にある質問で、

Accessing the VS Code Server involves a few components:

  • The VS Code Server: Backend server that makes VS Code remote experiences possible.
  • Remote - Tunnels extension: Extension that facilitates the connection to the remote machine, where you have an instance of the server running.

https://code.visualstudio.com/docs/remote/tunnels

⇧ 各々の「拡張機能」の違いの説明が分かり辛いが...

整理すると、

  1. Remote Tunnels
  2. VS Code Server
  3. Remote Development
    1. Remote Development extension pack
      1. Remote - SSH
      2. Dev Containers
      3. WSL
      4. Remote - Tunnels

の3つの項目の関係性についての質問なのだとは思うのだが、「1. Remote Tunnels」と「3.1.4. Remote - Tunnels」は同じものを指しているのだと思われる。

 

とりあえず、「Azure」環境にログインする際の要件とかが無いのかが気になるのだが... 

一応、「VS CodeVisual Studio Code)」の「拡張機能」として存在するようだ。

⇧「VS CodeVisual Studio Code)」の「拡張機能」での名前が「Azure Virtual Machines」となっていて、「GitHub」で公開されている名前と異なるという...

No 文脈 名前
1 GitHubのREADME.md Azure Virtual Machines for Visual Studio Code (Preview)
2 VS CodeVisual Studio Code)の拡張機能 Azure Virtual Machines

このあたり、初見だと混乱しそうね...

何と言うか、「VS CodeVisual Studio Code)」上の「拡張機能」で表示される名前が「Azure Virtual Machines」というのが良くない気がするんだが...

混乱を招くのは、

⇧「VS CodeVisual Studio Code)」上で「Azure Virtual Machines」以外も表示されているところですかね...

機能的には、

Features

  • View, create, delete, start, and stop Azure Virtual Machines
  • Add SSH key to existing Azure Virtual Machines

https://github.com/microsoft/vscode-azurevirtualmachines

⇧ 上記の説明を見た感じでは「Azure Virtual Machines」のみを対象としているようにしか思えないんだが...

悲報...

github.com

⇧ どうやら、拡張機能「Azure Virtual Machines」の機能ではSSH接続が行えないバグがあり、解決されていないようだ...

と言うのも、2025年5月16日(金)時点では、issueの状態が「Open」であり「Close」されていないので、バグが残ったままのようだ...

つまり、SSH接続の部分については、拡張機能「Remote SSH」で実現するしか無さそうである...

VS CodeVisual Studio Code)の拡張機能「Azure Tools」を利用してAzureと連携するのが良いのか

ネットの情報を漁っていたところ、

marketplace.visualstudio.com

⇧ ある程度の「Azure リソース」に対する操作が可能な「拡張機能」をまとめた「Azure Tools」というものが見つかった。

利用者の評価が微妙ですが...

他にも様々な「Azure」向けの「拡張機能」が公開されている模様。

marketplace.visualstudio.com

 

とりあえず、

YAGNI (You aren't gonna need it) とは、エクストリーム・プログラミング(XP)から生まれた原則であり、「プログラマは、それが実際に必要となるまで機能を追加しない方が良い」というものである。直訳すると「あなたはそれを必要でなくなるだろう」、意訳すると「そんなの必要ないって」などという意味で、他の表現として"You aren't going to need it" (YAGTNI) や"You ain't gonna need it"というものもある。

YAGNI - Wikipedia

XPの共同創設者であるロン・ジェフリーズ英語版は、「それが実際に必要になったときに実装するべきあって、必要になると予見したときに実装するべきでない」と述べているジョン・D・カーマックは、「将来の要件やアプリケーションを考慮して設計することが、トータルでプラスになることはほとんどないことを、経験の浅い開発者が理解するのは難しい」と書いている。

YAGNI - Wikipedia

YAGNIは、XPのプラクティスである"do the simplest thing that could possibly work"(DTSTTCPW、うまくいく方法のうち最もシンプルなものでやれ)の背後にある原則である。

YAGNI - Wikipedia

⇧「YAGIN(You Aren't Gonna Need It)」の思想を尊重するならば、「Azure Tools」ではなく、個別に「拡張機能」を追加していく感じになるってことですかね?

まぁ、結局、必要な「拡張機能」が分からなくて、無駄なものがインストールされるあるあるになりそうではあるが...

ちなみに、

stysk.com

⇧ 上記サイト様によりますと、「VS CodeVisual Studio Code)」の「拡張機能」で利用しているものを共有できそうではある。

どちらにしろ、チームで統一したいとなった場合は、誰かが正しい「拡張機能」をインストールできている必要があるのだが...

Azure Virtual network gatwaysでVPN(Virtual Private Network)を構築すべきか

昨今、「ゼロトラスト(ZT:Zero Trust)」が普及しているとかいないとかではあるのだが、「Azure Tools」自体が「ゼロトラスト(ZT:Zero Trust)」に対応しているとは思えないので、「Visual Studio Code」の「拡張機能」の、

  1. Azure Tools
  2. Remote Development extension pack
    1. Remote - SSH
    2. Dev Containers
    3. WSL
    4. Remote - Tunnels

のみで「SSH接続」するのが「セキュリティ」的に問題あるのかどうかが判断できない...

一応、

learn.microsoft.com

https://learn.microsoft.com/ja-jp/azure/vpn-gateway/create-routebased-vpn-gateway-cli

⇧ 上図のような感じで、

  1. Azure 仮想ネットワーク(Azure VNet:Azure Virtual Network)
  2. オンプレミス環境

との間に「VPN(Virtual Private Network)」を構築できるようだ。

構築できる「VPN(Virtual Private Network)」の方式については、

learn.microsoft.com

⇧ 上記によると、5つのタイプがあるようだ。

  1. サイト間 VPN
  2. ポイント対サイト VPN
  3. VNet 間接続 (IPsec/IKE VPN トンネル)
  4. サイト間と ExpressRoute の共存接続
  5. 高可用性接続

「2. ポイント対サイト VPN」の場合だと、

  1. P2S の構成 - 証明書認証
  2. P2S の構成 - Microsoft Entra ID 認証
  3. P2S の構成 - RADIUS 認証

の3つの方式があるらしいのだが、サイドバーから「2. P2S の構成 - Microsoft Entra ID 認証」のドキュメント構成を見てみると、

⇧ 上記によると、大きく分けて、

  1. P2S の構成 - Microsoft Entra ID 認証
    1. P2S ゲートウェイの構成
    2. VPN クライアント構成

の2か所で構成を構築する必要がありそうなのだが、必要な情報が非常に分かり辛い...

とりあえず、

■前提

  1. Microsoft Entra テナントの準備ができている

という前提で話を進めると、

■作業

  1. Azure側での作業(Azure Portal
    1. Virtual network gatewaysのリソース作成する
    2. Virtual network gatewayで設定する
    3. VPN クライアント プロファイル構成パッケージをダウンロードする
  2. クライアント側での作業(ローカル環境)
    1. Azure VPN クライアントをダウンロードする
    2. クライアント プロファイルの構成ファイルを抽出する
    3. プロファイル構成ファイルを変更する
    4. クライアント プロファイル構成設定のインポート

の作業が必要になってくるようだ。

各々のPCに「Azure VPN クライアント」をインストールして、「Azure VPN クライアント」の設定として、「Azure」上で作成したリソースである「Virtual network gateway」からダウンロードした「VPN クライアント プロファイル構成パッケージ」の内容を利用する感じになるっぽい。

相も変わらず、「Microsoft」のドキュメントは分かり辛い...

う~む...

結局のところ、ローカル環境から「VS CodeVisual Studio Code)」のような「ソフトウェア」を経由させて、「Azure Virtual Mashine」などの「Azure リソース」にアクセスするための環境構築はどうするのが良いのかサッパリ分からないんだが...

 

毎度モヤモヤ感が半端ない…

今回はこのへんで。