#はじめに
今回で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
通信をする際に必要となってきます。
#終わりに
画像の配信と高速化についてまとめました。システムのリスク分散という観点でも重要な技術であると感じました。