Setup AWS CloudFront distribution dengan S3 Origin

Sebelumnya kita sudah membuat static website dengan Amazon S3. Selanjutnya Anda akan mempelajari cara setup static website memakai AWS Cloudfront dengan S3.

AWS Management Console

Create distribution

Buka CloudFront console

Klik Create a Cloudfront distribution.

create distribution

Tentukan Origin domain dengan S3 Bucket yang sudah dibuat.

select s3 bucket

Pada bagian Allowed HTTP methods bisa kalian tentukan sendiri.

allow http

Pada Default root object isi dengan nama index document.

select object s3

Terakhir klik Create distribution dan tunggu proses Deploying sampai selesai

Test akses

test akses

AWS CLI

Create distribution

aws cloudfront create-distribution --origin-domain-name [bucketname].s3.[region].amazonaws.com --default-root-object index.html
[cloudshell-user@ip-10-6-8-192 ~]$ aws cloudfront create-distribution --origin-domain-name mytopan.s3.ap-southeast-2.amazonaws.com --default-root-object index.html 
{
    "Location": "https://cloudfront.amazonaws.com/2020-05-31/distribution/E1GWV2BXHHEF8I",
    "ETag": "E3RR0DNWCSDOEG",
    "Distribution": {
        "Id": "E1GWV2BXHHEF8I",
....

Apabila ada distribution config maka bisa gunakan perintah

aws cloudfront create-distribution --distribution-config file://config-dist.json

Selanjutnya tunggu proses deploying. Untuk mengetahui proses deploy bisa gunakan perintah

cloudfront wait distribution-deployed --id E1GWV2BXHHEF8I

Test akses

test akses cloudfront

Disable distribution

Cek ID distribution

aws cloudfront list-distributions
{
    "DistributionList": {
        "Items": [
            {
                "Id": "E1GWV2BXHHEF8I",
                "ARN": "arn:aws:cloudfront::478876543121:distribution/E1GWV2BXHHEF8I",
                "Status": "Deployed",
                "LastModifiedTime": "2023-01-12T07:26:33.410000+00:00",
                "DomainName": "d1g6zqctbawc9z.cloudfront.net",

Export distribution config

aws cloudfront get-distribution-config --id E1GWV2BXHHEF8I
[cloudshell-user@ip-10-6-29-96 ~]$ aws cloudfront get-distribution-config --id E1GWV2BXHHEF8I | jq '. | .DistributionConfig' > config-dist.json

Edit file config-dist.json

  },
  "PriceClass": "PriceClass_All",
  "Enabled": true, <-- edit dari true ke false
  "ViewerCertificate": {

Lalu update distribution config

aws cloudfront update-distribution --id E1GWV2BXHHEF8I --if-match E3RR0DNWCSDOEG --distribution-config file://config-dist.json
{
    "ETag": "E3LF2TJFMW9XL4",
    "Distribution": {
        "Id": "E1GWV2BXHHEF8I",
        "ARN": "arn:aws:cloudfront::478876543121:distribution/E1GWV2BXHHEF8I",
        "Status": "InProgress",

Delete distribution

[cloudshell-user@ip-10-6-29-96 ~]$ aws cloudfront delete-distribution --id E1GWV2BXHHEF8I --if-match E3LF2TJFMW9XL4