はじめに
GMOコネクトの永田です。
DGX Sparkが届きました!🎉
しかし、すぐに問題が…
「オフィス外からollamaを使いたいけど、グローバルIPもVPN設備もない!」
同じような環境の方も多いのではないでしょうか?
今回はWireGuard + AWS EC2の組み合わせで、この課題を解決してみました。
構築にかかった時間は約1時間、月額コストは数千円程度です。
構築後にできること
- 自宅やカフェから、オフィスのDGX Sparkへ安全にアクセス
- ollamaのAPIを直接呼び出して生成AIを活用
- 同じ構成で他の社内リソースにもアクセス可能
WireGuardの導入は情シスなど社内の承認を得た上で実施してください。
構築した環境(イメージ)
最終的に構築した環境は以下になります。(IPアドレスや、社内の構成図などは適当です。)
AWS EC2上にグローバルIPを持つWireGuard Serverを構築し、DGX Sparkとアクセス元の端末(今回はMacBook)にWireGuard Clientを設定しています。
では、早速構築していきましょう!
WireGuard Serverの構築
AWS EC2環境の構築
今回の構成の方針は以下としました。(導入先によって要件が変わると思いますので、適時調整してください)
- 構成
- 可用性よりコスト重視で、Public Subnetに設置したEC2の1台構成とする
- Ubuntu 24.04 LTS (x86_64)を利用
- EC2起動時の自動実行(UserData)でWireGuardのインストールまで実施
- セキュリティ
- WireGuard portは特定のIPからのみSecurityGroupで許可
- 接続元のWireGuard Client IPはPrefixListで手動管理
- EC2へのSSHはSessionManager経由のみ
- UbuntuのUFWは利用せず、SecurityGroupのみで制限
- WireGuard portは特定のIPからのみSecurityGroupで許可
今回利用したCloudFormationを参考としてgithubに置きました。
上記のような要件をGithub Copilot Plan --> Agent(Claude Sonnet 4.5)に伝えて、生成してもらっています。
WireGuard Serverの設定
サーバー鍵の生成
Session Managerでサーバーに接続し、WireGuard鍵を生成します。
sudo -i
cd /etc/wireguard
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
# 公開鍵を確認(クライアント設定で使用)
cat publickey
WireGuard Serverのconfig作成
/etc/wireguard/wg0.conf に設定ファイルを作成します。
今回VPNのIP Rangeとして10.0.10.0/24としました。
[Interface]
# サーバーの秘密鍵 (サーバー上の /etc/wireguard/privatekey の内容を設定)
PrivateKey = <REPLACE_WITH_SERVER_PRIVATE_KEY>
# VPN内でのサーバーアドレス + IP Range
Address = 10.0.10.1/24
# WireGuardリスニングポート
ListenPort = 51820
# iptablesルール (VPNトラフィックの転送とNATを有効化)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens5 -j MASQUERADE
WireGuard Serverの起動
設定ファイルが出来ましたので、WireGuardを起動してみます。
# WireGuard起動
sudo wg-quick up wg0
# 自動起動設定
sudo systemctl enable wg-quick@wg0
起動できたか状態を見てみましょう。
# 状態確認
sudo wg show
interface: wg0
public key: <WireGuardサーバー公開鍵>
private key: (hidden)
listening port: 51820
interface: wg0 が認識されており、大丈夫そうですね!
WireGuard Clientの設定(MacBook編)
続いてClient側を設定していきます。
インストール手順は公式ページに記載があり、macOSの場合はApp StoreからWireGuardをインストールするだけです。
WireGuard Clientの鍵生成&設定ファイルの作成(MacBook編)
最初、macOS版WireGuardでどうやって鍵生成をするんだろう?と疑問でしたが、空の設定を作ると鍵も生成されました。
最終的に以下の設定になるように、追記して保存します。
[Interface]
PrivateKey = <クライアント秘密鍵>
Address = <クライアントに割り当てたVPN内アドレス>/32
[Peer]
PublicKey = <WireGuardサーバー公開鍵>
Endpoint = <WireGuardサーバーのパブリックIP>:51820
# Split Tunnel: Office DGX Spark宛のみVPN経由
AllowedIPs = 10.0.10.0/24
# NAT越えやファイアウォール越えのためのキープアライブ
PersistentKeepalive = 25
保存すると、許可ダイアログがでるので許可します。
設定画面が以下のような表示になると準備完了です!
接続自体は、WireGuard Server側の準備が終わってからになります。
WireGuard Server側でクライアント追加(MacBook/DGX Spark共通)
クライアントの公開鍵と割り当てたVPN内アドレスをサーバーの wg0.conf に追記します。
[Peer] # <デバイス名>などをコメントに書いておくと後で分かりやすいです
PublicKey = <クライアント公開鍵>
AllowedIPs = <クライアントに割り当てたVPN内アドレス>/32
PersistentKeepalive = 25
その後、WireGuard Serverに設定を同期するとサーバー側も準備完了です!
## サーバーで設定反映
sudo -i
wg syncconf wg0 <(wg-quick strip wg0)
## 状態確認
wg show
interface: wg0
public key: <WireGuard Serverの公開鍵>
private key: (hidden)
listening port: 51820
peer: <追加したClientの公開鍵>
allowed ips: <クライアントに割り当てたVPN内アドレス>/32
persistent keepalive: every 25 seconds
Peerセクションが追加されていることを確認してください。
WireGuard Clientの接続(MacBook編)
では、準備が終わったので、WireGuardで接続します。
macOSの場合は先ほどの設定画面で「有効化」ボタンを押すだけです。
状態が「有効」になっていれば成功です!
WireGuard Server側もログを確認してみましょう。
sudo wg show
interface: wg0
public key: <WireGuard Serverの公開鍵>
private key: (hidden)
listening port: 51820
peer: <WireGuard Clientの公開鍵>
endpoint: <ClientIP>:64371
allowed ips: 10.0.10.101/32
latest handshake: 1 minute, 18 seconds ago
transfer: 340 B received, 124 B sent
persistent keepalive: every 25 seconds
handshake が表示されていればOKです。
その後、MacBook側でpingやtracerouteなど好きな通信を試してください。
WireGuard Clientの設定(DGX Spark編)
次にオフィスにあるDGX Sparkの設定をします。
DGX SparkはUbuntuベースなので、Ubuntuの手順で実施します。
WireGuard Clientの鍵生成&設定ファイルの作成(DGX Spark編)
sudo apt install -y wireguard でインストール後、まずは鍵を生成します。
手順はサーバーと同じです。
# 適当な場所で鍵生成
mkdir -p ~/.wireguard
cd ~/.wireguard
# クライアント側で鍵生成
wg genkey | tee privatekey | wg pubkey > publickey
# 公開鍵と秘密鍵を確認
cat publickey
cat privatekey
macOSで作成した設定と同じような内容で、/etc/wireguard/wg0.conf に保存してください。
その後、WireGuard Server側の wg0.conf にDGX Sparkのクライアント設定を追加し、wg syncconf wg0 <(wg-quick strip wg0) で設定を反映してください。
WireGuard Clientの接続(DGX Spark編)
起動自体はWireGuard Serverと同じ手順です。
# WireGuard起動
sudo wg-quick up wg0
# 自動起動設定
sudo systemctl enable wg-quick@wg0
起動後、Server側で sudo wg show を実行し、DGX Sparkのhandshakeが確認できたら準備完了です。
MacBook から DGX Spark (10.0.10.10) へのsshなどの疎通を確認してください。
ollamaのDGX Sparkへの導入
さて、ネットワークは疎通するようになったので、次はWireGuard経由でMacBookからollamaを呼び出せるように、DGX Sparkへollamaを導入します。
ollamaのインストール
手順はUbuntuと同じです。念の為NVIDIA Driverが正しく動作していることを確認してください。
# Update OS
sudo apt update && sudo apt upgrade -y
# Check NVIDIA Driver(エラーの場合にはUbuntu再起動)
nvidia-smi
# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh
(中略)
Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
>>> NVIDIA GPU installed.
ollamaのサービスが作成され、NVIDIA GPUが認識されていれば、導入完了です!
WireGuard経由でのollamaアクセスの許可
デフォルトではollamaはlocalhostからの通信のみを許可しているため、WireGuard経由の通信を許可するように設定を変更します。
# ollama設定ファイル編集
sudo systemctl edit ollama.service
[Service]で環境変数を2つ追加します。OLLAMA_HOST はDGX SparkのWireGuardのIPアドレス(10.0.10.10)に設定します。
必ず、### Edits below this comment will be discarded の前に追記してください。
### Editing /etc/systemd/system/ollama.service.d/override.conf
### Anything between here and the comment below will become the contents of the file
[Service]
Environment="OLLAMA_HOST=10.0.10.10:11434"
Environment="OLLAMA_ORIGINS=10.0.10.*"
### Edits below this comment will be discarded
(略)
設定が終わったらollamaサービスを再起動し、環境変数とport bindを確認してください。
# ollamaサービス再起動
sudo systemctl restart ollama
# 環境変数確認
sudo systemctl show ollama.service | grep Environment
# ポート確認
sudo lsof -i :11434 -n -P
MacBookからWireGuard経由でDGX Sparkのollama呼び出し
最後に、実際にollamaにアクセスしてみます。MacBookがWireGuardに接続されている状態で実行してください。
curl http://10.0.10.10:11434/api/tags
{"models":[{"name":"gpt-oss:120b","model":"gpt-oss:120b","modified_at":"2026-01-29T06:43:28.777350431+09:00","size":65369818941,"digest":"a951a23b46a1f6093dafee2ea481d634b4e31ac720a8a16f3f91e04f5a40ecd9","details":{"parent_model":"","format":"gguf","family":"gptoss","families":["gptoss"],"parameter_size":"116.8B","quantization_level":"MXFP4"}}]}
無事に呼び出せましたね!😊
まとめ
WireGuardを使用することで、特別なVPN設備がない環境でも、セキュアにオフィス内のリソース(DGX Sparkのollama)にアクセスすることができました。
構築のポイント:
- AWS EC2にWireGuard Serverを構築し、グローバルIPを割り当て
- クライアント側でWireGuard接続をセットアップ
- ollama側で外部からの接続を許可する環境変数を設定
このアプローチは他のサービス(データベース、内部ツールなど)にも応用できます。
最後に、GMOコネクトではサービス開発支援や技術支援をはじめ、幅広い支援を行っておりますので、何かありましたらお気軽にお問合せください。






