15.1 AWS S3

Amazon S3(Simple Storage Service)はフルマネージドなオブジェクトストレージサービスで、おそらくAWS上でITインフラを構築する際には必ず利用することになるでしょう。ユースケースも幅広く、データレイクの構築から、ログデータのアーカイブや、アプリケーションで用いるデータのバックアップ、データ交換の基盤など広く使われています。

S3を操作するために公開されているAPIに互換性を持つ競合のオブジェクトストレージ製品も珍しくなく、業界において大きな存在感を持っています。もちろんS3自体のアップデートも続いており、日々のニュースやAWSが2012年から毎年開催するに実施するカンファレンス re:Invent で発表を楽しみにしているユーザーも少なくありません。実際に恩恵を受けるケースも多く、たとえば業務系の基幹システムでも、2018年にAWS Transfer for SFTPが発表されてからSFTPで直接S3にアップロードできるようになったことにより、SFTPサーバーを取り除いてコストや障害ポイントを減らせたといった例があります。探せばこれ以外のエピソードもたくさん見つかるでしょう。

主な制約事項は、執筆時点(2021年12月)では最大オブジェクトサイズが5TB 1 、バケット名はグローバルで一意であるため、すでに利用されている名称が使えないこと(そのため、開発・本番環境で区別するため dev-oreilly-bucketprod-oreilly-bucket など環境を示す接頭辞をつける体系を取ることも多い)などいくつか存在します。まずは使って慣れることが学習にとって一番の近道です。この節ではGoによる基本的な操作方法を学びましょう。 ...