multi-purpose-lightsail-server1
WIP(現在進行中)
Work In Progress
このプロジェクトで現在進行中の作業と、過去のスナップショットを記録する。
現在の状況
サーバー稼働中。3サービスをホスト中、全プロセスに systemd 自動再起動が設定済み。
- 静的IP
7channel-v2-ip(13.230.63.19)アタッチ済み 7ch.ikapps.com: 7channel管理画面(FastAPI / port 8001 / HTTP)aix.ikapps.com: AI YouTube管理画面(Flask + gunicorn / port 5001 / HTTPS)mydb.ikapps.com: phpMyAdmin(Nginx + php8.1-fpm / HTTPS)- 自動再起動:
7channel-web・aix-manager(Restart=always)、nginx・php8.1-fpm(Restart=on-failure, 5s) - メモリ余裕は 153MB 前後とタイト、スワップ 2GB で補填中
次にやること: 新サービス追加時は /etc/nginx/sites-available/ に設定追加 → certbot → README更新。
負荷が増えそうなら監視サービス導入や php-fpm の pm.max_children 調整を検討。
過去のWIPアーカイブ
2026-04-25 11:30 時点のスナップショット
サーバー稼働中。2サービスをホスト中。
- 静的IP
7channel-v2-ip(13.230.63.19)アタッチ済み 7ch.ikapps.com: 7channel管理画面(FastAPI / port 8001 / HTTP)aix.ikapps.com: AI YouTube管理画面(Flask + gunicorn / port 5001 / HTTPS・SSL済み)
次にやること: 新サービス追加時は /etc/nginx/sites-available/ に設定追加 → certbot → README更新の手順で。
ROADMAP(計画)
ロードマップ
今週
(未定)
今月
- 監視サービス(UptimeRobot 等)の導入を検討
- php-fpm の
pm.max_childrenなどメモリ制限の調整
今四半期
(未定)
いつか
- 最初の Web サービスを Nginx バーチャルホストとして追加する(完了: 7ch / aix / mydb を追加)
- 静的 IP の割り当て(完了: 7channel-v2-ip をアタッチ済み)
- Let's Encrypt で HTTPS 対応のテンプレートを整備(完了: aix / mydb で SSL 取得済み)
- サービスごとの systemd unit をリポジトリ内にテンプレ化
DECISIONS(意思決定)
意思決定記録
このプロジェクトで下した重要な意思決定を記録する。 最新が上に来る。
2026-04-24: SSH 鍵の注入に user-data 方式を採用
背景: Lightsail の create-key-pair API が返す privateKeyBase64 を base64 デコードしても正常な PEM ファイルが得られなかった。import-key-pair も OpenSSH 形式の公開鍵を受け付けなかった。
決定: ローカルで ssh-keygen により RSA 4096 鍵を生成し、インスタンス起動時の --user-data スクリプトで authorized_keys に公開鍵を直接書き込む方式を採用。
理由: Lightsail の鍵管理 API に依存せず、ローカルで生成した鍵をそのまま使えるため確実。鍵ファイルのフォーマット問題を完全に回避できる。
2026-04-24: Lightsail プランを $5.00 IPv4 プランに決定
背景: 当初 $3.50 プランを検討していたが、調査の結果 $3.50 は IPv6 専用で IPv4 なしと判明。
決定: $5.00 の nano_3_0 プラン(IPv4 あり)を採用。
理由: プロジェクトごとのドメインで Web サービスを公開するには IPv4 の A レコードが必須。$3.50 では実用上使えない。
DEVLOG(作業ログ)
開発日誌
このプロジェクトでの作業を時系列で記録する。 最新のエントリが上に来る。
2026-04-25
11:30 - 負荷対策として systemd 自動再起動を設定
やったこと:
- サーバーのリソース状況を確認: メモリ 416MB 中 208MB 使用(残り153MB)、スワップ 2GB 設定済み(138MB 使用)、ロード 0.01、OOM履歴なし
- メモリ使用 TOP は php-fpm × 3(計 ~110MB)、gunicorn × 2(計 ~30MB)
7channel-web/aix-managerは Restart=always(OK)、nginx/php8.1-fpmは Restart=no → override.conf でRestart=on-failure/RestartSec=5sを追加- override 配置先:
/etc/systemd/system/{nginx,php8.1-fpm}.service.d/override.conf systemctl daemon-reload後に restart テスト、3サービス疎通確認 OK
気づき:
- nano プラン(416MB実メモリ)は余裕 153MB とタイト、予期せぬ負荷で OOM リスクはある
- スワップ 2GB が効いている(どこかのタイミングで導入済みだった)
- パッケージ提供 unit を直接編集すると apt upgrade で戻るので override.conf 方式が正解
次回やること:
- 監視(UptimeRobot 等)を入れるか検討
- php-fpm のプロセス数制限(pm.max_children 調整)
2026-04-24
22:00 - aix.ikapps.com を追加ホスト
やったこと:
- 静的IP
7channel-v2-ip(13.230.63.19)をアタッチ済みに変更(CLAUDE.md・README更新) - Route 53 に
aix.ikapps.comの A レコード追加(13.230.63.19) - Nginx に
sites-available/aix.ikapps.comを追加(当初静的ファイル配信、後にリバースプロキシに変更) - certbot で Let's Encrypt SSL証明書取得(自動更新設定済み)
- systemd サービス
aix-managerを作成・有効化(Flask + gunicorn、port 5001) - certbot インストール:
sudo apt-get install -y certbot python3-certbot-nginx
次回やること:
- 新しいサービスを追加するときは同じ手順で
20:00 - インスタンス作成と基本セットアップ
やったこと:
- AWS Lightsail に Ubuntu 22.04 / $5 nano_3_0(東京 ap-northeast-1a)でインスタンス作成
- インスタンス名:
multipurpose-server1、パブリック IP:13.192.166.254(動的) - SSH 鍵: ローカルで RSA 4096 を生成(
~/.ssh/lightsail-multipurpose)、user-data でサーバーに注入 - 基本セットアップ完了: apt update/upgrade、Nginx、UFW(22/80/443)、unattended-upgrades、SSH パスワード認証無効化
- Lightsail コンソール側ファイアウォールも 22/80/443 に設定
- README.md / CLAUDE.md にサーバー情報を記録
~/.claude/CLAUDE.md(グローバル)に多目的サーバーの場所を追記
決めたこと:
- $3.50 IPv6 プランではなく $5.00 IPv4 プランを採用(ドメイン公開に IPv4 必須)
- Lightsail の create-key-pair API の privateKeyBase64 デコード問題を回避するため、user-data 注入方式を採用
- 静的 IP はとりあえず不要
次回やること:
- 最初の Web サービスを追加するタイミングで Nginx バーチャルホストを設定
最近のコミット
- 766309d systemd自動再起動設定の作業記録と現状のWIP・ROADMAP更新 2026/4/25
- 41d4e44 サービス一覧に mydb.ikapps.com (phpMyAdmin) を追加 2026/4/25
- 61acf43 aix.ikapps.com をホスト追加・README/devnotes更新 2026/4/24
- 57944d4 7channel-server-v2を追加、静的IP情報を更新 2026/4/24
- 74167a4 Lightsailインスタンス作成・基本セットアップ完了、devnotes初期化 2026/4/24
- f74419d Initial commit 2026/4/24
README
multi-purpose-lightsail-server1
AWS Lightsail 上の多目的サーバー。1台のインスタンスで複数の Web サービスを Nginx で束ねて運用する。
サーバー情報
| 項目 | 値 |
|---|---|
| プロバイダ | AWS Lightsail |
| インスタンス名 | multipurpose-server1 |
| リージョン | ap-northeast-1a(東京) |
| プラン | Nano $5/月(2vCPU / 512MB RAM / 20GB SSD) |
| OS | Ubuntu 22.04.5 LTS |
| パブリック IP | 13.230.63.19(静的) |
| 静的 IP | 7channel-v2-ip |
SSH 接続
ssh -i ~/.ssh/lightsail-multipurpose ubuntu@13.230.63.19
鍵ファイル: ~/.ssh/lightsail-multipurpose(ローカルのみ、リポジトリ管理外)
インフラ構成
- Nginx: リバースプロキシ。ドメインごとに各サービスへルーティング
- UFW: 22(SSH) / 80(HTTP) / 443(HTTPS) のみ許可
- unattended-upgrades: セキュリティアップデート自動適用
ホスト中のサービス
| サービス名 | ドメイン | 説明 |
|---|---|---|
| 7channel-server-v2 | http://7ch.ikapps.com | 7channel管理画面(FastAPI)。ポート8001で稼働、systemdサービス名: 7channel-web |
| x-account-manager-ai | https://aix.ikapps.com | AI YouTube新着動画管理・X投稿管理(Flask)。ポート5001で稼働、systemdサービス名: aix-manager、SSL済み |
| common-php-my-admin | https://mydb.ikapps.com | phpMyAdmin 5.2.3(既存RDS群の管理用)。Nginx + php8.1-fpm、配置先 /var/www/phpmyadmin/、SSL済み |
新しいサービスを追加するには
- Nginx の
sites-available/に設定ファイルを追加 sites-enabled/にシンボリックリンクを作成nginx -t && systemctl reload nginx- このREADMEのサービス一覧を更新