AWSにおけるWebストレージサービスである、Amazon S3のつまずきポイントが今回のテーマだ。S3はデータ耐久性が高いことで有名だ。実に、99.999999999%のデータ耐久性を達成するように設計されている。

 S3はEC2など他のAWSサービスと同様に、Webコンソール(Management Console)やAPIなどで、「バケット※1」を作成したり、バケット内にオブジェクト(ファイル)※2を作成・削除したりできる。また、S3に関しては様々なサードパーティのクライアントがあるので、そちらを利用して簡単に操作することも可能となっている。

※1 バケットはS3にファイルを保存する場所の単位。バケット名は全世界でユニークである必要がある。
※2 オブジェクトはS3に保存されるファイルの単位。S3バケット内にオブジェクトを保存するとそれぞれのオブジェクトにURLが付与される。1オブジェクトのサイズは5TBまで。

 簡単に操作できるとはいえ、初心者にはいくつかのつまずきポイントがあることは事実なので、今回もそこにポイントをしぼって解説したいと思う。

つまずきポイント1:地域の選択ミスで遅延が起きる

 S3を使用する場合、ユーザーは最初に自分のオブジェクトを保存するバケットを作成することになる。この最初ステップで誤ったリージョン※3を選択してしまうと、通信に遅延が発生してオブジェクトへのアクセスにストレスを感じてしまう。

※3 リージョンは、AWSで使用可能な地域の単位。一つのリージョン内に複数のアベイラビリティーゾーンが存在する。リージョンは全世界で8カ所(うち一つは米国政府専用)あり、任意の地域を選択してサービスを利用することができる。

 当然のようだが、初心者はこのミスをやってしまいがちだ。リージョンはプルダウンメニューから選択する。そのデフォルト値は米国のため、つい変更せずにバケットを作成してしまうのだ。ユーザーが日本に存在しているにもかかわらず、S3バケットが米国に設置されていれば通信が遅くなってしまう。

 バケットは作成後にリージョンを変更することができない。対策としては、バケットの作成時にリージョン選択を忘れないようにするしかない。

つまずきポイント2:設定ミスで誰でもアクセス可能に

 S3のバケットはオブジェクト単位に公開・非公開の設定をしたり、バケットごとにポリシー(バケットポリシーと呼ぶ)を設定して公開・非公開を設定したりすることができる。

 この設定はManagement Consoleのほか、サードパーティのツールなどから簡単に実施することができる。が、簡単にできるがゆえに、誤ってバケットを公開してしまうことがよくある。

 対策としては、バケットポリシーを使って、バケット単位にアクセス可能なアカウントを制限することを徹底するのがよい。バケットポリシーはJSON形式で記載することになるが、AWSではそのためのジェネレーターが提供されているので、決して難しいものではない。

次ページ以降はITpro Active会員(無料)の方のみお読みいただけます。