はじめに
本メモは、『AWSではじめるインフラ構築入門 第2版』で学習した内容を整理し、AWS各サービスの理解を深めるためにまとめたものです。
内容に誤りがあった場合は、ご指摘いただけますと幸いです。
通信の流れ
SSH接続(サーバ管理・運用)
1. 名前解決(Route53)
- Route53でドメイン名を管理し、各サービスのIPアドレスへ名前解決
- 名前解決はVPC外のユーザーだけでなく、VPC内の各工程(踏み台サーバー、ロードバランサー、NAT、キャッシュサーバー、Webサーバー)でも呼ばれる
2. SSH接続
- VPC(仮想プライベートクラウド)
- Internet Gateway(インターネット接続用)
- パブリックサブネット
- 踏み台(Bastion)サーバー
- プライベートサブネット
- Webサーバー
- SSHは踏み台サーバー経由でWebサーバーへ接続
HTTPS(Webアクセス)
1. 名前解決(Route53)
- Route53でドメイン名を管理し、各サービスのIPアドレスへ名前解決
- 名前解決はVPC外のユーザーだけでなく、VPC内の各工程(踏み台サーバー、ロードバランサー、NAT、キャッシュサーバー、Webサーバー)でも呼ばれる
2. HTTPS(Webアクセス)
- VPC
- Internet Gateway
- パブリックサブネット
- ロードバランサー
- NAT(必要に応じて)
- 外部APIへのリクエスト
- 外部のWebサーバーからデータ取得
- S3や外部リポジトリへのアクセス
- キャッシュサーバー(ElastiCacheなど)
- Webサーバーが アプリケーション内でCacheを参照
- CacheにヒットすればDB/APIを呼ばずにデータを返す
- Cacheに無ければDB/APIに問い合わせ、結果をCacheに書き込む
- プライベートサブネット
- Webサーバー
- RDS(データベース)
3. その他サービス
- VPC内でSES(メール送信)、S3(ストレージ)などを利用
全体の流れ
- Route53で名前解決
- SSHは踏み台サーバー経由でWebサーバーへ
- 外部からのWebアクセスはロードバランサー経由でWebサーバーへ
- WebサーバーはRDSやElastiCache、S3、SESなどAWSサービスと連携
接続フロー
SSH接続
HTTPS接続
各サービスのまとめ
VPC(Amazon Virtual Private Cloud)
仮想ネットワークを構築するサービス。
CIDR(Classless Inter-Domain Routing)
IPアドレスとネットワークの範囲を表すための記法。
例:192.168.0.0/24
- 最初の3つのブロック(24ビット)がネットワーク部
- 残りの8ビットがホスト部(ネットワーク内の個々の端末やデバイスを識別)
| サブネット名 | ネットワークアドレス | 使用可能範囲 (最初〜最後) | ホスト数 |
|---|---|---|---|
| public01 | 10.0.0.0/20 | 10.0.0.0 〜 10.0.15.255 | 4096 |
| public02 | 10.0.16.0/20 | 10.0.16.0 〜 10.0.31.255 | 4096 |
| private01 | 10.0.64.0/20 | 10.0.64.0 〜 10.0.79.255 | 4096 |
| private02 | 10.0.80.0/20 | 10.0.80.0 〜 10.0.95.255 | 4096 |
アベイラビリティゾーン(Availability Zone)
- ap-northeast-1a
- ap-northeast-1c
※複数のAZを利用することで、高可用性(HA)を確保できる
サブネット
- VPC内のIPアドレス範囲を分割した単位
- 例として以下の構成:
-パブリックサブネット:2つ
-プライベートサブネット:2つ
インターネットゲートウェイ(Internet Gateway)
- VPCで作成されたネットワークとインターネット間の通信を可能にする
- VPCにアタッチして使用する
※ IGW は「インターネットとの窓口」
NATゲートウェイ(NAT Gateway)
- プライベートサブネットからインターネットへの通信を可能にする
- インターネットからプライベートサブネットへのアクセスは許可しない
- パブリックサブネットに作成する
- 冗長性を保つため、パブリックサブネット1・2の両方に作成するのが推奨
- NATの仕組み:プライベートIPとパブリックIPを変換
- Elastic IPを割り当てる
- インターネットゲートウェイ(IGW)がないと動作しない
※ NAT Gateway は「プライベートサブネットがインターネットに出るための出口」であり、外部からはアクセス不可
※ 冗長構成にすることで、片方のAZが落ちても通信可能
Elastic IP
- リソースにパブリックIPを持たせるためのサービス
ルートテーブル(Route Table)
- サブネット間の通信経路を設定する
パブリックサブネット用
- パブリックサブネット1,2 ←→ インターネットゲートウェイ
- パブリックサブネット1,2 ←→ プライベートサブネット1,2
プライベートサブネット用1
- プライベートサブネット1 ←→ NATゲートウェイ1
- プライベートサブネット1 ←→ パブリックサブネット1
プライベートサブネット用2
- プライベートサブネット2 ←→ NATゲートウェイ2
- プライベートサブネット2 ←→ パブリックサブネット2
セキュリティグループ(Security Group)
- 外部からのアクセス制限を設定するための仮想ファイアウォール
※ セキュリティグループは サブネット単位ではなく、インスタンス単位で適用
踏み台サーバ用セキュリティグループ(Bastion用)
- タイプ: SSH
- インバウンドルール: 0.0.0.0/0(任意の場所からの接続を許可)
※ Bastionサーバーは外部アクセス用のため、SSHポート(22番)を全てのIPから許可することが多い
※ 実運用では、アクセス元IPを限定してセキュリティを強化するのが推奨
踏み台サーバー(Bastion)作成(EC2)
- 全てのリソースに接続するための入り口として踏み台サーバーを用意
- EC2(Amazon Elastic Compute Cloud) を使って構築
- クライアントがWebサーバーにアクセスするときは直接通らず、Bastion経由で接続
- SSH接続に必要な キーペア を事前に作成
- 上記の踏み台サーバ用セキュリティグループ(Bastion用)を適用
ロードバランサー(ELB / Elastic Load Balancing)
- 種類: Application Load Balancer(ALB)
-
主な役割:
- Webサーバーを複数用意してスケールアウトし、性能を向上
- クライアントからのリクエストをWebサーバーに分散
- SSL処理(HTTPS対応)
- 不正リクエストの対策
-
補足:
- ロードバランサーにはSSL処理などを高速化する専用仕組みがある
- クライアントがアクセスする場合は、インターネットゲートウェイ → ロードバランサー → Webサーバー の流れで通信が行われる
ロードバランサー用セキュリティグループ
-
タイプ:
- HTTP
- HTTPS
- インバウンドルール: 0.0.0.0/0(任意の場所からのアクセスを許可)
Webサーバー1,2(EC2で作成)
- キーペア: ログイン用に必要(踏み台サーバー作成時に作成したものを使用)
-
SSH接続:
- 踏み台サーバー経由で多段接続する
- ローカルの
.ssh/configに設定して利用する
-
補足:
- Webサーバーへの接続は、SSHで踏み台サーバー経由の場合と、HTTPSでアクセスされる場合がある
データベースサーバー(RDS / Amazon Relational Database Service)
- 配置: プライベートサブネット1、2にサブネットグループを作成して配置
- 用途: Webサーバーからのアプリケーションデータの永続保存
ストレージ(S3 / Amazon Simple Storage Service)
-
特徴:
- EC2のEBS(Elastic Block Store)よりも耐久性・拡張性に優れる
- オブジェクトストレージとして利用
-
設定例:
- バケット名はグローバルで一意にする必要がある
- IAMロールを作成して、EC2に適用することでアクセス権を付与
独自ドメイン名とRoute 53
-
独自ドメイン名
- AWS上で管理するカスタムドメイン
-
Route 53
- AWSのDNSサービス
- ホストゾーンを作成してドメイン名とIPアドレスを紐付け
- パブリックDNS: 外部アクセス用(例: ロードバランサー、踏み台サーバー)
- プライベートDNS: VPC内部アクセス用(例: Webサーバー、RDS)
ホストゾーン
-
ホストゾーンの例:
- パブリック:
aws-intro-sample-xxxxxx.com - プライベート:
home
- パブリック:
パブリックDNS
- 外部からの問い合わせに対して名前解決を行う
- 利用対象:
- 踏み台サーバー(Bastion)
- ロードバランサー(ALB / ELB)
プライベートDNS
- VPC内部からの問い合わせに対して名前解決を行う
- 利用対象:
- 踏み台サーバー(Bastion)
- Webサーバー1,2
- DBサーバー(RDS)
Amazon SES(Amazon Simple Email Service)
メールの送信
- IAMユーザーを使用して認証し、SESに接続する
- WebアプリケーションやEC2からメールを送信可能
メールの受信
- メールを受信した際に「アクション」と呼ばれる処理が実行される
- 東京リージョンでは送信のみ利用可能(受信は非対応)
- 受信に対応しているのは、バージニア北部リージョンなど
ドメイン設定
- SESでメールを送受信するために、ドメイン名を作成して認証する
ElastiCache
-
サービス: Redis、Memcached
-
主な構成要素:
- クラスター: キャッシュの論理的な単位
- シャード: データを分割して配置する単位(スケールアウト用)
- ノード: 実際のキャッシュサーバー(インスタンス)
-
配置: プライベートサブネットに置くことが推奨
- Webサーバーやアプリケーションからのみアクセス可能にすることでセキュリティを確保
※ ElastiCacheは Webサーバーが参照する内部キャッシュ として利用
※ LBの前ではなく、Webサーバー側でキャッシュとして動作する
※ シャードやノードを使ってスケールアウトや可用性を確保
CloudWatch
- ダッシュボード: 各種メトリクスを可視化して監視できる画面
- ウィジェット: ダッシュボード上に表示するグラフやテキストなどの単位
- メトリクス: CPU使用率やネットワーク通信量などの監視データ
Billing and Cost Management
- AWSの利用料金やコストを管理するサービス
- 請求情報の確認、予算設定、コスト分析が可能
- CloudWatchと組み合わせることで、利用状況に応じたアラート設定も可能
終わりに
AWSを理解するには、ネットワークの基礎知識が土台として重要だと感じました。
「ネットワークはなぜつながるのか」と合わせて読むことで、理解がさらに深まります。
検証時期:2025年10月