概要
VPS上でDjangoサイトを公開する前段階として、VPS契約、OSインストール、独自ドメイン、DNS設定、SSH初期設定を整理する。
この段階では、アプリケーションの実装よりも「安全にサーバーへ接続できること」と「ドメイン名でサーバーへ到達できること」が重要になる。後続のApache、Django、PostgreSQL設定の土台になるため、SSHとDNSの確認を丁寧に行う。
前提環境
| 項目 | 内容 |
|---|---|
| OS | CentOS 7.4 |
| 言語 | Python |
| Webサーバー | Apache |
| フレームワーク | Django |
| データベース | PostgreSQL |
この記事で扱うこと
- VPS契約時に確認する観点。
- CentOS環境の初期確認方法。
- 独自ドメインとDNS設定の基本。
- Aレコードとネームサーバー設定の役割。
- rootログイン禁止と公開鍵認証の考え方。
作業前に確認すること
| 項目 | 確認内容 |
|---|---|
| VPS情報 | IPアドレス、ログインユーザー、初期パスワードを確認しておく。 |
| ドメイン | example.com のような独自ドメインを取得しておく。 |
| DNS | AレコードがVPSのIPアドレスを指すように設定する。 |
| SSH | rootログイン禁止と公開鍵認証を設定できる状態にする。 |
| 反映時間 | DNS変更はすぐ反映されないことがあるため、確認時間を見込む。 |
作業時の注意点
| 作業時の注意点 | 整理するポイント |
|---|---|
| ドメイン契約とDNS設定 | 契約しただけでは接続できず、DNSレコードの設定が必要になる。 |
| Aレコードとネームサーバー | どこで名前解決を管理するかと、どのIPへ向けるかを分けて考える。 |
| rootログイン禁止 | 一般ユーザーでログインできることを確認してから無効化する。 |
| パスワード認証の無効化 | 公開鍵で接続できることを確認してから切り替える。 |
実施内容
VPS契約
- 価格に見合ったスペック(容量、メモリ、CPUなど)、安全性、操作性など、何を重視するかの基準をもとにVPS提供会社を決める。
- ここでは、コストパフォーマンスとサポートの充実、プラン変更の柔軟性に基準を置き「さくらのVPS」で契約。
OSインストール
- 開発環境(Apache, Django, PostgreSQL)がインストール可能で管理しやすいOSに絞る。
- ここでは、英語圏のコミュニティが大きく、日本語情報が豊富で個人的に使い慣れているCentOSを選んだ。
- CentOS7_x86_64(標準)をインストール
インストールは、SAKURA VPS管理者用のコントロールパネルからGUI操作でインストールする。
$ cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
独自ドメインの契約
- ドメインの維持費、サーバー同時契約などの機能性、サポート体制など、何を重視するかの基準をもとにサービスを選ぶ。
- ここでは、Whois情報の公開代行、自動更新の有無、サポートの充実に基準を置き「お名前.com」で独自ドメインを取得した。
- 以降、この独自ドメインをexample.comと表記する。
ドメインのDNS設定
※ 契約したサービスによって操作方法が初期状態が異なるので設定方法については割愛する。
-
VPS側のネームサーバー設定(さくらのVPS)
DNS設定からドメインの追加を行う。ホスト名: example.com 種別: A 内容: VPSのIPアドレス TTL: 3600 -
ドメイン側のネームサーバー設定(お名前.com)
example.comのドメイン設定でVPSのネームサーバーを登録する。
※ 設定が反映されるまで数時間〜数日かかるので注意。 -
設定確認
nslookup等で上記の設定が反映されているか確認すること。
SSHの初期設定
-
rootでログインできないようにする。
ログイン用の一般ユーザーを作成する。$ adduser vpsuser $ passwd *******SSHの設定変更
rootで直接アクセス出来ないようにする。$ vim /etc/ssh/sshd_config→
PermitRootLogin noがコメントアウトされていたら解除する。 -
公開鍵認証の設定
公開鍵認証でのみログインするようにする。$ vim /etc/ssh/sshd_config→
PasswordAuthentication noがコメントアウトされていたら解除する。
上記の設定により、新規登録したvpsuserと秘密鍵を使用しないとログインできなくなる。
実務とのつながり
- DNS設定
Webサイト公開時の名前解決トラブルを切り分ける基礎になる。 - SSH設定
本番サーバーの初期セキュリティ対策として必須になる。 - 作業記録
どのサービスでドメインとDNSを管理しているかを残しておくと、移行や障害対応が楽になる。
まとめ
- VPS構築の最初の段階では、OS、ドメイン、DNS、SSHを整える。
- DNSはドメイン名をVPSのIPアドレスへ向ける仕組みとなる。
- SSHはrootログインを避け、公開鍵認証を使うことで安全性を高める。