Amazon Lightsail で自宅サーバーを公開する
Published on 2024/02/08 , Last updated 2024/02/12Tags
概要
Amazon Lightsail と rathole を使用して Tunnel を構築し自宅のサーバーを公開します。
Tunnel を構築して自宅のサーバーを公開するその他の方法は こちら を参照してください。
前提条件
- AWS のアカウントが必要です。
- Docker, Docker Compose が使用できる必要があります。
手順
トンネルの構築
-
Amazon Lightsail を開き
インスタンスの作成
ボタンを選択します。 -
インスタンスのイメージ、サイズなどを選択し
インスタンスの作成
ボタンを選択します。- インスタンスイメージの選択
- プラットフォームの選択:
Linux/Unix
を選択します。 - 設計図の選択:
オペレーティングシステム (OS) のみ
からUbuntu22.04 LTS
を選択します。
- プラットフォームの選択:
- サイズを選択:
$3.51 か月あたりの USD
を選択します。
- インスタンスを確認: 任意のインスタンス名を入力します。
- インスタンスイメージの選択
-
インスタンスが
保留中
から実行中
になるまで待ちます。 -
インスタンスが
実行中
になったらインスタンス名を選択し管理画面に進みます。 -
管理画面の
ネットワーキング
タブ >IPv4 ファイアウォール
>ルールを追加
を選択し開放するポートを追加します。- TCP/2333: rathole のポート番号です。
- TCP/80: 自宅サーバーのポート番号です。
-
インスタンスのコンソールアイコンを選択しインスタンスに接続します。以降の手順はインスタンス内で行います。
-
インスタンスのポートを開放します。
ufw を有効にします。
sudo ufw enable
開放するポートを追加します。
2333
は rathole 、80
は自宅サーバーのポート番号です。sudo ufw allow ssh sudo ufw allow 2333 sudo ufw allow 80
ufw をリロードします。
sudo ufw reload
-
インスタンスに docker と docker-compose をインストールします。
-
rathole の設定ファイル
server.toml
を作成します。詳細は readme を参照してください。# server.toml [server] bind_addr = "0.0.0.0:2333" [server.services.home-server] token = "home-server-token" type = "tcp" bind_addr = "0.0.0.0:80"
-
rathole の
docker-compose.yaml
を作成します。2333
は rathole 、80
は自宅サーバーのポート番号です。version: "3.7" services: # https://github.com/rapiz1/rathole tunnel: image: rapiz1/rathole restart: unless-stopped command: ["--server", "/app/server.toml"] tty: true ports: # rathole - 2333:2333 # home server - 80:80 volumes: - ./server.toml:/app/server.toml
-
インスタンスで rathole を起動します。
sudo docker-compose up -d
自宅サーバーの公開
-
rathole の設定ファイル
client.toml
を作成します。詳細は readme を参照してください。# client.toml [client] remote_addr = "myserver:2333" [client.services.home-server] token = "home-server-token" type = "tcp" local_addr = "home-sever:80"
-
自宅サーバーと Tunnel の
docker-compose.yaml
を作成します。今回の自宅サーバーは nginx を使用します。version: "3.7" services: # https://hub.docker.com/_/nginx home-sever: restart: unless-stopped image: nginx:latest ports: - "80:80" # https://github.com/rapiz1/rathole tunnel: restart: unless-stopped image: rapiz1/rathole:latest command: ["--client", "/app/client.toml"] volumes: - ./client.toml:/app/client.toml
-
自宅サーバーと Tunnel を起動します。
docker-compose up -d
停止する場合は次のコマンドを実行します。
docker-compose down
削除する場合は次のコマンドを実行します。
docker-compose rm
-
自宅サーバーにアクセスできることを確認します。