本ページではS3の基本を書き残します(当時の資格勉強向けのまとめに近い)。
S3はAmazon Simple Storage Serviceの略であってAWSのストレージサービスです。耐久性が非常に高く(イレブンナイン)、容量も無限に使うことが出来ます。なお、可用性(連続運用)は99.99%程度のことなので、たまにアクセス出来ないことがあるかもしれません。
では色々と書きます。
適宜更新します。
特徴
容量制限なし(1ファイルは5TBまで)。格納場所は「バケット」であり「URL形式」で「オブジェクト」にアクセスが可能。データのアップロードは無償であるが、ダウンロードはそれなりの費用が発生する。
静的WEBサイトにも向く。
例:http://bucket-name.s3-website-Region.amazonaws.com
→ 実運用ではcloud frontやroute53を組み合わせることが多い。なお、cloud forntを使えば、世界中にedgeロケーション活用によってグローバルなアクセスにも強くなる。ただ、AWSはダウンロード時に料金が発生するモデルのため、たくさんアクセスがあれば、その分コストがかかる。
- 強い整合性モデルのため、保存/変更直後のアクセスでも問題なく読み取れる。
- オブジェクトロックが出来る。
→ 一定時間 or 無期限に削除/上書きをガードする。 - 署名付きURL
→ 一定時間共有ができる。
→ S3がPrivateでもインターネットからアクセス出来る。 - S3イベントの通知先は?
→ SNS, SQS, Lambda(eventBridge不要)
種類
S3には色々な種類がある。
長期バックアップ向けであれば、S3の利用コスト(容量コスト)を抑えることが出来るが、実際に取り出すとなると、リクエスト料金(取出し料金)というのが別途発生する。用途に応じてしっかりと管理したい。
- Standard
→ 標準のS3。ストレージコストは一番高いけど取出しリクエストは不要。 - Standard IA
→ 低頻度アクセス(保管料安いけど取出しにはコストかかる)。 - One Zone-IA
→ 低頻度アクセス&低重要度(ログデータ等)。 - Glacier
→ より低頻度アクセスで長期保存向け。 - Glacier Deep Archive
→ もっと低頻度。 - Intelligent-Tiering
→ 標準クラスがいいのかGlacierがいいのかわからんよ!って時に使う。自動でクラスを決めてくれるし取出し料金はかからない。けど自動管理するためのコストは別途発生しちゃう。
バケットのライフサイクルポリシー設定で、例えばファイルのアップロードから100日後に「Standard」→「Glacier」といったことも可能。
※取出しリクエストにも種類があって、例えばGlacierの場合は一番早くて数分であるが、一番高くなる。次に標準取出しが3~5時間で料金そこそこ。最後に大容量取出しが5~12時間で取出し料金は一番安い。(Glaciier Deep Archiveは最大で48時間かかる。)
※色々なプランがありますけど、一般的なクラウドストレージサービス(DropboxやGoogleDriveなど)よりは高いです。あくまでもS3サービスと親和性が高いため、S3サービスと組み合わせて使うのが一般的ですね。
※けど、長期保存が前提(Glacier Deep Archive)でリージョンコストの安価なオハイオ州に保存するのであれば、1TBのデータで年間$12(約1500円)の維持コストです。まぁ、万が一にもインターネットを経由してダウンロードしようものなら、1回で$90(約1万2000円)かかっちゃいますけど・・・。これがAWS(クラウド)ロックイン・・・。
権限
デフォルトはプライベートである。
- アクセスコントロール(ACL)
→ 所有者とか全員とか、簡単にアクセス設定が出来る。オブジェクト単位に設定できる。 - バケットポリシー
→ 詳細なアクセス設定をJSONで定義する。例えばIPアドレス制限、特定ユーザに対する特定操作のみ許可など・・・・。(具体的な書き方は他サイト様を参考にするか、AWSサポート様に相談すれば教えてくれます。契約プランにもよる。)
(番外編) クライアントツールにcyberduck
Cyberduckと呼ばれる無料でも使えるクライアントツールを使うと、S3バケットに対するファイル操作をGUIで行えます。
※Windows or Macがサポートされています。
大容量ファイルのアップロード・ダウンロードでもs3のapiを利用したチェックサムも実施してくれるため安心です。さらにマルチパートアップロードにも対応しているため、大容量ファイルであっても分割してアップロードしてくれます。(AWSマネジメントコンソールからのアップロードは上限がありま、大容量ファイルのアップロードは失敗します。)
※Cyberduckで、S3バケットにアクセスするためにはアクセスキーやシークレットキーが別途必要です。
まとめ
AWS S3に関して駆け足で書きなぐりました。S3が、どんなものであるのか感じてもらえれば幸いです。また色々と試しながら更新していきます。
最後までご覧いただき、ありがとうございました。
コメント