이 애플리케이션은 단일 페이지 애플리케이션을 호스팅하기 위해 다양한 AWS 리소스를 생성합니다. 이 응용 프로그램에는 연락처 데이터를 데이터베이스에 저장하고 응용 프로그램 작성자에게 이메일을 보내는 문의 양식도 있습니다.
이 애플리케이션에 사용된 AWS 서비스.
이 데모에서는 추가적인 번거로움 없이 HTTPS 인증을 사용할 수 있도록 Amazon Route53으로 라우팅된 Namecheap 도메인 이름을 사용하고 있습니다. 이 링크를 따라가면 Namecheap을 Route53으로 리디렉션하고 SSL 인증서에 대한 ACM을 구성할 수 있습니다.
Amazon CloudFront에서 ACM 인증서를 사용하려면 미국 동부(버지니아 북부) 지역에서 인증서를 요청하거나 가져와야 합니다.
참고: S3 버킷 이름이 도메인 이름과 일치하는지 확인하세요. 예를 들어 내 도메인 이름이 newarc.io
이므로 버킷 이름을 newarc.io
로 구성했습니다.
https://benjamincongdon.me/blog/2017/06/13/How-to-Deploy-a-Secure-Static-Site-to-AWS-with-S3-and-CloudFront/
배포하기 전에 sample.config.json
파일에서 config.dev.json
생성하고 값을 설정합니다.
{
"BUCKET_NAME": "S3 bucket name. For example, mysite.com",
"TABLE_NAME": "DynamoDB table name",
"CONTACT_RECEIVED_TOPIC": "contact-received-email",
"FORWARD_EMAIL": "Email where you want to receive contact message",
"ACM_CERT_ARN": "arn:aws:acm:us-east-1:<AWS ACCOUNT>:certificate/<CERTIFICATION ID>",
"HOSTED_ZONE_ID": "Route53 Hosted Zone ID"
}
sls deploy
명령을 실행하여 변경 사항을 AWS에 배포합니다.
사이트별 변경 사항(Html, CSS, JS 등)을 푸시하려면
aws s3 sync app/ s3://<bucket name>
서비스를 배포한 후 사이트에 변경 사항을 푸시하는 경우. CloudFront 배포는 캐시된 콘텐츠를 업데이트하는 데 다소 시간이 걸립니다. CloudFront를 즉시 업데이트하려면 캐시를 invalidate
해야 합니다.
CloudFront 콘솔로 이동하여 이 서비스를 통해 생성된 배포 ID를 복사하고 다음 명령을 실행합니다. 다음 명령은 전체 캐시를 지웁니다. --paths
사용하여 선택 파일을 지울 수도 있습니다.
aws cloudfront create-invalidation --distribution-id <ID> --paths /*
자세한 내용은 여기에서 설명서를 확인하세요 - https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html
누군가 UI에서 문의 양식을 작성할 때. API는 데이터를 DynamoDB에 저장하고 구성된 SNS 주제에 메시지를 게시합니다. SNS 주제에는 메시지 세부 정보를 받고 싶은 곳에 이메일을 넣을 수 있는 이메일 구독도 있습니다.
서비스를 배포한 후 AWS로부터 구독 활성화를 위한 확인 이메일을 받게 됩니다. 이메일의 지침을 따르십시오.
자세한 내용은 여기에서 설명서를 확인하세요 - https://docs.aws.amazon.com/sns/latest/dg/sns-email-notifications.html
먼저 사이트 버킷 콘텐츠를 지우세요.
aws s3 rm s3://<bucket name> --recursive
애플리케이션 스택 제거
sls remove --profile <your profile> --aws-region <region>
MIT 라이센스
저작권 (c) 2021 다발 나가르