概要
OS・ネットワークの基礎はある程度わかる社会人2年目のITエンジニアが、
AWSでバックエンド付きポートフォリオサイトを公開しようとしてつまずいた点を整理します。
使った構成
- フロントエンド
- S3
- CloudFront
- バックエンド
- ECS
- RDS
フロントエンド編
S3 + CloudFront で構築。
GitHub Actions で CI/CD を引くまで大きな壁は感じなかったため、ここでは割愛します。
バックエンド編
壁1: VPCが何なのかわからない
VPCが何のためにあるのかが最初は理解できませんでした。
AWSの各サービスが「仮想マシンの上で動いている」イメージしかなく、
VPCも仮想マシン内のルーターのように通信を制御するものだと思っていました。
学び: VPCは「社内ネットワーク」に近い
VPCは「AWS上の仮想ネットワーク」です。
社内ネットワークに置き換えるとイメージしやすかったです。
| 仮想ネットワークの構成要素 | 社内ネットワークでのイメージ | 用途のざっくり説明 |
|---|---|---|
| Subnet | 部署/フロアごとのネットワーク | 公開/非公開を分けるセグメント |
| Route Table | ルーティングルール | どの経路に流すか決める |
| Internet Gateway | インターネットへの出口 | パブリック通信の出入口 |
| Load Balancer | 受付(振り分け装置) | 入口を一本化して分散する |
| Security Group | サーバー単位のファイアウォール | 許可する通信だけ通す |
| NAT Gateway | 社内の共通出口 | プライベートから外部へ出すためのNAT |
学び: VPCが必要なサービスがある
S3 や CloudFront などは VPC 外でも使えます。
一方で、ECS や RDS などは VPC 前提の設計が基本です。
この違いは
- 準マネージドサービスかフルマネージドサービスか
という違いにあるという認識で理解が深まりました。
壁2: 思っていたより請求される
Web API を公開するために構築して4日ほど動かしたところ、約1.6USDの請求が発生しました。
「無料枠でほぼゼロのはず」と思っていたので、予想外でした。
学び: AWSは運用のしやすさをお金で買うプラットフォーム
AWSは各サービスの責務を分離して、
- セキュリティ
- オブザーバビリティ
- スケーラビリティ
- 可用性・冗長性
を比較的簡単に担保できるようにしています。
その代わり、常時課金されるリソースが多くなりやすいという実感を持ちました。
対策: 小規模なら別構成も検討する
私は自宅サーバー(小型PC)と独自ドメインを持っているので、
ポートフォリオ規模のプロジェクトは Cloudflare + 自宅サーバーで運用する方が
コストは抑えられると判断しました。
まとめ
今回の経験で「AWSは何を解決するためのプラットフォームか」が見えてきました。
これからAWSに触れる初学者の参考になればうれしいです。