アップロードとダウンロード
S3バケットにファイルをアップロード・ダウンロードする方法はマネジメントコンソールを使用する方法とCLIを使う方法がある。ツールやプログラムから操作するにはAPIやSDKを使用する。
マネジメントコンソールを使用する場合は、ドラッグ&ドロップもしくはポイントとクリックの操作でアップロードできる。ドラッグ&ドロップはGoogle ChormeとFirefoxブラウザのみのサポート。
S3には全てのファイルタイプをアップロードできるが、アップロードできるファイルサイズには制限がある。アップロードのファイルサイズ制限は、マネジメントコンソールからは160GBまで。それ以上はSDKやAPIを使う。
様々なアップロード
ファイルをクライアントからアップロードするには、様々な方法がある。
- APIやSDK
APIやSDKを使うとサーバーパーティ製のツールを使ってファイル操作できるようになる。使用にはIAMユーザーでアクセスキーとシークレットアクセスキーを発行し、利用したいツールに設定。 - マルチパートアップロード
マルチパートアップロードを使用するとオブジェクトをパーツに分解し、1つのセットをしてアップロードできる。アップロード中はパーツとして表示され、全てがアップされると再びオブジェクトになる。100MB以上のファイルはマルチパートアップロードを使用することが推奨されている。なぜなら、通常のリクエストやアップロードにかかる料金はかかるが、マルチパートアップロード機能を使うことにおける独自の課金はかからない。
マネジメントコンソールやCLIでは大きなファイルを操作するときに、マルチパートアップロードに切り替わる。 - AWS Transfer for SFTP
AWS Transfer for SFTPは、SFTPを使用してファイルを転送できるサービス。SFTPツールでなくSFTPサーバーを提供するサービス。SFTPサーバーエンドポイントを設置することで、サードパーティー製などのSFTPツールが使えるようになる。初期費用はかからないが、SFTPサーバーを使用している期間とデータ転送量(アップロード及びダウンロード)に対して課金される。 - AWS DataSync
AWS DataSyncはオンプレミスのストレージサービスとAWSのストレージサービス(EC2やS3)との大量のデータ移動を想定したサービス。コピーした量に対して料金がかかる。 - その他
S3とクライアントを繋ぐ方法として、S3バケットをオンプレミスのストレージのように扱えるAWS Storage Gateway(ハイブリットクラウドストレージサービス)がある。
余談
大規模データのやり取り
PB(ペタバイト)やEB(エクサバイト)単位のような非常に大きなデータ通信のアップロードは、物理的にAWSとデータのやり取りをする。
AWS Snowball(HDDにデータを入れて送る方法)
AWS Snowball Edge(データの加工処理もできる)
AWS Snowmobobile(トレックで配送する方法)
がある
ブロックパブリックアクセス
バケット単位で全てのユーザーにアクセス許可をするかどうかを決定する機能。
バケットポリシーやユーザーポリシーで全員がアクセスをできるように設定していても、ブロックパブリックアクセスがブロックする設定ならば、アクセスできなくなる。バケットを全ユーザーに公開する際は、とても慎重にならなければならないため、このようなバケット単位での設定が必要になる。