我尝试使用 AWS S3 部署静态网站。

我叫寺冈,是一名基础设施工程师。
AWS 提供名为 S3 的存储服务,它
不仅可以用于一般存储
,还可以用于托管静态内容,例如网站。
这次,
我们将尝试使用 S3 的虚拟主机功能来托管静态网站,而无需使用 EC2。
乍一看可能有点难,但实际上设置起来相对容易,所以请尝试一下吧!
■ 试试看
在 S3 中存放文件时,需要一个名为“存储桶”的容器。
根据谷歌翻译,它在日语中就是“桶”的意思。
首先,我们将在 S3 中创建一个新的存储桶来存放静态内容。
在 AWS 管理控制台中,选择 S3,然后单击屏幕左上角的“创建存储桶”。

输入要创建的新存储桶的名称,并选择区域。
然后单击“创建”。

如果你查看愿望清单,应该就能看到你创建的愿望清单已经添加了!

接下来,我们将添加设置,将我们创建的存储桶用作静态网站的主机。
点击存储桶名称左侧的放大镜图标,属性信息将显示在屏幕右侧。
然后,在“静态网站托管”下选择“启用网站托管”!
S3 端点将显示在此屏幕上,由于您最终将通过浏览器访问它,因此最好记下它。

现在您应该看到两个输入框,让我详细解释一下。
| 输入项 | 细节 |
|---|---|
| 索引文件 | 输入用户访问网站时首先要访问的页面。最好指定首页。 |
| 错误文档 | 指定发生 404 错误时要显示的页面。 |
完成后,点击保存!
设置已保存,但网站仍然无法访问。
要使存储在 S3 中的内容在互联网上公开可用,
您需要允许所有用户执行 S3“GetObjects 操作”。
简而言之,您目前没有查看该网站的权限。
要允许“GetObjects 操作”,您需要更改名为 S3 存储桶策略的设置。
在存储桶属性下,选择“权限”,然后单击“添加存储桶策略”。

存储桶策略编辑器将会出现。

请输入以下内容:
{ "版本": "2012-10-17", "声明": [ { "SID": "PublicReadForGetBucketObjects", "效果": "允许", "主体": "*", "操作": [ "s3:GetObject" ], "资源": [ "arn:aws:s3:::(存储桶名称)/*" ] } ] }
总结一下这些设置……
| 设置项目 | 细节 |
|---|---|
| “主要的” | 请输入允许或拒绝访问该资源的用户。在本例中,* 表示所有用户。 |
| “行动” | 指定要授予权限的操作。由于我们要授予 GetObject 操作的权限,因此输入 s3:GetObject。 |
| “资源” | 指定要授予权限的存储桶。 |
输入存储桶策略后,点击“保存”!
这样就完成了 S3 设置!
最后,上传一些内容并检查显示效果!
点击列表中您创建的存储桶名称。

点击屏幕左上角的“上传”按钮,即可上传您的 HTML 文件等。
此时会弹出文件和文件夹选择界面,
点击“添加文件”按钮添加您的内容。
点击“开始上传”按钮,即可将内容上传到 S3。

已经上传了!

尝试访问您记下的 S3 端点。
网站应该会显示出来!

你觉得怎么样?
不用搭建服务器就能轻松上线网站,真是太方便了!
下次我想写写如何通过集成 CloudFront 来分发内容。
今天就到这里,谢谢。
2
