【初心者必見】Amazon S3について
投稿日: 2021/03/29
こんにちは、高橋です。
Amazon S3はAWSのサービスの中で最も古くからあるサービスで、最もよく使用されているサービスです。 実際当社のお客様の中でAmazon EC2を利用していないお客様はいても、Amazon S3を利用されていない お客様はいないと言えるほどよく利用されているサービスとなります。
本コラムでは誰もが利用するAmazon S3についてご紹介いたします。
Amazon S3とは?
Amazon S3の正式名称はAmazon Simple Storage Serviceであり、名前の通りストレージサービスとなります。
Amazon S3はクラウド型のオブジェクトストレージであり、クラウドとオブジェクトストレージが持つ以下の特徴があります。
容量無制限
Amazon S3には容量の制限はありません。そのため、通常のストレージとは異なり、空き容量を気にせず、いくらでもデータを保存することができます。
高い耐久性
Amazon S3にデータを保存すると、実際にはデータは複数の地理的に異なるデータセンター内に保存されるため、 洪水等の自然災害が発生してもデータは失われず、99.999999999%と他ではあまり見ることのない高い耐久性を備えています。
従量課金制で安価
Amazon S3の料金は基本的にストレージの使用量、リクエスト数、データ転送量に対して課金が行われ、 0.025USD/GB(2021/3時点の東京リージョンの価格)と非常に安価にデータの保存を行うことができます。
S3の用途はファイルやログの保管、データのバックアップ先など、静的なファイルの保存の用途の他に、 静的ウェブサイトのホスティングといったWebサーバとしての役割、データの生成に伴いプログラムを 起動させたい場合のトリガーの役割等、単なるデータの保存場所を超えて利用することができます。
また、S3はこれまで結果整合性のみをサポートしていましたが、2020/12に強い一貫性がサポートされたことで、 これまで以上にさまざまな用途で利用されていくことが予想されます。
Amazon S3の種類
Amazon S3は2021/3時点で下記の様な種類があります。
ストレージクラス | 説明 | 耐久性 | 可用性(設計上) |
---|---|---|---|
S3 標準 | 複数のAZにオブジェクトが保存され、低レイテンシーかつ高スループット | 99.999999999% | 99.99% |
S3 Intelligent-Tiering | アクセスパターンが変化したときに4つのアクセス階層の間でオブジェクトを移動し、自動的にコストを最適化 | 99.999999999% | 99.99% |
S3 標準 - 低頻度アクセス | バックアップ、アーカイブ用途で標準より価格が安い | 99.999999999% | 99.9% |
S3 1 ゾーン - IA | オブジェクトの保存先は単一AZとなるが価格が安い | 99.999999999% | 99.5% |
S3 Glacier | アーカイブ用途で価格が安い | 99.999999999% | 99.99% |
S3 Glacier Deep Archive | データの取り出しに半日はかかるが最も価格が安い | 99.999999999% | 99.99% |
実際に利用する場合は、アクセスに求められる性能とアクセス頻度を考量して選択する必要があります。
Amazon S3の機能
Amazon S3には主に以下の様な機能があります。
暗号化
Amazon S3ではS3バケットのデフォルトの暗号化をオンにすることで、以降そのバケットにデータを保存した場合は自動的に暗号化されます。
アクセス制御
Amazon S3ではバケットポリシーとACLによってきめ細かくアクセス制御を行うことができます。 バケットポリシーはバケット単位でアクセス権限を設定し、アカウント内のIAMユーザはもちろん、クロスアカウントでアクセスしてくるユーザに対してデータのアップロードや削除等のアクションの制御を 掛けるのに利用することができます。ACLはバケットにも設定可能ですが、主にオブジェクト(ファイル)単位でアクセス制御をする場合に利用します。
バケットポリシーを設定する場合の注意点としては誤ってポリシーを設定すると AdministratorAccess権限を保有するIAMユーザでも一切S3バケットにアクセスできなくなってしまい、 ルートアカウントからしか解除できなくなってしまうので、バケットポリシーを使用する場合は 慎重にポリシーを設定する必要があります。
バージョニング
バージョニングを有効にするとS3バケット内でオブジェクトの世代管理が行われます。このため、過去の更新前のデータが必要になったり、誤ってオブジェクトを削除してしまった場合でも、オブジェクトを復元することができます。
レプリケーション
S3ではバケット内のオブジェクトを他のバケットへレプリケーションすることができます。レプリケーションは同じリージョンのバケットにも、他のリージョンのバケットにも実施することができます。また複数のリージョンのバケットに同時にレプリケーションを実行することもできます。
また、レプリケーション設定でフィルターを設定することが可能なため、1つのバケット内で重要なオブジェクトのみをレプリケーションすることもできます。
ライフサイクル管理
S3ではライフサイクルを設定することでバケット内の一定期間が経過したオブジェクトを他のS3バケットに移動させたり、削除したりすることができます。また、バージョニングを有効にしているバケットにライフサイクルを設定することで、一定期間が経過した古いバージョンを削除することもできます。
イベント
バケットへのオブジェクトのアップロードや削除といったイベントをトリガーとして、事前に指定したAmazon SNS、SQS、Lambdaを呼び出して様々な処理を行うことができます。例えば、売り上げデータを毎日営業の終了後S3バケットにアップロードし、それをトリガーとして自動的にAmazon RDSやRedShiftといったデータベースにデータを取り込む等の処理を行うことができます。
静的ウェブサイトホスティング
静的コンテンツであれば専用のWebサーバを立てなくても、Amazon S3をWebサイトとして使用することが可能です。また、Amazon Route 53と組み合わせることで独自ドメインでWebサーバとして利用することができます。ただ実際にWebサーバとして利用する場合は、性能、価格の点からAmazon CloudFrontと組み合わせて利用することをお奨めします。
まとめ
今回はAmazon S3の種類と機能について説明しました。
Amazon S3はデータに求められるアクセスの頻度、気密性、可用性に対して、各種機能を利用することで対応することができます。そのため、実際に利用する場合はデータの特性に合わせて最適なストレージクラス、機能を使用しましょう。
CTCは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。
- 関連コラム