【随時更新】UdemyでAWS実践:EC2によるWebサーバー構築とRoute53の基礎
連載記事
- 前回:【随時更新】UdemyでAWS実践:ゼロからインフラ基礎を習得する学習ログ
- 今回:EC2によるWebサーバー構築とRoute53の基礎(本記事)
はじめに
前回の記事ではネットワークの基礎を整理した。
今回は、実際に仮想サーバーを構築し、Webサイトを公開するまでの工程に必要な「EC2」および「Route53」に関する知識をまとめる。
1. EC2 (Elastic Compute Cloud)
AWS上に仮想サーバーを構築するサービス。
構成要素
- インスタンス:AMI(テンプレート)から生成された仮想サーバー本体。
- AMI (Amazon Machine Image):インスタンス起動に必要なOSや設定情報が含まれたテンプレート。
- インスタンスタイプ:CPU、メモリ、ストレージなどのスペック定義。スペックに比例して料金が上昇する。
ストレージ
| 種類 | 特徴 | 主な用途 |
|---|---|---|
| EBS (Elastic Block Store) | 高可用性と耐久性を持つ。停止してもデータが保持される永続ストレージ。 | OS、DB、永続性が必要なデータ |
| インスタンスストア | インスタンス専用の一時ストレージ。停止・削除(ターミネート)でデータが消失する。 | キャッシュ、一時ファイル |
2. サーバー接続とセキュリティ
SSH (Secure Shell)
手元のPCとサーバーをセキュアに接続する通信プロトコル。
- 接続の仕組み:サーバー側で sshd(SSHデーモン)というプログラムが作動し、接続を待ち受けていることで操作が可能になる。
- RLogin:Windows環境で利用されるターミナルソフト。
公開鍵認証
SSHログイン時に行われる認証方式。
- 公開鍵:サーバー側に設置する(南京錠の役割)。
- 秘密鍵:ユーザー側が保持する(pemファイル)。これを持つ本人だけが解錠できる。
ポート番号
同一コンピューター内で通信を行うプログラムを識別するためのアドレス。
- SSH:22
- HTTP:80
3. Webサーバーソフトウェア:Apache
EC2をWebサーバーとして機能させるためのソフトウェア。
- Apache (Apache HTTP Server):オープンソースのWebサーバーソフトウェア。HTTPリクエストに対しデータの送受信を担う。
- httpd:Linux上で動作するApacheのサービス名。
- yum:Linuxのパッケージ管理ツール。
4. ファイアウォール(セキュリティグループ)
AWSではセキュリティグループがファイアウォールの役割を担う。
- インバウンド:外部からサーバーへ入ってくる通信。
- アウトバウンド:サーバーから外部へ出ていく通信。
5. 固定IPとDNS
Elastic IPアドレス
通常、インスタンス起動時にランダムに割り振られるパブリックIPアドレスを固定する機能。
- 注意点:インスタンスに関連付けられ、かつ起動している間は無料だが、停止中などは課金対象となる。不要時は「アドレスの解放」が必要。
DNS (Domain Name System)
ドメイン名をIPアドレスに変換するシステム。
- Route53:AWSが提供するDNSサービス。ネームサーバーの役割を担う。
- ネームサーバー:ドメイン名とIPアドレスの紐づけ情報を保持するサーバー。
- フルリゾルバ:ユーザーに代わってネームサーバーへ問い合わせを行うサーバー。
注釈:本来はRoute53でドメインとIPの紐付けを行うべきだが、今回はドメイン購入が必要となるため、座学としての理解に留め、実際の設定作業は行わずパブリックIPでのアクセス確認としている。
6. Webサーバー構築の基本フロー
- EC2インスタンスの設置:AMI・インスタンスタイプの選択。
- SSH接続:秘密鍵を使用してログイン。
- Apacheのインストール:yum を使用して httpd を導入。
- ファイアウォール設定:セキュリティグループでHTTP(80番)を許可。
- Route53設定(概念理解のみ):取得したドメインとパブリックIPを紐づける工程。※今回はドメイン未取得のため未実施。
学習のまとめ・気づき
- セキュリティグループとOS内の設定(sshd等)の両方が正しく動作して初めて通信が成立することを再認識した。HTTP通信はこういう構造になっているんだと改めて認識できた
次回やりたいこと
- RDSを利用したデータベースサーバーの構築