terraform で Outline VPN 環境を構築する
Outline VPNをTerraformで簡単に構築する方法
概要
この記事では、Terraformを使用してOutline VPNのVPNサーバーを簡単に構築する手順を紹介します。
自分専用のVPNサーバーを立ち上げて利用したい方にとって、参考になればと思います。
Outline VPNとは?
Outline VPNは、プライバシー保護やインターネットアクセス制限の回避を目的としたオープンソースのVPNソリューションです。
全体像
今回作成するインフラ構成は以下のようなものです。
Outlineクライアント -> VPNサーバー(LightSail) -> ネットワーク
クライアントはOutlineアプリケーションを通じてVPNサーバーに接続し、そこからインターネットへアクセスします。
設定手順
前提条件
以下のツールがインストールされ、設定済みであることが前提です。
- Terraform
- Docker
- AWS CLI
1. リポジトリをクローンする
まず、必要なリポジトリをクローンします。
git clone git@github.com:yoppyDev/iac-templates.git
cd iac-templates/terraform/outline
2. インフラ構築
次に、Terraform Cloudで以下の環境変数を設定します。
設定方法はこちらの記事が参考になると思います。
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
その後、terraform.tf
ファイルのOrganization設定を自分のものに変更します。
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "5.63.0"
}
}
cloud {
organization = "YP" # ここを自身のorganizationに変更
workspaces {
name = "outline"
}
}
}
必要に応じて環境変数の値も変更してください。
variable "aws_region" {
type = string
default = "ap-northeast-1"
}
variable "bundle_id" {
type = string
default = "nano_3_0"
}
variable "blueprint_id" {
type = string
default = "amazon_linux_2 "
}
variable "AWS_ACCESS_KEY_ID" {
type = string
sensitive = true
}
variable "AWS_SECRET_ACCESS_KEY" {
type = string
sensitive = true
}
次に、Terraformを使用してインスタンスを起動します。
terraform init
terraform apply
3. インスタンスにSSH接続
インスタンスが起動したら、SSHで接続します。
chmod +x util.sh
./util.sh save_private_key
ssh -i ./outline_key.pem ec2-user@$(terraform output -raw static_ip_address)
4. Outline Serverのインストール
最後に、サーバー内でOutline Serverをインストールします。
sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh)"
インストールが完了すると、以下のような出力が表示されます。
{"apiUrl": "https:://xxx.xxx", "certSha256": "xxxxxx"}
この情報は、Outline ManagerでVPNサーバーを設定する際に使用しますので、コピーしておいてください。
5. Online Manager のインストールと設定
自身の環境に合わせてOutline Managerをインストールします。インストールはこちらから行えます。
インストールが完了すると、以下の画面が表示されますので、Amazon Lightsailを選択します。
先ほどコピーしたapiUrl
とcertSha256
を貼り付け、「完了」をクリックします。
これでOutline Managerでの設定は完了です。
あとは、VPNを利用したいデバイスにOutline VPNクライアントをインストールし、Outline Managerで発行したトークンを入力して接続するだけです!
6. 環境の削除
不要になった場合は、以下のコマンドでインフラを削除できます。
terraform destroy
自分専用のVPNを構築してみたいという方にとって、参考になる内容になっていれば幸いです。
もし何か不明点があれば、気軽にコメントをお寄せください。皆さんのお役に立てることを楽しみにしています。
Discussion