我尝试使用 AWS S3 交付静态站点

我叫寺冈,是一名基础设施工程师。
AWS 有一项名为 S3 的存储服务,
不仅可以用于存储,还
可以用于托管静态内容,例如网站。
这次,我想尝试使用 S3 的虚拟主机功能
来托管静态网站,而无需使用 EC2。
乍一看可能有点难,但实际上设置起来相对容易,所以我鼓励大家试一试!
■ 试试看
要在 S3 中存储文件,您需要一个名为“存储桶”的容器。
根据 Google 的说法,这个词在日语中就是“桶”的意思。
首先,创建一个新的存储桶来存储 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 分发网站的文章。
就这些,非常感谢。
2