静的プロビジョニング vs 動的プロビジョニング
S3 ファイルシステムのストレージをプロビジョニングする前に、EFS CSI ドライバーが Pod にストレージをアタッチする 2 つの方法と、このラボで一方を使用する理由を理解することが重要です。
EFS CSI ドライバーは、2 つの異なるアプローチを使用して Pod にストレージをアタッチできます:
- 動的プロビジョニング:
StorageClassを定義し、Pod のPersistentVolumeClaimがストレージを要求すると、ドライバーは自動的にオンデマンドで一致するPersistentVolumeを作成します。EFS CSI ドライバーの場合、これはStorageClassパラメータで参照されている既存の Amazon EFS ファイルシステムに基づいて、ドライバーが各クレームに対して新しい EFS アクセスポイントを作成することを意味します。 - 静的プロビジョニング: あなた(またはあなたのインフラストラクチャ自動化)が、事前にストレージバックエンドとそれを直接指す
PersistentVolumeを作成します。その後、PersistentVolumeClaimは、オンデマンド作成をトリガーする代わりに、その既存のボリュームにバインドします。
EFS CSI ドライバーの動的プロビジョニングパスは、StorageClass のファイルシステム ID に対して Amazon EFS の CreateAccessPoint API を呼び出します。Amazon S3 Files ファイルシステムは別の S3 Files サービスに存在し、その EFS 動的プロビジョニング API を通じて作成または解決されないため、動的プロビジョニングは S3 Files ファイルシステムに対してボリュームを作成できません。
S3 Files の場合、ファイルシステムは事前に作成され(私たちの自動化がこれを行いました)、静的にプロビジョニングされた PersistentVolume を通じてマウントされます。これは、AWS が Amazon EKS での S3 ファイルシステムのマウントについてドキュメント化しているプロビジョニングモデルです。
ユースケースで Amazon S3 オブジェクトストレージをファイルシステムとして動的にオンデマンドでプロビジョニングする必要がある場合は、代わりに Mountpoint for Amazon S3 モジュールを使用してください。Mountpoint for Amazon S3 は S3 バケットをファイルシステムとして公開し、独自の CSI ドライバーを通じて静的プロビジョニングと動的プロビジョニングの両方をサポートします。トレードオフは、Mountpoint が S3 Files が提供する完全な NFS ファイルシステムセマンティクス(書き込み後の読み取り一貫性やファイルロックなど)ではなく、S3 オブジェクトセマンティクス(ファイル操作を S3 API 呼び出しに変換する)を提供することです。
S3 Files に静的プロビジョニングを使用する理由を理解したので、S3 ファイルシステム用の PersistentVolume を静的にプロビジョニングし、製品画像の保存に使用するように UI コンポーネントを変更する準備が整いました。