はじめに
今回で4回目のクラウド・インフラ技術編です。
前回、TCP/IP等ネットワーク通信の基礎についておさらいしました。今回はS3及びCloudFrontを用いて画像配信サービスを作ることをまとめました。
今回も参考にしたサイトはこちらです。
インフラ設計において重要な観点
S3及びCloudFrontを活用した画像配信サービスを考え前に、インフラ設計の考え方を整理します。
下記に図で簡単にまとめています。
インフラ構築は、運用保守しやすく安定稼働させることが重要なポイントです。そのための項目は5つあります。
- 可用性
- 運用保守性
- セキュリティ
- 性能・拡張性
- 移行性
となります。
今回はこの中から性能拡張性を高める目的で、S3及びCloudFrontによる画像配信についてまとめます。
S3及びCloudFrontによる画像配信
S3とは
S3とはAWSのサービスの一つです。Simple Storage Serviceの略称となります。
クラウド型のオブジェクトストレージサービスです。オブジェクトストレージとは、オブジェクト(ファイルなど)単位で出し入れが可能なストレージです。
S3へ画像の保存を行うことのメリットとしては下記が挙げられます。
- Webサーバーのストレージ容量不足を防ぐ
-
HTMLへのアクセスと画像アクセスを分けることで負荷分散 - サーバーの台数を増やしやすくする
- コンテンツ配信サービスから配信することで、画像配信を高速化
次に、重要概念を三つまとめます。
- バケット:オブジェクトの保存場所
- オブジェクト:データ本体、
URLが付与 - キー:オブジェクトの格納
URLパス
実際にS3を使うべきシーンについて例が下記です。
- 静的コンテンツ(画像)の配信
- バッチ連携用のファイル置き場:バッチは定期的に実行するプログラム
- ログなどの出力先:定期的に
S3にログを送る - 静的ウェブホスティング
CloudFrontについて
次に、CluodFrontについてです。
CloudFrontはAWSにおけるCDN(Contents Delivery Network)サービスです。コンテンツファイルをサーバー(今回ではS3)から直接配信せず、CDNを介してユーザーに配信します。
メリットとしては、
- サーバーの負荷軽減
- ネットワークレイテンシ(遅延時間)の削減
等が挙げられます。
今回は、S3とCloudFrontを使って以下のような構成で構築したいと思います。
元々は、WordPress上に画像を保存していたものを、S3へ格納+CloudFrontで配信する形にしたいと思います。ネットワークの構成としては下記となります。
Certificate Manager について
Certificate Managerとは、AWSにおけるサービスでSSL/TLS証明書を簡単に作成、管理できるようにするものです。
SSLサーバー証明書は、Webサーバーの持ち主が実在していることを証明書です。
HTTPS通信をする際に必要となってきます。
終わりに
画像の配信と高速化についてまとめました。システムのリスク分散という観点でも重要な技術であると感じました。

