AWS と GCP の主要ストレージサービスを比較してみた(S3 / Cloud Storage ほか)
GCP×AWS 比較シリーズ第7弾。今回は ストレージ全体 を俯瞰する。
ストレージも「一口にストレージ」と言っても オブジェクト・ブロック・ファイル・アーカイブ と種類が分かれる。まず全体地図を描き、主役の S3 ↔ Cloud Storage を詳しく見ていく。
1. ストレージ全体マップ
| 種類 | 用途 | AWS | GCP |
|---|---|---|---|
| オブジェクト | 画像/ログ/バックアップ/データレイク | S3 | Cloud Storage(GCS) |
| ブロック | VMの起動ディスク・DB領域 | EBS | 永続ディスク(Persistent Disk) |
| ファイル(NFS等) | 複数VMで共有するファイル | EFS / FSx | Filestore |
| アーカイブ(寒冷) | めったに読まない長期保管 | S3 Glacier | GCS Nearline/Coldline/Archive |
| ローカル一時 | 高速だが揮発する作業領域 | インスタンスストア | ローカルSSD |
ポイント:AWS は Glacier が別サービスっぽく見えるが、GCP では **同じ Cloud Storage の「ストレージクラス」**として扱う(後述)。
2. 主役:S3 ↔ Cloud Storage(オブジェクトストレージ)
最もよく使う。構造はほぼ同じ。
2-1. 用語の対応
| 概念 | AWS(S3) | GCP(Cloud Storage) |
|---|---|---|
| 入れ物 | バケット | バケット |
| 名前空間 | グローバルで一意 | グローバルで一意 |
| データ単位 | オブジェクト(キー) | オブジェクト(名前) |
| URI | s3://bucket/key |
gs://bucket/object |
| 配置 | リージョン | ロケーション(リージョン / デュアル / マルチ) |
| アクセス制御 | バケットポリシー / IAM / ACL | IAM(推奨)/ ACL |
| 公開ブロック | Block Public Access | Public Access Prevention |
| 署名付きURL | Presigned URL | Signed URL |
| バージョン管理 | バージョニング | オブジェクトバージョニング |
| ライフサイクル | ライフサイクルルール | ライフサイクル管理 |
| イベント通知 | S3 Event → Lambda/SQS/SNS | Pub/Sub 通知 / Eventarc |
2-2. ストレージクラス(料金階層)
「よく読む→安いが取り出し料が高い」の階層。ここのマッピングが頻出。
| 特性 | AWS(S3) | GCP(Cloud Storage) |
|---|---|---|
| 標準(高頻度) | S3 Standard | Standard |
| 低頻度(月数回) | S3 Standard-IA | Nearline(30日〜) |
| かなり低頻度(四半期) | S3 Glacier Instant Retrieval | Coldline(90日〜) |
| 長期アーカイブ | S3 Glacier / Deep Archive | Archive(365日〜) |
| 自動最適化 | S3 Intelligent-Tiering | Autoclass(自動でクラス移動) |
大きな思想差:GCPはどのクラスでもミリ秒でアクセスできる(Archiveでも即時取り出し可)。AWSのGlacier/Deep Archiveは取り出しに時間がかかることがある(取り出しリクエストが必要)。
一方でGCPの寒冷クラスは 最低保存期間(Nearline 30日 / Coldline 90日 / Archive 365日)があり、早く消すと違約金的に課金される。
2-3. 整合性・性能
| AWS S3 | GCP GCS | |
|---|---|---|
| 整合性 | 強整合(read-after-write) | 強整合 |
| スループット | 自動スケール | 自動スケール |
| 大容量転送 |
aws s3 / DataSync / Snowball |
gcloud storage(高速並列)/ Transfer Service |
3. 基本的な使い方:Cloud Storage(実践)
gsutil または新しい gcloud storage を使う(新規は gcloud storage 推奨)。
3-1. バケット作成
gcloud config set project MY_PROJECT
gcloud services enable storage.googleapis.com
# バケット作成(ロケーションとクラスを指定)
gcloud storage buckets create gs://my-unique-bucket \
--location=asia-northeast1 \
--default-storage-class=STANDARD \
--uniform-bucket-level-access
3-2. アップロード / ダウンロード / 一覧
gcloud storage cp ./file.txt gs://my-unique-bucket/ # アップロード
gcloud storage cp gs://my-unique-bucket/file.txt . # ダウンロード
gcloud storage ls gs://my-unique-bucket/ # 一覧
gcloud storage rm gs://my-unique-bucket/file.txt # 削除
# ディレクトリ同期(S3 sync 相当)
gcloud storage rsync -r ./dir gs://my-unique-bucket/dir
3-3. 公開設定・署名付きURL
# 特定オブジェクトを一時的に共有(署名付きURL・1時間)
gcloud storage sign-url gs://my-unique-bucket/file.txt --duration=1h
# IAMで読み取りを付与(バケット単位)
gcloud storage buckets add-iam-policy-binding gs://my-unique-bucket \
--member=user:foo@example.com --role=roles/storage.objectViewer
3-4. ライフサイクル(自動でクラス移動 / 削除)
{
"rule": [
{ "action": {"type": "SetStorageClass", "storageClass": "NEARLINE"},
"condition": {"age": 30} },
{ "action": {"type": "Delete"},
"condition": {"age": 365} }
]
}
gcloud storage buckets update gs://my-unique-bucket --lifecycle-file=lifecycle.json
3-5. AWS(S3)だと
aws s3 mb s3://my-unique-bucket --region ap-northeast-1
aws s3 cp ./file.txt s3://my-unique-bucket/
aws s3 cp s3://my-unique-bucket/file.txt .
aws s3 ls s3://my-unique-bucket/
aws s3 sync ./dir s3://my-unique-bucket/dir
aws s3 presign s3://my-unique-bucket/file.txt --expires-in 3600
CLIの語感(
cp/ls/rm/sync/rsync)はほぼ同じ。URIスキームがs3://↔gs://で対応。
4. ブロックストレージ:EBS ↔ 永続ディスク
VM(EC2 / Compute Engine)にアタッチする起動・データディスク。
| 概念 | AWS(EBS) | GCP(Persistent Disk) |
|---|---|---|
| 標準SSD | gp3 / gp2 | pd-balanced / pd-ssd |
| 高IOPS | io1 / io2 | pd-extreme |
| HDD | st1 / sc1 | pd-standard |
| スナップショット | EBS スナップショット | PD スナップショット(リージョン跨ぎコピー可) |
| 複数VMから共有 | io2 の Multi-Attach(限定) | リードオンリーで複数アタッチ可 |
| リサイズ | オンライン拡張可 | オンライン拡張可 |
| 最新の高速世代 | — | Hyperdisk(性能をディスク単位で指定) |
# GCP:ディスク作成してVMにアタッチ
gcloud compute disks create my-disk --size=100GB --type=pd-balanced --zone=asia-northeast1-a
gcloud compute instances attach-disk my-vm --disk=my-disk --zone=asia-northeast1-a
5. ファイル共有:EFS/FSx ↔ Filestore
複数のVM/コンテナから NFSでマウントして共有 するファイルシステム。
| AWS | GCP | |
|---|---|---|
| NFS共有 | EFS | Filestore |
| Windows(SMB)/特殊 | FSx(Windows / Lustre 等) | (Filestore の各ティア / パートナー製品) |
| 用途 | 共有ファイル・コンテンツ・HPC | 共有ファイル・GKE 永続ボリューム |
ざっくり EFS ≒ Filestore。AWS の FSx のような OS/用途特化の品揃えは AWS の方が広い。
6. どれを選ぶ?
| こういうデータ | AWS | GCP |
|---|---|---|
| 画像/ログ/バックアップ/データレイク | S3 | Cloud Storage |
| VMの起動ディスク・DB領域 | EBS | 永続ディスク |
| 複数VMで共有するファイル | EFS | Filestore |
| めったに読まない長期保管 | Glacier / Deep Archive | GCS Coldline / Archive |
| 超高速・揮発OKの作業領域 | インスタンスストア | ローカルSSD |
7. まとめ
| 種類 | AWS | GCP | 覚え方 |
|---|---|---|---|
| オブジェクト | S3 | Cloud Storage |
s3://↔gs://、クラスは Standard/Nearline/Coldline/Archive |
| ブロック | EBS | 永続ディスク | gp3↔pd-balanced、新世代は Hyperdisk |
| ファイル | EFS / FSx | Filestore | NFS共有はほぼ同じ |
| アーカイブ | Glacier | GCSの寒冷クラス | GCPは別サービスでなく同一バケットのクラス |
3行まとめ
- S3 ≒ Cloud Storage。CLIの語感もほぼ同じで移行しやすい。
- アーカイブの扱いが思想差:AWSは Glacierという別物+取り出し時間、GCPは 同じバケットのクラスで即時取り出し(ただし最低保存期間あり)。
- ブロックは EBS↔永続ディスク、ファイル共有は EFS↔Filestore とほぼ1対1。
関連記事:
- [GCP のリソース階層を AWS と比較する(Organization / Folder / Project 編)]
- [GCP と AWS で比較する IAM とポリシー継承の仕組み]
- [GCP CLI を AWS CLI と比較する(gcloud / gsutil / bq 編)]
- [GCP の API 管理サービスを AWS API Gateway と比較する]
- [Cloud Run と AWS Fargate を比較する(コンテナ実行基盤編)]
- [AWS と GCP の主要コンピューティングサービスを比較してみた]