DNS・ドメイン・サーバー運用の基本:Webサービス公開の仕組みを理解する
🚀 はじめに
この記事では、Webサービスを外部に公開するために必要不可欠な、DNS、ドメイン、サーバー運用の基本知識を解説します。インフラ初心者から Web開発担当者まで、具体的な設定手順やトラブル対応を学び、自社サービス公開の流れを理解することをゴールとします。
対象読者: インフラ初心者~Web開発担当者
ゴール: 具体的な設定手順やトラブル対応を学び、自社サービス公開の流れを理解する
🎯 なぜこの知識が必要?
社内Webサービスを公開するために必須の知識
外部からアクセスできる仕組みを理解しないと、トラブル対応やセキュリティ設計ができません。
✅ 理解すると...
- サービス障害の原因特定が早くなる
- セキュリティリスクを把握できる
- コスト最適化の判断ができる
❌ 理解せずに運用すると...
- DNS障害で長時間復旧できない
- SSL証明書切れでサービス停止
- セキュリティホールを見落とす
⚠️ SSL証明書が切れると、ブラウザに「接続はプライベートではありません」という警告が表示され、ユーザーがアクセスできなくなります。
🌐 Webサービス公開の全体像
リクエストの流れ
ブラウザ → DNS → Webサーバー → アプリ → DB
↓ ↓ ↓ ↓
名前解決 IPアドレス コンテンツ データ
各要素の役割
- 🏷️ ドメイン - Webサイトの名前(例:example.com)
- 🔍 DNS - 名前をIPアドレスに変換(名前解決)
- 🖥️ サーバー - コンテンツを返す実際のマシン
リクエストの流れ: ①ユーザーがURL入力 → ②DNSでIP検索 → ③サーバーにアクセス → ④コンテンツ取得 → ⑤ブラウザに表示
WordPressサイトの具体例
ユーザー(example.com を入力)
↓
DNS(203.0.113.10 を返却)
↓
Webサーバー(Apache/Nginx)
↓
WordPress(PHP処理)
↓
MySQL(データ取得)
↓
HTMLページを生成してユーザーに返送
🏷️ ドメインとは?
Webサイトの住所
example.com
のような覚えやすい名前のことです。
取得方法
ドメインレジストラで検索・購入します:
- お名前.com
- ムームードメイン
- AWS Route53
- Squarespace Domains(旧Google Domains)
年間コスト目安
ドメイン種類 | 価格目安(年間) |
---|---|
.com | 1,000円~ |
.jp | 3,000円~ |
.co.jp | 4,000円~ |
⚠️ 注意点: ドメイン取得後、DNS設定やネームサーバー設定が必要です
ネームサーバー: ドメインとIPアドレスの対応を管理するサーバーのこと
※価格は2025年時点の目安で、変動する可能性があります
🔍 DNSとは?
Domain Name System
www.example.com
→ 203.0.113.1
(ドメイン名をIPアドレスに変換)
主要なDNSレコード種類
-
A レコード - ドメイン → IPv4アドレス(例:
example.com → 203.0.113.1
) - AAAA レコード - ドメイン → IPv6アドレス(IPv6対応サイト用)
-
CNAME レコード - 別名(エイリアス)設定(例:
www → example.com
)- 注意:ルートドメイン(Apex, @)ではCNAME使用不可。ALIAS/ANAME対応のDNSかA/AAAAを使用
-
MX レコード - メールサーバー指定(例:
mail.example.com
) - NS レコード - ネームサーバー指定(ドメインのDNS設定をどこで行うか)
サブドメインとは
メインドメインの前に付ける識別子:
-
example.com
(メインドメイン) -
www.example.com
(一般向けサイト) -
api.example.com
(API専用サーバー) -
admin.example.com
(管理画面) -
blog.example.com
(ブログサイト) -
dev.example.com
(開発環境)
セカンダリDNSサーバー
- 冗長化 - プライマリ障害時のバックアップ
- 負荷分散 - アクセス負荷を分散
- 高可用性 - サービス停止リスク軽減
通常はドメインレジストラやDNSサービス提供者が冗長化してくれているため、ユーザーが直接設定することは少ない
DNSレコード設定例
; DNSレコード設定例
example.com. A 203.0.113.10
www.example.com. CNAME example.com.
mail.example.com. MX 10 mail.example.com.
; 末尾のドット(.)はルートゾーンを表す
; 省略すると自動補完される場合もある
🚀 ドメイン取得から公開までの流れ
-
ドメイン取得
お名前.com / AWS Route53 でドメイン購入 -
DNS設定
ネームサーバー指定 → Aレコードでサーバーip登録 -
サーバー構築
AWS EC2、ConoHa VPS、さくらのVPS等でサーバー準備
(Docker、AWS CLI等の活用も検討) -
SSL証明書設定
Let's Encrypt(無料)またはCA認証局から取得 -
動作確認
ping、curl、ブラウザで接続テスト
(ブラウザのF12デベロッパーツールも活用)
動作確認コマンド例
# 基本的な疎通確認
ping example.com
curl -I https://example.com
# DNSの確認
nslookup example.com
dig example.com A
📝 実際のDNSレコード設定例
# コマンドライン形式での表記例(参考)
example.com. A 203.0.113.10
www.example.com. CNAME example.com.
api.example.com. A 203.0.113.11
mail.example.com. A 203.0.113.20
; 実際の設定はドメイン管理会社のコントロールパネルで行います
設定のポイント
- TTL(Time To Live): 300秒程度に設定(キャッシュの有効期間。短くすると変更が早く反映されるが、DNSサーバーへの問い合わせが増加)
- 冗長化: 複数のAレコードでロードバランシング、セカンダリDNSで可用性向上
- サブドメイン: 機能ごとに分けて管理しやすくする(api.、admin.、dev.など)
- 設定方法: 通常はドメイン管理会社のコントロールパネル(コンパネ)で設定
実際の設定画面イメージ(お名前.comの例)
ホスト名 | TYPE | VALUE | TTL |
---|---|---|---|
@ | A | 203.0.113.10 | 300 |
www | CNAME | @ | 300 |
api | A | 203.0.113.11 | 300 |
A | 203.0.113.20 | 300 |
※@マークは自分のドメイン名(example.com)を表します
⚠️ DNS伝播: 設定変更後、世界中のDNSサーバーが古い情報をキャッシュしているため、更新に時間がかかります。環境により数分以内~48時間程度(Cloudflare、Route53では通常数分以内)
🖥️ サーバー運用の基本
定期メンテナンス
- OSアップデート、セキュリティパッチ適用
- ログローテーション、ディスク容量チェック
- 監視ツール設定(Zabbix、Prometheusなど)
セキュリティ設定
- ファイアウォール(22:SSH, 80:HTTP, 443:HTTPS)
- SSH鍵認証 + ポート変更(セキュリティ向上)
- 不要なサービス停止、ログ監視
バックアップ
- DBダンプ(毎日)、ファイルバックアップ
- スナップショット、復元テスト
よく使う運用コマンド
# CentOS/RHEL系
sudo yum update -y
sudo systemctl status httpd
sudo firewall-cmd --list-all
# Ubuntu/Debian系
sudo apt update && sudo apt upgrade -y
sudo systemctl status apache2
sudo ufw status
# ログローテーション設定例
sudo vim /etc/logrotate.d/myapp
監視のポイント: CPU使用率、メモリ使用率、ディスク容量、応答時間を定期的にチェック
🛡️ セキュリティ対策
基本的なセキュリティ
- SSH鍵認証 - パスワード認証を無効化
- ポート制限 - 必要最小限のポートのみ開放
- 最小権限の原則 - 管理者(root)での直接操作を避ける
- 定期更新 - OS・ソフトウェアの最新化
Webアプリケーション
- HTTPS必須 - SSL/TLS証明書の設置
-
WAF(Web Application Firewall)の検討 - 不正な攻撃を防ぐ
Cloudflare(無料プランあり)/ AWS WAF - DDoS対策 - レート制限・監視の設定
SSL証明書の比較
項目 | 無料(Let's Encrypt) | 有料SSL |
---|---|---|
価格 | 無料 | 年間 数千円〜数万円 |
有効期限 | 90日(自動更新可) | 1年間 |
サポート | なし | あり + 補償 |
証明書種類 | DVのみ | DV/OV/EV対応(EV証明書は信頼性表示あり) |
⚠️ 自動更新設定必須: Let's Encryptは90日で期限切れするため、必ずcronで自動更新を設定
0 0 * * * certbot renew --quiet
💰 運用コスト目安
主要な費用
項目 | 価格目安 |
---|---|
ドメイン費用(年間) | .com: 1,000円~, .jp: 3,000円~, .co.jp: 4,000円~ |
サーバー費用(月額) | ConoHa VPS: 1,000円~, さくらのVPS: 900円~, AWS EC2: 数百円~ |
SSL証明書 | Let's Encrypt: 無料, DV証明書: 年間5,000円~, EV証明書: 年間50,000円~ |
規模別コスト例
規模 | 構成 | 月額コスト | 年間コスト |
---|---|---|---|
小規模 | VPS 1台 + ドメイン + 無料SSL | 1,000円 | 13,000円 |
中規模 | VPS 2台 + LB + ドメイン + 有料SSL | 3,000円 | 41,000円 |
大規模 | AWS構成 + CDN + 監視 + EV証明書 | 10,000円~ | 150,000円~ |
コスト最適化のポイント: 小規模スタート → 負荷に応じてスケールアップ → 必要に応じてクラウドサービス活用
⚠️ 注意: クラウドサービスはデータ転送量によって料金が大きく変動します
※価格は2025年時点の目安です
🚨 社内でよくあるトラブル
DNS伝播待ち
- 症状: DNS設定を変更したが、一部の人だけアクセスできない
- 対策: 最大24~48時間待つ。急ぎの場合はTTLを短く設定
ポート閉じ忘れ
- 症状: サーバーは動いているが、ブラウザでアクセスできない
- 対策: ファイアウォールで80/443番ポートが開いているか確認
証明書の自動更新失敗
- 症状: Let's Encryptの証明書が期限切れでサイトエラー
- 対策: crontabで自動更新設定 + 監視アラート設置
ドメイン有効期限切れ
- 症状: サイト全体が完全にアクセス不可になる(最も深刻)
- 対策: ドメイン自動更新設定 + 期限切れ通知設定
ディスク容量不足
- 症状: サイトが重い、エラーが頻発する
- 対策: ログローテーション設定 + 容量監視アラート
トラブル解決の基本手順
# 1. 基本的な疎通確認
ping ドメイン名
curl -I https://ドメイン名
# 2. DNSの確認
nslookup ドメイン名
dig ドメイン名 A
# 3. サーバーの状態確認
systemctl status httpd # Webサーバー
systemctl status nginx
df -h # ディスク使用量
free -h # メモリ使用量
# 4. ログの確認
tail -f /var/log/httpd/error_log
tail -f /var/log/nginx/error.log
予防策: 定期的な死活監視 + ログ監視 + 容量監視で問題を早期発見
📋 まとめ
4つの基本要素
- 🏷️ ドメイン = 名前 - Webサイトの住所、覚えやすい識別名
- 🔍 DNS = 名前解決 - ドメイン名をIPアドレスに変換
- 🖥️ サーバー = 実体 - 実際にコンテンツを配信するマシン
- 🛡️ SSL = セキュリティ - 通信を暗号化、信頼性を確保
重要なポイント
- セキュリティファースト: SSL証明書、ファイアウォール設定は必須
- コスト管理: 小規模から始めて段階的にスケールアップ
- 監視・運用: 問題の早期発見と迅速な対応が重要
- バックアップ: データ損失に備えた定期的なバックアップ
これで基本的なWebサービス公開の流れが理解できたはずです。必要に応じて、各セクションを自社の運用ポリシーに合わせてカスタマイズしてください。