インフラ レッスン1
インフラの基本
サーバー、ネットワーク、クラウドの全体像を学ぼう
サーバー・クライアントモデル
インターネットの通信はクライアント(ブラウザ等)がサーバーにリクエストを送り、サーバーがレスポンスを返す 「クライアント・サーバーモデル」で成り立っています。
┌──────────┐ リクエスト (HTTP) ┌──────────┐
│ │ ─────────────────────▶ │ │
│ クライアント │ │ サーバー │
│ (ブラウザ) │ ◀───────────────────── │ (Nginx等) │
│ │ レスポンス (HTML等) │ │
└──────────┘ └──────────┘
例:ブラウザで https://example.com にアクセスすると
1. DNSで example.com → IPアドレスに変換
2. TCP接続を確立(3ウェイハンドシェイク)
3. HTTPリクエストを送信
4. サーバーがHTMLを返す
5. ブラウザがHTMLをレンダリングWebアプリケーションでは、フロントエンド(クライアント)とバックエンド(サーバー)が この仕組みで通信しています。サーバーは1台で複数のクライアントからのリクエストを処理します。
ネットワークの基礎
サーバーとクライアントが通信するためには、いくつかの重要なプロトコルと仕組みを理解する必要があります。
IPアドレス
ネットワーク上の機器を識別する番号。IPv4(192.168.1.1)とIPv6(2001:db8::1)がある。
DNS(Domain Name System)
ドメイン名(example.com)をIPアドレスに変換する仕組み。インターネットの「電話帳」。
TCP(Transmission Control Protocol)
信頼性のある通信を保証するプロトコル。データの到達確認と再送制御を行う。
HTTP / HTTPS
Webの通信プロトコル。HTTPSはSSL/TLSで暗号化された安全な通信。
# DNSの名前解決を確認する
$ nslookup example.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Name: example.com
Address: 93.184.216.34
# ポート番号の一般的な割り当て
HTTP → 80
HTTPS → 443
SSH → 22
MySQL → 3306
PostgreSQL → 5432クラウド vs オンプレミス
サーバーの運用形態は大きくクラウドとオンプレミスに分かれます。
クラウド
- AWS、GCP、Azureなどのサービスを利用
- 初期費用が少なく、従量課金
- スケールアップ・ダウンが容易
- 物理サーバーの管理が不要
- 障害対応はプロバイダーが一部担当
オンプレミス
- 自社でサーバーを購入・管理
- 初期費用が大きいが、長期的にはコスト最適化可能
- カスタマイズの自由度が高い
- セキュリティポリシーを完全に自社で管理
- 障害対応はすべて自社で行う
# AWSでEC2インスタンスを起動する例(AWS CLI)
$ aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type t3.micro \
--key-name my-key-pair \
--security-group-ids sg-0123456789abcdef0 \
--subnet-id subnet-0123456789abcdef0
# GCPでVMインスタンスを作成する例
$ gcloud compute instances create my-server \
--zone=asia-northeast1-a \
--machine-type=e2-micro \
--image-family=ubuntu-2204-lts \
--image-project=ubuntu-os-cloudIaaS / PaaS / SaaS
クラウドサービスは提供する範囲によって3つのモデルに分類されます。
IaaS(Infrastructure as a Service)
仮想サーバー、ストレージ、ネットワークなどインフラを提供。OS以上は自分で管理。
例: AWS EC2, GCP Compute Engine, Azure VM
PaaS(Platform as a Service)
アプリケーションの実行環境を提供。サーバー管理はプロバイダーが担当。
例: Heroku, AWS Elastic Beanstalk, Google App Engine, Vercel
SaaS(Software as a Service)
完成したソフトウェアをサービスとして利用。インフラの知識は不要。
例: Gmail, Slack, GitHub, Notion
管理範囲の比較:
オンプレ IaaS PaaS SaaS
─────────────────────────────────────────────────
アプリ 自分 自分 自分 プロバイダ
データ 自分 自分 自分 プロバイダ
ランタイム 自分 自分 プロバイダ プロバイダ
ミドルウェア 自分 自分 プロバイダ プロバイダ
OS 自分 自分 プロバイダ プロバイダ
仮想化 自分 プロバイダ プロバイダ プロバイダ
サーバー 自分 プロバイダ プロバイダ プロバイダ
ネットワーク 自分 プロバイダ プロバイダ プロバイダまとめ
- Web通信はクライアント・サーバーモデルで成り立っている
- IPアドレス、DNS、TCP、HTTPがネットワーク通信の基礎
- クラウドは手軽に始められ、オンプレミスは自由度が高い
- IaaS / PaaS / SaaS はクラウドサービスの提供範囲が異なる
- 現代のWeb開発ではクラウドの利用が主流