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

我叫寺冈,是一名基础设施工程师。

AWS 提供名为 S3 的存储服务,它
不仅可以用于一般存储
,还可以用于托管静态内容,例如网站。

这次,
我们将尝试使用 S3 的虚拟主机功能来托管静态网站,而无需使用 EC2。
乍一看可能有点难,但实际上设置起来相对容易,所以请尝试一下吧!

■ 试试看

在 S3 中存放文件时,需要一个名为“存储桶”的容器。
根据谷歌翻译,它在日语中就是“桶”的意思。
首先,我们将在 S3 中创建一个新的存储桶来存放静态内容。

在 AWS 管理控制台中,选择 S3,然后单击屏幕左上角的“创建存储桶”。
图片1

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

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

接下来,我们将添加设置,将我们创建的存储桶用作静态网站的主机。

点击存储桶名称左侧的放大镜图标,属性信息将显示在屏幕右侧。
然后,在“静态网站托管”下选择“启用网站托管”!

S3 端点将显示在此屏幕上,由于您最终将通过浏览器访问它,因此最好记下它。

2016-08-22_12h04_44

现在您应该看到两个输入框,让我详细解释一下。

输入项 细节
索引文件 输入用户访问网站时首先要访问的页面。最好指定首页。
错误文档 指定发生 404 错误时要显示的页面。

完成后,点击保存!

设置已保存,但网站仍然无法访问。
要使存储在 S3 中的内容在互联网上公开可用,
您需要允许所有用户执行 S3“GetObjects 操作”。

简而言之,您目前没有查看该网站的权限。
要允许“GetObjects 操作”,您需要更改名为 S3 存储桶策略的设置。

在存储桶属性下,选择“权限”,然后单击“添加存储桶策略”。
2016-08-22_12h13_58

存储桶策略编辑器将会出现。
2016-08-22_12h20_19

请输入以下内容:

{ "版本": "2012-10-17", "声明": [ { "SID": "PublicReadForGetBucketObjects", "效果": "允许", "主体": "*", "操作": [ "s3:GetObject" ], "资源": [ "arn:aws:s3:::(存储桶名称)/*" ] } ] }

总结一下这些设置……

设置项目 细节
“主要的” 请输入允许或拒绝访问该资源的用户。在本例中,* 表示所有用户。
“行动” 指定要授予权限的操作。由于我们要授予 GetObject 操作的权限,因此输入 s3:GetObject。
“资源” 指定要授予权限的存储桶。

输入存储桶策略后,点击“保存”!
这样就完成了 S3 设置!
最后,上传一些内容并检查显示效果!
点击列表中您创建的存储桶名称。

2016-08-22_12h24_06

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

已经上传了!
2016-08-22_12h28_33

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

2016-08-22_12h30_41

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

如果您觉得这篇文章对您有帮助,请点个“赞”!
2
加载中...
2票,平均分:1.00/12
1,742
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

寺冈由纪

我于 2016 年加入 Beyond,目前
担任基础设施工程师和 MSP(托管服务提供商)已有六年。我负责处理突发事件的故障排除,
并使用 AWS 等公有云设计和构建基础设施。最近,我一直在
Docker 和 Kubernetes 等容器基础设施。此外,
使用 HashiCorp 的 Terraform 和 Packer 等工具来构建和自动化
我还担任技术推广者的角色,在外部学习小组和研讨会上进行演讲。

・GitHub
https://github.com/nezumisannn

• 演讲邀约
:https://github.com/nezumisannn/my-profile

• 演示材料(SpeakerDeck)
https://speakerdeck.com/nezumisannn

・认证:
AWS认证解决方案架构师 - 助理级、
Google Cloud专业云架构师