サーバー構築において設定ミスによるトラブルへの不安を感じることはありませんか?
本記事ではサブスク管理人のインフラ設計を紹介します。
インフラ構成
Webサーバーとデータベースを物理的に分けることで、負荷分散を考慮した構成にしました。
Ansibleによる環境構築
AWSのようなクラウドサービスは使用せず、コストパフォーマンスに優れた ConoHa VPS を採用し、OSには AlmaLinux をインストールしています。
インフラ構成管理には Ansible を採用し、環境構築を自動化しました。
一度実行すれば、OSの初期設定からミドルウェアのセットアップまで完了します。構築過程をコード化することで、ミス防止と再現性を実現しました。
利用ソフト
Macでのメンテナンスに活用している定番ソフトを紹介します。
| ツール | 用途 |
|---|---|
| DBeaver | データベースをGUIで操作 |
| FileZilla | ファイルの転送を直感的かつ確実に行う |
| VSCode Remote SSH | サーバー上のファイルをローカルと同じ感覚でGUI編集 |
SSLの設定
サイトを安全に公開するため、Cloudflare を活用したSSL対応を行いました。
手順1:DNSの設定
Cloudflare の管理画面でドメインのAレコードを ConoHa VPS のIPアドレスに紐付けます。
手順2:SSL/TLS設定の有効化
SSL/TLSの設定をフルに変更します。暗号化設定を有効にすることで、クライアントと Cloudflare 間、および Cloudflare とサーバー間の両方が暗号化されます。
手順3:オリジン証明書の設定
Cloudflare が発行するオリジン証明書をサーバー内に設置し、Nginx から読み込むように設定します。
server {
listen 443 ssl;
server_name subsc-manage.rbtm.jp;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
}
設定でハマった点
Cloudflare にはサブドメインの階層制限があります。無料プランがカバーしているのは *.example.com のように1レベルのサブドメインまでであり、api.subsc.example.com のような2レベル以上のサブドメインには対応していません。サブドメインは1階層に留め、api-subsc-manage.rbtm.jp のようにハイフンで繋ぐ形式にすることで回避しました。
終わりに
Ansible による構築の自動化と Cloudflare によるドメイン・SSL管理を組み合わせることでインフラを短期間で構築できました。
連載記事一覧
- サブスク管理人という個人サービスをリリースしました
- 【サブスク管理人】デザインシステムとUI実装
- 【サブスク管理人】データベースの設計
- 【サブスク管理人】APIの設計と開発
- 【サブスク管理人】インフラ設計と構築←本記事
- 【サブスク管理人】データ解析基盤の構築(準備中)