美文网首页
AWS 发布React + Python项目 + Godaddy

AWS 发布React + Python项目 + Godaddy

作者: 六月圈圈 | 来源:发表于2023-04-24 15:54 被阅读0次

    项目简介

    前端使用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

    相关文章

      网友评论

          本文标题:AWS 发布React + Python项目 + Godaddy

          本文链接:https://www.haomeiwen.com/subject/uwvujdtx.html