我尝试使用 AWS S3 交付静态站点
我叫寺冈,是一名基础设施工程师。
AWS有一个名为S3的存储服务,但它
不仅可以用于存储,还
可以将静态内容托管为网站。
这次,我想使用S3的虚拟主机功能
来分发静态站点,而不使用EC2。
乍一看似乎很难,但设置起来相对容易,所以请尝试一下!
■尝试一下
当将文件放入S3时,需要一个称为存储桶的容器。
当我要求谷歌翻译它时,它说它在日语中是“桶”的意思。
首先,创建一个新存储桶以将静态内容转储到 S3 中。
从 AWS 管理控制台中选择 S3,然后单击屏幕左上角的创建存储桶。
输入新存储桶的名称并选择区域。
然后单击“创建”。
如果您查看存储桶列表,您创建的存储桶应该已添加!
接下来,我们添加设置以将创建的存储桶用作静态站点主机。
单击存储桶名称左侧的放大镜图标,属性将出现在屏幕右侧,然后
从静态网站托管中选择启用网站托管!
S3 端点将显示在此屏幕上,但您最终将通过浏览器访问它,因此最好记下它。
我相信会显示两个输入项目,所以我将解释每个项目的详细信息......
输入项目 | 细节 |
---|---|
索引文件 | 输入您希望用户在访问您的网站时首先访问的页面。我认为最好指定首页。 |
错误文档 | 指定发生 404 错误等时显示的页面。 |
完成后点击“保存”!
设置现已保存,但我仍然无法访问该网站。
为了将放置在 S3 中的内容发布到 Internet,
您必须允许所有用户在 S3 上执行“GetObjects 操作”。
简而言之,您此时无权查看该站点...
要允许“GetObjects 操作”,您需要更改 S3 存储桶策略。
从存储桶属性中选择权限,然后单击添加存储桶策略。
将显示存储桶策略编辑器。
输入以下内容:
{ "版本": "2012-10-17", "声明": [ { "Sid": "PublicReadForGetBucketObjects", "效果": "允许", "主体": "*", "操作": [ "s3 :GetObject" ], "资源": [ "arn:aws:s3:::(存储桶名称)/*" ] } ] }
总结设置项目...
设置项目 | 细节 |
---|---|
“主要的” | 输入允许或拒绝谁访问资源。这次是*,所以表示所有用户。 |
“行动” | 指定授予权限的操作。我想允许 GetObject 操作,因此我输入 s3:GetObject。 |
「资源」 | 指定您要授予权限的存储桶。 |
输入存储桶策略后,单击“保存”!
这样就完成了S3的配置!
最后,上传您的内容并检查它的外观!
单击您从列表中创建的存储桶名称。
点击屏幕左上方的上传,上传hrml文件等。
将出现文件和文件夹选择屏幕,因此
让我们从“添加文件”添加内容。
单击“开始上传”实际上会将内容上传到 S3。
已上传!
尝试访问您已保存的 S3 端点。
您的网站现在应该出现了!
你觉得怎么样?
如此方便,您只需这样做即可分发您的站点,而无需构建服务器!
接下来我想写一下如何结合Cloudfront进行分发。
就这样,非常感谢。