Q1:如果您非常確定您的對象的壽命很長,那麼使用CloudFront緩存可能會持續1年。您可以使用Web控制檯始終無效的對象或通過使用腳本是這樣的:
#!/bin/sh
aws configure set preview.cloudfront true
INVALIDATION_ID=$(date +"%S")
INVALIDATION_JSON="{
\"DistributionId\": \"<YOUR_DISTRIBUTION_ID>\",
\"InvalidationBatch\": {
\"Paths\": {
\"Quantity\": 1,
\"Items\": [
\"/*\"
]
},
\"CallerReference\": \"$INVALIDATION_ID\"
}
}"
aws cloudfront create-invalidation --cli-input-json "$INVALIDATION_JSON"
請注意,如果您需要失效,那麼你就不能invalide用戶的瀏覽器緩存。所以我只會選擇像文件那樣的高級設置,其中我絕對肯定他們不會改變(例如,視頻)。
我發現根據Google的建議選擇我的緩存時間非常有用。你會find some input here。但是,我不會很難緩存一個SPA:我會假設你經常會在那裏發生變化。
Q2:我認爲將Route 53 TTL設置爲更高數字是最佳做法。請記住,您無法如此快速地切換DNS。通常在DNS切換之前,請提前幾天將TTL降低到較低的數字。由於您使用的是AWS,對於Alias-Resources,這應該不會成爲一個問題,因爲DNS交換機沒有麻煩。
一般來說,我同意你的方法。你犧牲了一些靈活性,但它通常是值得的。
謝謝@christian。我有一些關於CloudFront設置的問題,我在這裏發佈:http://stackoverflow.com/questions/43343759/confused-with-minimum-maximum-and-default-ttl-in-cloudfront –