Skip to content
Latchkey

Amazon S3とは?クラウドのためのオブジェクトストレージ

Amazon S3 (Simple Storage Service) はAWSのオブジェクトストアです: ファイル (object) をbucketに入れ、HTTP経由で読み戻します。極めて高い耐久性と、事実上無制限のスケールを持ちます。

S3は最も古く最も使われているAWSサービスの1つです。ディレクトリを持つfilesystemの代わりに、フラットなbucketにobjectを保存し、それぞれをkeyでアドレス指定します。非常に高い耐久性のために設計されており、バックアップ、静的アセット、data lake、そしてbuild artifactのデフォルトの置き場所です。

bucket、object、key

bucketはグローバルに名前付けされたコンテナ; objectはファイルとmetadata; keyはbucket内でのobjectの名前です。実際のフォルダはありませんが、keyのスラッシュがフォルダのようなビューを作ります。各objectは最大数テラバイトまで可能です。

耐久性とstorage classes

  • 頻繁にアクセスされるデータ向けのStandard。
  • めったに読まないが保持するデータ向けのInfrequent Access。
  • 安価な長期アーカイブ向けのGlacier tiers。
  • objectをtier間で自動的に移動するlifecycle rules。

アクセス制御

デフォルトでbucketはプライベートです。IAM policies、bucket policies、そして一時的な直接アクセス用のpresigned URLsでアクセスを付与します。パブリックホスティングには明示的な設定が必要で、それが偶発的なパブリックbucketが見出しを飾る理由です。

静的ウェブサイトの配信

S3は静的サイトを直接ホストでき、通常はCDN、HTTPS、エッジでのcaching のためにCloudFrontと組み合わされます。この組み合わせは、フロントエンドのbuildをデプロイする一般的で安価な方法です。

CI/CDでの役割

pipelineはS3を常に使います: build artifactやtest reportの保存、dependenciesのcaching、そしてbuildフォルダをbucketに同期して静的サイトをデプロイする。deploy jobがaws s3 syncを実行し、それからCloudFrontのキャッシュを無効化します。すべては長期のキーではなくIAM/OIDC roleで認証されます。

重要なポイント

  • S3はobjectをbucketに、keyでアドレス指定して、非常に高い耐久性で保存します。
  • storage classesとlifecycle rulesが、ホットデータ対コールドデータのコストを最適化します。
  • pipelineはS3をアーティファクトや静的サイトのデプロイに使い、しばしばCloudFrontでフロントします。

関連ガイド