项目简介
前端使用React,将使用S3托管静态网站,使用cloudfront代理
后端使用Python,将使用ECS发布项目
域名在Godaddy购买,现托管到Route53
1. 域名托管
在Route53创建Hosted Zone,创建成功后,会有NS records,将这些NS records更新到godaddy的Domain DNS manage里。
注意:如果godaddy之前有CNAME,MX这些记录,一定要先备份,右上角有导出,可以先导出,之后修改了DNS manage之后,再将这些记录添加到Route53里,否则会影响邮件等功能(如果有的话)!
image.png
2. HTTPS访问
在ACW里require certifier,填写你要用的域名或者子域名,之后会有对应的CNAME,可以点击右上的按钮,自动添加到Route53.
image.png
3. 前端静态文件发布
创建S3 bucket,由于cloudfront不允许代理public的bucket,所以在设置S3 bucket权限的时候不能设置为public。
image.png
创建后添加如下权限
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowCloudFrontServiceOnlyPrincipal",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mysonsgroup-website/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::296855284431:distribution/E175Y2EONAZ9G1"
}
}
}
]
}
4.创建Cloudfront代理前端页面
在Cloudfront里Create Distributions,Origin domain选择第三步创建的S3 bucket
image.png
Domain name填写第二部ACM里用到的域名,Custom SSL certificate就选择第二部创建的ACM
image.png
5.ECS发布后端API
由于我开发中使用了docker,所以计划发布用ECR。先用docker build image将后端代码打包成docker image,然后在ECS里点击左侧Amazon ECR -> Repositories -> Create Repositories
image.png
ECS Task definitions创建 task, image选择上面的image
在ECS Clusters创建service, container选择上面创建的task, image选择上面创建的image, Load balancer type选择 ALB。
最后在router53添加接口子域名的 A record 到上面创建的ALB
网友评论