AWS/CloudFront
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-CDN
#contents
*概要 [#jb53e6e9]
CDNとしてコンテンツをキャッシュできる。全世界にキャッシュ...
*CloudFront 用語集 [#a1df3a3c]
|Distribution|CloudFrontの一番大きな管理単位|
|Origin|Distributionに複数配置可能。次のBehaviorsにて/pat...
|Behaviors|パスに対してどのoriginを割り当てるかの設定。pa...
|C Name|ランダムなxxx.cloudfront.netだとアクセスしづらい...
*cli [#bde5260c]
|一覧|aws cloudfront list-distributions |
|invalidation|aws cloudfront create-invalidation --distri...
*SSLでCNAMEを使う [#e54fb604]
+ヴァージニアのACMに独自証明書をインポートする。
https://recipe.kc-cloud.jp/archives/11408
+terraform
https://qiita.com/tos-miyake/items/f0e5f28f2a69e4d39422
https://tech.torico-corp.com/blog/aws-cloudfront-acm-ssl-...
*キャッシュについて [#k96dff5e]
**デフォルト設定 [#xe066138]
何もしないとデフォルトは24時間キャッシュ。クエリストリ...
PHPだと以下のキャッシュコントロールを入れるとキャッシュさ...
<?php
header("Cache-Control: no-cache");
header("Cache-Control: private");
date_default_timezone_set('JST');
echo date(DATE_RFC2822);
echo date("Y/m/d G:i:s");
**QueryString Forwarding and Caching [#y7893e5b]
|None|クエリーストリング無視。完全静的ページ向け|
|Forward all, chache based on whitelist|クエリーストリン...
|Forward all, cache based on all|クエリーストリング列も含...
**キャッシュかどうかの見分け方 [#efcf783f]
-ヘッダーにX-Cacheが付与されている。
|キャッシュがないとき|X-Cache: Miss from cloudfront|
|キャッシュ有通常ページ|X-Cache: Hit from cloudfront|
|キャッシュ有かつエラーページ|X-Cache: Error from cloudfr...
*IP制限 [#s5f5f63a]
Terraform使ってやるといい
https://www.terraform.io/docs/providers/aws/d/ip_ranges.h...
*キャッシュ無効化 [#o1377c31]
キャッシュ無効化は1000件までは無料。ワイルドカードで...
*Originの制限 [#be7adbae]
-CloudFront→OriginでSSLはダメ?(toolsがダメだったがWWWはO...
-Diguest認証外したらOK!
*Lambda@Edge [#w97af7b6]
仕掛けるタイミングはViewer Request/Origin Request/Origin ...
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda...
**注意点 [#ib2c1a40]
-一度紐づけると各リージョンにreplicaが作成されて、コンソ...
**ARN [#i2ecd302]
-バージョン付きARNじゃないとダメで、どこで取得できるのか...
default_cache_behavior {
# 中略
# lambda@Edge
lambda_function_association {
event_type = "viewer-request"
lambda_arn = aws_lambda_function.redirect.qualified...
}
}
**必要な権限 [#kae0c78a]
-assume role
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": ["lambda.amazonaws.com", "edgelambda....
},
"Effect": "Allow"
}
]
}
-以下の管理ポリシーはDocumentには記載があるが実際には付与...
AWSServiceRoleForLambdaReplicator
AWSServiceRoleForCloudFrontLogger
*Behaivor [#c663e372]
上から順番に一致なので、より細かいものを上に持ってくるべし
-これだとhoge/mogeは一つ目にマッチしてしまうので
hoge/*
hoge/moge/*
-逆にする
hoge/moge/*
hoge/*
*エラーページ [#j1d32a93]
*CloudFrondの障害など [#b081c793]
年1-2回レベルで発生しているらしいので、落ちた時の対策を...
*CloudFront用のrewrite設定 [#t30d767c]
**Wordpress [#g0dfc0ad]
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !CloudFront
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule ^(.*)$ http://%1クラウドフロントのURL$1 [R=3...
最後のNEはURLエンコーディングをしないということで、これを...
**pukiwiki [#v73f4e18]
もともとno-cacheなので大して負荷軽減にはなってないぞ。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !CloudFront
RewriteCond %{QUERY_STRING} !(cmd=edit|plugin=newpage|そ...
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule ^(.*)$ http://%1クラウドフロントのURL$1 [R=3...
同じくNE必須。
*ログの出力 [#u268976c]
ログを出力を有効にすると約10分毎にログがS3に生成される。P...
*CloudFront移行 [#p660159d]
同じcnameは同時に存在できないので、移行元で別名に変更後、...
*S3連携 [#ud453472]
-CloudFrontからのみアクセス可能にするためにはOAIを作成後...
"だがうまくいかない"
-OriginAccessIdentityを作成後に該当バケットのバケットポリ...
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/Clou...
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::アクセスさせたいバ...
}
]
}
**S3連携でDirectory Index実現 [#r1b67248]
-CloudFrontはDefault Root Objectが指定できるがドメイン直...
-S3もIndex.htmlなどの設定ができるが、S3直接アクセスのみ(C...
Lambda@Edgeのoriginトリガー(cache missの時に動く、/をinde...
#counter
終了行:
-CDN
#contents
*概要 [#jb53e6e9]
CDNとしてコンテンツをキャッシュできる。全世界にキャッシュ...
*CloudFront 用語集 [#a1df3a3c]
|Distribution|CloudFrontの一番大きな管理単位|
|Origin|Distributionに複数配置可能。次のBehaviorsにて/pat...
|Behaviors|パスに対してどのoriginを割り当てるかの設定。pa...
|C Name|ランダムなxxx.cloudfront.netだとアクセスしづらい...
*cli [#bde5260c]
|一覧|aws cloudfront list-distributions |
|invalidation|aws cloudfront create-invalidation --distri...
*SSLでCNAMEを使う [#e54fb604]
+ヴァージニアのACMに独自証明書をインポートする。
https://recipe.kc-cloud.jp/archives/11408
+terraform
https://qiita.com/tos-miyake/items/f0e5f28f2a69e4d39422
https://tech.torico-corp.com/blog/aws-cloudfront-acm-ssl-...
*キャッシュについて [#k96dff5e]
**デフォルト設定 [#xe066138]
何もしないとデフォルトは24時間キャッシュ。クエリストリ...
PHPだと以下のキャッシュコントロールを入れるとキャッシュさ...
<?php
header("Cache-Control: no-cache");
header("Cache-Control: private");
date_default_timezone_set('JST');
echo date(DATE_RFC2822);
echo date("Y/m/d G:i:s");
**QueryString Forwarding and Caching [#y7893e5b]
|None|クエリーストリング無視。完全静的ページ向け|
|Forward all, chache based on whitelist|クエリーストリン...
|Forward all, cache based on all|クエリーストリング列も含...
**キャッシュかどうかの見分け方 [#efcf783f]
-ヘッダーにX-Cacheが付与されている。
|キャッシュがないとき|X-Cache: Miss from cloudfront|
|キャッシュ有通常ページ|X-Cache: Hit from cloudfront|
|キャッシュ有かつエラーページ|X-Cache: Error from cloudfr...
*IP制限 [#s5f5f63a]
Terraform使ってやるといい
https://www.terraform.io/docs/providers/aws/d/ip_ranges.h...
*キャッシュ無効化 [#o1377c31]
キャッシュ無効化は1000件までは無料。ワイルドカードで...
*Originの制限 [#be7adbae]
-CloudFront→OriginでSSLはダメ?(toolsがダメだったがWWWはO...
-Diguest認証外したらOK!
*Lambda@Edge [#w97af7b6]
仕掛けるタイミングはViewer Request/Origin Request/Origin ...
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda...
**注意点 [#ib2c1a40]
-一度紐づけると各リージョンにreplicaが作成されて、コンソ...
**ARN [#i2ecd302]
-バージョン付きARNじゃないとダメで、どこで取得できるのか...
default_cache_behavior {
# 中略
# lambda@Edge
lambda_function_association {
event_type = "viewer-request"
lambda_arn = aws_lambda_function.redirect.qualified...
}
}
**必要な権限 [#kae0c78a]
-assume role
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": ["lambda.amazonaws.com", "edgelambda....
},
"Effect": "Allow"
}
]
}
-以下の管理ポリシーはDocumentには記載があるが実際には付与...
AWSServiceRoleForLambdaReplicator
AWSServiceRoleForCloudFrontLogger
*Behaivor [#c663e372]
上から順番に一致なので、より細かいものを上に持ってくるべし
-これだとhoge/mogeは一つ目にマッチしてしまうので
hoge/*
hoge/moge/*
-逆にする
hoge/moge/*
hoge/*
*エラーページ [#j1d32a93]
*CloudFrondの障害など [#b081c793]
年1-2回レベルで発生しているらしいので、落ちた時の対策を...
*CloudFront用のrewrite設定 [#t30d767c]
**Wordpress [#g0dfc0ad]
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !CloudFront
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule ^(.*)$ http://%1クラウドフロントのURL$1 [R=3...
最後のNEはURLエンコーディングをしないということで、これを...
**pukiwiki [#v73f4e18]
もともとno-cacheなので大して負荷軽減にはなってないぞ。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !CloudFront
RewriteCond %{QUERY_STRING} !(cmd=edit|plugin=newpage|そ...
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule ^(.*)$ http://%1クラウドフロントのURL$1 [R=3...
同じくNE必須。
*ログの出力 [#u268976c]
ログを出力を有効にすると約10分毎にログがS3に生成される。P...
*CloudFront移行 [#p660159d]
同じcnameは同時に存在できないので、移行元で別名に変更後、...
*S3連携 [#ud453472]
-CloudFrontからのみアクセス可能にするためにはOAIを作成後...
"だがうまくいかない"
-OriginAccessIdentityを作成後に該当バケットのバケットポリ...
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/Clou...
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::アクセスさせたいバ...
}
]
}
**S3連携でDirectory Index実現 [#r1b67248]
-CloudFrontはDefault Root Objectが指定できるがドメイン直...
-S3もIndex.htmlなどの設定ができるが、S3直接アクセスのみ(C...
Lambda@Edgeのoriginトリガー(cache missの時に動く、/をinde...
#counter
ページ名: