Kubernetesのストレージ設計入門|PersistentVolume・PVC・StorageClassとEBSの活用

現場実践|Kubernetesストレージ設計
Kubernetesのストレージ設計入門|PersistentVolume・PVC・StorageClassとEBSの活用
「KubernetesでDBのデータを永続化したい」「PVとPVCの違いが分からない」——KubernetesのPersistentVolume・PersistentVolumeClaim・StorageClassの仕組みとAWS EBSとの連携を解説します。
💡 Kubernetesのストレージ設計はステートフルアプリケーションの運用で最重要なテーマ。PV・PVC・StorageClassの3者関係を理解することがKubernetes本番運用の鍵です。
1. PV・PVC・StorageClassの関係
PersistentVolume(PV)
実際のストレージリソース(EBS・EFS・NFS等)を表すオブジェクト。クラスター管理者が作成する。動的プロビジョニングではStorageClassが自動作成する。
PersistentVolumeClaim(PVC)
ユーザー(開発者)がストレージを要求するオブジェクト。「10GBのストレージが欲しい」という要求をPVCで宣言し、条件に合うPVに自動バインドされる。
StorageClass
ストレージのプロビジョナーと設定を定義するオブジェクト。PVCが作成されるとStorageClassが自動的にEBS等のストレージを作成する(動的プロビジョニング)。
2. EKSでEBSを使う設定(CSIドライバー)
# StorageClassの定義(EBS gp3)
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ebs-gp3
provisioner: ebs.csi.aws.com
volumeBindingMode: WaitForFirstConsumer
parameters:
type: gp3
encrypted: "true"
---
# PVCの定義
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: ebs-gp3
resources:
requests:
storage: 50Gi3. EBSとEFSの使い分け
| EBS | EFS | |
|---|---|---|
| アクセスモード | ReadWriteOnce(1つのPodから読み書き) | ReadWriteMany(複数のPodから同時読み書き) |
| 最適なユースケース | DB・単一Podのステートフルアプリ | 共有ファイルストレージ・複数PodでのCMS |
| パフォーマンス | 高い(gp3で最大16,000 IOPS) | スループット型(レイテンシーはEBSより高め) |
📌 この記事のポイント
- PVはストレージリソース・PVCはストレージ要求・StorageClassは動的プロビジョニングの定義という3者の関係
- EKSではAWS EBSのCSIドライバーをインストールしてStorageClassを設定するだけで動的プロビジョニングが実現
- EBSはReadWriteOnce(DB向け)・EFSはReadWriteMany(共有ファイル向け)で使い分ける
キャリアの疑問、一緒に解決しませんか?
Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




