AWS CDN 練習小記
這篇 Blog 是搭配 AWS Users Group Taiwan Meetup 的分享題目 "AWS 初心者系列 - CDN - CloudFront 101"
簡報 URL https://bit.ly/sakana20210923
活動 URL https://awsugtw.kktix.cc/events/awsug-202109
AWS Users Group Taiwan Facebook https://www.facebook.com/groups/awsugtw
練習架構如下
個人管理的 CNAME 指向 AWS CloudFront 分佈, 來源為 AWS S3 服務
首先來建立 Origin Server
==== Origin Server - S3 =====
登入 Amazon S3 服務 https://s3.console.aws.amazon.com/s3/home (或是服務搜尋 S3 )
點選 Create bucket
輸入 Bucket 名稱: 這邊以 sakana20210910 為例 ( S3 名稱必須具唯一性 )
選取 AWS Region: 這邊我選 Asia Pacific ( Tokyo ) ap-northeast-1
因為是要進行 CDN 的練習實驗
這邊 取消勾選 Block all public access
勾選 I acknowledge that the current settings might result in this bucket and the object within becoming public.
這個動作就是將這個 S3 公開存取
其他按照預設值
點選 Create bucket
可以看到 Bucket 顯示在清單內
點選剛剛建立的 Bucket
點選 Upload 上傳檔案
可以使用拖曳的方式或是點選 Add files 或是 Add folder 來選取檔案或是資料夾
這邊我上傳一張 opensusetaiwan.png 為例子
點選 Upload 開始上傳
勾選剛剛上傳的檔案
點選 Actions -- > Make public
點選 Make public
點選 Close 關閉 Make public:status
然後點選剛剛上傳的檔案
點選 Object URL 或是在新分頁開啟 URL
就可以觀察到相關圖片
接下來因為之後 CNAME 會指向 AWS 的 CloudFront , 然後希望要有 HTTPS 的存取, 所以來設定憑證服務
==== 準備 AWS Certificate ====
登入 AWS Certificate Manager 服務
Region: N. Virginia (us-east-1)
點選 Get started
選取 Request a public certificate -- > 點選 Request a certificate
Domain name 的部份輸入自己控管的 Domain
例如 *.sakana.org
點選 Next
選取驗證方式 DNS validation
點選 Next
看看是否要加入 Tag
點選 Review
確認相關資訊
點選 Confirm and request
這個時候會出現要求驗證的 CNAME 以及相關的紀錄
在自己的 DNS 管理介面( Gandi 或是其他代理商 ) 設定相關紀錄
設定完成之後 -- > 點選 Continue
驗證時間大概需要 5 分鐘左右
驗證成功, Status 會顯示 Issued
再來就可以處理正主, 就是 AWS CDN 服務,也就是 CloudFront
==== 建立 CDN ====
登入 CloudFront 服務 ( 可以搜尋 CloudFront )
可以點選歡迎頁面的 Create a CloudFront distribution
或是先點選左邊功能表的 Distributions
再點選畫面右上角的 Create distribution
Origin 設定:
輸入或是選取 Origin domain
這邊可以選取剛剛建立的 S3
名稱的部份可以自定義
Default cache behavior 設定:
可以按照自行的環境進行設定
Cache key and origin requests
可以先按照預設
Settings 的 Price class 依照業務範圍來進行設定
點選 Create distribution
觀察相關資訊 與進行小測試
建立完成後, 點選剛剛建立分佈
觀察 Distribution domain name
可以使用 curl 指令 分別測試 S3 路徑以及 CloudFront 相關路徑
S3 路徑
CloudFront 路徑
進行 CNAME 的設定
接下來進行 CNAME 的設定, 理由有 2
實際上大多數, 不會直接使用 xxxxxxx.cloudfront.net URL 來使用, 而是用自己的 FQDN
可以使用 CNAME 指向不同的 CDN 服務來達成備援
設定相對應的 CNAME 紀錄
將要存取的 CNAME 紀錄設定到 CloudFront 的 Distribution domain name
例如 cdn.sakanamax.org 指向 d152ffnru702na.cloudfront.net
回到 CloudFront 的服務
點選剛剛建立的分佈
點選 General 頁籤內 Settings 的 Edit 按鈕
點選 Alternate domain name ( CNAME ) - optional 的 Add item 按鈕
輸入 CNAME
同步也可以選取 Custom SSL certificate ( 前面在 ACM 有設定 )與 Security policy
點選 Save changes
再次進行相關測試
使用 自訂的 FQDN 來進行存取
這樣又向 AWS 前進一步 :)
~ enjoy it
Reference:
厲害的同事筆記
建立 AWS CloudFront CDN 源站指向 GCP GCS 小記 - http://sakananote2.blogspot.com/2020/05/aws-cloudfront-cdn-gcp-gcs.html
Amazon CloudFront 主要特色 - https://aws.amazon.com/tw/cloudfront/features/
使用 curl 測試 CDN 小記 - http://sakananote2.blogspot.com/2020/03/curl-cdn.html
AWS Cloud Front 與 Cloudflare 排除特定 URL 快取小記 - http://sakananote2.blogspot.com/2019/10/aws-cloud-front-cloudflare-url.html
Amazon CloudFront 常見問答集 https://aws.amazon.com/tw/cloudfront/faqs/?nc1=h_ls
CloudFront 如何交付內容 https://docs.aws.amazon.com/zh_tw/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html
沒有留言:
張貼留言