作成日
2022/07/27最終更新
2024/12/13記事区分
一般公開CloudFront
- Origin Access Identity (OAI)
- Restricting access to Amazon S3 content by using an origin access identity (OAI)
- S3 においてサポートされています。サポートされていない origin の場合は、後述の header 埋め込みを利用します。
- CloudFront 経由で S3 へのアップロードが可能です。Amazon CloudFront – Content Uploads Via POST, PUT, other HTTP Methods
- CloudFront Edge Location の Public IP を Origin 側でアクセス許可しておく必要があります。Locations and IP address ranges of CloudFront edge servers
- Origin は Public である必要があります。Using Amazon EC2 (or another custom origin)
- ALB を用いずに EC2 (Origin) を public にする構成。
- public な ALB (Origin) のバックエンドに EC2 を private に配置する構成。
- S3 Cross Region Replication との用途の違いに注意します。
- GeoIP で、アクセス元の country を特定し、Allow/Black list でアクセス制御できます。How can I restrict users in certain locations from accessing web content served by my CloudFront distribution?
- CloudFront Edge Location にアクセスするための Signed URL を API で発行可能です。
- S3 Pre-Signed URL と区別します。Choosing between signed URLs and signed cookies
- 似た仕組みに CloudFront の Signed Cookies が存在します。
- Signed URL → 個々のファイルに対して発行します。
- Signed Cookies → ユーザに対して発行します。複数のファイルに対するアクセスを一括で許可できます。Signed URL と異なり、CloudFront の URL を使い続けることができます。
- CloudFront でカスタム HTTP ヘッダーを挿入して Origin に通信できます。Adding custom headers to origin requests
- Origin 側では、HTTP ヘッダーの有無でアクセス制御が可能となります。
- 前述の OAI と異なり、S3 に限らず、任意の origin で活用できる仕組みです。
- HTTP ヘッダ、セッション Cookie、クエリストリング 等を key としたキャッシュが可能です。Controlling the cache key
- API Gateway のキャッシュと区別します。
- HTTP ヘッダを whitelist フィルタリングして Origin に選択的に連携できます。Selecting the headers to base caching on
- 動的なコンテンツと静的なコンテンツに対するキャッシュ設定を分けることで cache hit ratio を向上できます。Increasing the proportion of requests that are served directly from the CloudFront caches (cache hit ratio)
- 例えば、静的なコンテンツに対するキャッシュ設定においては、session cookie をキャッシュの key に含める必要はありません。
- cache hit ratio を向上させるために、一般に Date や User-Agent ヘッダーはキャッシュの key に含めないようにします。Caching content based on request headers
- Edge Function
- CloudFront distribution にアタッチする関数です。
- ユーザから近い Edge で実行されるため、遅延が小さくなります。
- 用途例
- request/response の書き換え。
- request のフィルタリング。
- 認証。
- Client を Viewer と表現し、Viewer Request/Response とよびます。
- Origin との通信を Origin Request/Response とよびます。
- CloudFront Function Customizing at the edge with CloudFront Functions
- JavaScript で記述します。
- Origin request/response は処理できません。
- HTTP リクエストの body は処理できません。
- Lambda@Edge よりもクライアントに近く、Edge Location で動作します。
- Lambda@Edge と組み合わせて動作させることができます。
- CloudFront Function で viewer request/response を処理し、Lambda@Edge で Origin request/response を処理。
- 用途例
- Cache key の normalization。
- ヘッダの差し替え。
- Lambda@Edge Customizing at the edge with Lambda@Edge
- NodeJS または Python で記述します。
- Regional Edge Cache で動作します。
- CloudFront Function と比較すると高機能です。
- CloudFront Function と比較すると低速です。
- Viewer/Origin request/response のすべてを処理できます。
- S3 origin における HTTP 307 Redirect response
- S3 を CloudFront の origin に設定すると
s3.amazonaws.com
が指定されます。s3.amazonaws.com
は us-east-1 リージョンを指します。
- 東京リージョンを指すエンドポイントは
s3-ap-northeast-1.amazonaws.com
です。 - S3 バケット名が全リージョンに反映されるためには、最大24時間かかります。
- その間に CloudFront が
s3.amazonaws.com
で、バージニア北部 us-east-1 リージョン以外のバケットにアクセスしようとした際に発生するエラーです。Why am I getting an HTTP 307 Temporary Redirect response from Amazon S3?
- その間に CloudFront が
- S3 を CloudFront の origin に設定すると
ElastiCache
- Redis
- Multi-AZ Replication 設定が可能です。Minimizing downtime in ElastiCache for Redis with Multi-AZ
- failover が可能です。
- Read Replica による read 性能の向上が可能です。
- データは永続化されます。
- バックアップおよびリストアも可能です。Backup and restore for ElastiCache for Redis
- Multi-AZ Replication 設定が可能です。Minimizing downtime in ElastiCache for Redis with Multi-AZ
- Memcached
- Multi-node による sharding で性能を向上させます。
- データは永続化されません。
- バックアップおよびリストアはサポートされません。
関連記事
- AWS EC2 インスタンスの選定方法準仮想化と完全仮想化 AWS のインスタンスタイプが準仮想化と完全仮想化のどちらの仮想化技術を採用したハードウェアであるかによって、使用できる AMI (OS) が異なるのは以下の理由によります。 準仮想化 ParaVirtualization (PV) において OS は自分が仮想化用のハードウェア上で動作していることを知っています。つまり仮想化用にカスタマイズされた専用の OS が必要になりま...
- OpenVPN で二つの VPC をつなぐための設定インターネット VPN (Virtual Private Network) には二拠点間の通信を暗号化する方式によって IPsec-VPN や SSL-VPN などがあります。OpenVPN は SSL-VPN の実装のひとつです。AWS VPC を二つ用意してそれらを OpenVPN で接続してみます。 VPC の構成 myvpc-1 (10.1.0.0/16) mysubnet-1-1 (10...
- Windows Server EC2 インスタンスへの CAL インストールWindows サーバを AWS EC2 インスタンスとして起動した後は、RDP 接続が必要となります。RDP 接続を行なうためには Remote Desktop Services (RDS) ライセンスが必要となります。 Windows Server のライセンスは、管理用途の RDS 接続を許可しています。その際に RDS ライセンスは不要です。ただし、[同時接続数が 2 という制限があります...
- AWS Lambda の基本的な使い方AWS Lambda はイベントドリブンな「関数」を登録できるサービスです。例えば S3 に画像がアップロードされたときにサムネイル用のサイズに加工する処理が記述された関数を登録できます。基本的な使い方をまとめます。 事前準備 関数の登録はブラウザで AWS コンソールにログインして行うこともできますが、本ページでは AWS C
- AWS 落穂拾い (Data Engineering)Kinesis Kinesis Streams データは 3 AZ にレプリケーションされます。Amazon Kinesis Data Streams FAQs 24 時間 (既定値) から 1 年までデータ保持できます。[Changing the Data Retention Period](https://docs.aws.amazon