AWS TRAINING COURSE
---LESSON 04---
初めての人にお勧めしたい
ストレージサービス「Amazon S3」
これまでAWSの全体像について概要を説明してきたが、今月からはAWSの主要なサービスを一つずつピックアップして、機能や用途、効果などを中心に紹介していく。まずはAWSの数あるサービスの中からストレージサービスである「Amazon S3」(Simple Storage Service)を取り上げる。Amazon S3はAWSの初期のころから提供されているサービスで、AWSの中核のサービスだ。
AWSの中核のサービス
Amazon S3
前号に続いて講師を担当しますAWSジャパンの宇賀神です。本稿ではストレージサービスである「Amazon S3」(Simple Storage Service)を取り上げます。Amazon S3はファイルを保存したりほかの人と共有したりするためのサービスであり、今年の3月で15周年を迎えたAWSの中でも長い歴史があります。
Amazon S3は単体での利用はもちろん、ほかのAWSのサービスと組み合わせて利用されることも多い、AWSの中核となるサービスです。現在は100兆個を超えるオブジェクトを保存しており、あらゆる業界のお客さまに幅広いユースケースで利用いただいています。
Amazon S3はオブジェクトストレージという種類のストレージであり、格納するデータを「オブジェクト」という概念で扱います。オブジェクトには実際に保存するデータのほかにもオブジェクトに一意に割り当てられる「キー」という概念を持っています。そのキーにひも付いたデータにアクセスして操作をします。
常に必要な容量を無制限に利用可能
イレブンナインの高い耐久性も実現
Amazon S3は通常のストレージとは違い、スケーラビリティを持っています。皆さんはサーバーを構築する際や、身近な例ではPCを購入する際に、今後どれくらいのサイズのファイルを保存するかを考え、それに足りる容量を持つストレージを用意するかと思います。そして当初の想定に反してストレージの容量が足りなくなると、新たにストレージを用意してサイズの拡張をするでしょう。
しかしAmazon S3には容量に制限はなく、ストレージのサイズを事前に決めたり余分な容量を確保しておいたりする必要はありません。ファイルを保存したら使った分だけ料金が発生する仕組みなので、無駄なコストを負担することなく常に必要な容量のストレージが利用できるのです。
またAmazon S3はイレブンナイン(9が11個)、すなわち99.999999999%の耐久性と99.99%の可用性を実現するように設計されており、ファイルを安心して保存・管理することができます。
この耐久性は既にここで解説したアベイラビリティーゾーン(AZ)の概念を利用して高められています。Amazon S3にファイルを置くと、標準の設定ではリージョンにある最低三つのAZにある複数のデバイスに冗長してファイルが保存されます。
この耐久性は、例えばAmazon S3に1千万個のファイルが格納されている場合、一つのファイルが壊れる予想平均発生率が1万年に1度という非常に高いレベルを実現しています。
知識不要でWebサイトが構築可能
組み合わせて幅広いユースケースに対応
ではAmazon S3はどのように利用されているのでしょう。例えばWebサイトでのコンテンツ配信、データのバックアップ、災害対策、ビッグデータ分析のためのデータレイクなどさまざまな用途に活用いただいていますが、ここではWebサイトでのコンテンツ配信というユースケースを深掘りしていきます。
Amazon S3は通常のストレージとは違い、サービス自体に静的なWebサイトをホスティングする機能があります。この機能を使うことでWebサイトを簡単に公開でき、WebサイトそのものにAmazon S3のサービスが持つ高い耐久性と可用性を適用できます。
静的なWebサイトをオンプレミスで構築するにはHTML、CSS、JavaScript、画像といった静的ファイルを作り、サーバー上にNginxなどでWebサーバーを構築して静的ファイルを公開するための設定を行います。さらにサーバーへのリクエストを振り分けるロードバランサーも必要です(図の左)。このようにWebサイトの構築には多くの作業が生じるばかりか専門の知識も求められます。サーバーに何か問題が生じたら障害復旧などの運用作業も発生します。
企業においてWebサイトを公開する目的は、自社のビジネスに価値をもたらすことです。それには顧客へ効果的に訴求できる静的コンテンツの作成が重要であり、Webサーバーそのものに手間や時間をかける必要はありません。しかし従来の方法ではサーバーの準備や公開後の運用といった、本来の目的とは異なる部分に多くの手間と時間をかけなければなりません。
そこでAmazon S3を利用すればWebサーバーを構築する必要もなくなり、数分もあればできるいくつかの簡単な設定だけでWebサイトをホスティングして公開できます。Webサイトのエンドポイントも自動で作成されるので、ドメインを取得する必要もありません(図の右)。独自のドメインを利用したい場合はDNSサービスである「Amazon Route53」と組み合わせて利用すれば設定できます。
またJavaScriptからAPIを呼び出してWebサイトにデータを表示するといった動的なWebサイトを作りたい場合は、今後のレッスンで紹介する「Amazon API Gateway」や「AWS Lambda」などのサービスと組み合わせることで、サーバーを管理する必要もなくWebサイトのコンテンツを拡充できます。
Amazon S3は単体でも利用できますが、AWSのほかのサービスと連携して使うことで、用途や目的に応じたWebサイトをインフラの知識がなくても構築できるのです。