AWSとは何か — EC2・S3・RDSをJavaエンジニア目線で整理
はじめに
AWSはAmazon Web Servicesの略で、Amazonが提供するクラウドコンピューティングサービスです。
「サーバーを自前で用意せず、必要な分だけクラウド上で使う」という考え方です。
SES・受託・自社開発、どの現場でもAWSが使われるケースが増えており、Javaエンジニアとしても基礎知識は必須になりつつあります。
なぜAWSを知るべきか
| 理由 | 詳細 |
|---|---|
| 案件の多さ | AWS前提のインフラ構成が多い |
| 単価への影響 | AWSの経験があるだけで応募できる案件が増える |
| フルスタック志向 | バックエンド(Java)+ インフラ(AWS)で市場価値が上がる |
よく使われるサービス概要
AWSには200以上のサービスがありますが、Javaエンジニアが最初に覚えるべきは以下の5つです。
| サービス | 役割 | Javaでの用途 |
|---|---|---|
| EC2 | 仮想サーバー | Spring Bootアプリのデプロイ先 |
| S3 | ファイルストレージ | 画像・CSVのアップロード/保存 |
| RDS | マネージドDB | MySQLやPostgreSQLをクラウドで運用 |
| IAM | 権限管理 | AWSサービスへのアクセス制御 |
| VPC | ネットワーク | EC2やRDSを配置するネットワーク空間 |
EC2(Elastic Compute Cloud)
一言で言うと: クラウド上の仮想サーバー
ローカルPCやオンプレのサーバーと同じ感覚で使えますが、必要なときだけ起動してコストを抑えられます。
【イメージ】
ローカル: 物理サーバーを買って自前で管理
EC2: Amazonのデータセンターにある仮想サーバーを借りる
Spring BootアプリをJarファイルにビルドして、EC2にデプロイするのが典型的な使い方です。
S3(Simple Storage Service)
一言で言うと: 容量無制限のファイル置き場
画像・PDF・CSV・ログファイルなど、あらゆるファイルを保存できます。
【イメージ】
外付けHDDの代わりに、インターネット上のストレージを使う
URLでアクセスできるため、フロントエンドから直接画像を取得できる
JavaアプリからAWS SDKを使ってS3にファイルをアップロード/ダウンロードする構成が多いです。
RDS(Relational Database Service)
一言で言うと: クラウド上のマネージドデータベース
MySQLやPostgreSQLをAWSが管理してくれるサービスです。バックアップやパッチ適用を自動で行ってくれます。
【イメージ】
ローカルのMySQL: 自分でインストール・設定・バックアップ管理
RDS: インフラ部分をAWSに任せて、SQLの実行だけに集中できる
Spring BootからはJDBCやJPAで接続するため、ローカルDBとの切り替えは設定ファイル(application.properties)を変えるだけです。
Javaバックエンドの典型的なAWS構成
[クライアント]
↓
[EC2: Spring Boot App]
↓ ↓
[RDS: MySQL] [S3: 画像・ファイル]
この3サービスの組み合わせが、Javaバックエンドの基本構成です。
まとめ
| サービス | 覚え方 |
|---|---|
| EC2 | クラウド上のサーバー(Spring Bootをここで動かす) |
| S3 | クラウド上のファイル置き場 |
| RDS | クラウド上のデータベース |
| IAM | AWSの権限管理 |
| VPC | EC2・RDSを置くネットワーク空間 |
次の記事ではEC2を実際に操作する手順を解説します。