AWS服务建设之路-Docker集群,第1张

最近的项目处于种种原因要放到亚马逊上面,也正好体验一下世界最大云计算平台的服务。于是又开始了漫长的爬坑路。不得不说AWS的管理交互台设计充满了工业气息,新手很难上手,但熟练工会觉得很直观。

简单来说分4步:

ECR是私有镜像仓库,先把自己的镜像上传上来,这一步的坑就在于要上传镜像不能直接 docker login 需要

ECS有一个很重要的概念,任务定义。这个概念类似于 k8s 的 pod。任务定义抽象出了任务这个概念,一项任务可以包含多个docker镜像及对应的参数/环境配置,并且拥有CPU,内存限额。

任务定义拥有版本号,只能创建新版本不能修改以前版本。

而在集群中的调度则是以任务定义为对象。

所以我们为我们每一个服务创建了1个任务定义,一个任务定义包含1个镜像。

这里有3种网络模式供选择:

大部分情况我们都使用桥接模式,少部分情况使用 awsvpc 。主机模式则尽量不要使用,不利于编排。 awsvpc 的具体使用场景会在下文服务发现章节介绍。

动态端口映射 技术,是指将容器在宿主机上的外部端口随机映射,只在桥接模式下有效。

勾上日志配置,ECS就会自动把镜像的标准输出定向到 CloudWatch,就可以去那里查看镜像日志了,当然专业的日志系统还是得ELK。

ECS有2种集群,Fargate 与 EC2 Linux。

Fargate是很酷炫的架构,特别是在资源占用量不稳定,时间不确定的情况下很合适。而且全部使用awsvpc网络模式,所有的服务都可以拥有独立IP,纯正的无服务器架构。只有一个缺点,贵(同样资源量是EC2的3倍价格

建议创建空集群,再自行添加服务器,不然容易触发一些 keng

上面说了任务定义,那么任务这个概念也很简单,被运行的任务定义。

一个任务可能包含多个容器,这个任务可能是在有限时间内执行完毕就停止的,比如一次性脚本,也可能是无限运行的,比如nginx服务器。

服务这个概念比较复杂,一个服务会管理一个任务定义在运行时的方方面面

服务没有停止功能,只能修改任务数为0。

服务删除后,需要手动停止已经运行的任务。

AWS提供基于Router53(DNS服务)的服务发现,其实很难用,awsvpc模式的很方便,桥接模式下特难用。

在awsvpc模式中 ,因为每个任务都有自己的IP,所以端口可以直接固定,不会存在冲突,配合基于Router53的服务发现可以直接完成完美的服务发现--无论如何更新重启服务,总能通过固定域名访问到服务。但因为一台服务器只能绑定3张网卡,所以只能启动3个awsvpc模式容器。

在桥接模式中 ,每个任务都使用宿主机的ip,以及随机分配的端口,所以服务发现需要带上端口,不然也不能正常发现。AWS提供SRV类型的DNS记录用作服务发现,本身是没有问题,但SRV并不是被广泛接受的记录类型,浏览器与网络库均不能解析SRV记录,所以要访问服务还需要定制DNS解析。

所以我们最终选择使用Eureka作为服务发现服务,使用awsvpc作为补充的服务发现服务,比如将Eureka本身及xxl-job等使用awsvpc部署。

在选用了Eureka之后,又遇到了问题。因为使用了动态端口映射,所以向Eureka注册的端口不是Spring的监听端口,并且容器内部无法知道宿主机的ip与端口。

这里通过多种方式配合破局:

不过要注意,启用元数据服务,需要修改ECS代理配置,而这个配置是在集群创建时就写入服务器的,所以要修改ECS代理配置,必须要先修改自动伸缩组的初始化脚本,再删除伸缩组内所有服务器,再重新添加服务器。

这样就可以在Eureka中心正确展示服务信息了。

管理可以由两个方面构成

第一个是通过AWS控制台的配置,来设置服务器的伸缩,监控等等。

EC2的使用

第二个是使用PuTTY直接连接EC2,进行管理。

教程:

使用PuTTY连接EC2

希望可以帮到你。

自己搭建了一个服务器,在这里也分享一下经验。原文我放在blog4itcom,是我新申请的顶级域名,后面会介绍如何申请这个顶级域名。

做了10多年的IT工作,很想有一个自己的网站,刚好慧与公司鼓励开发部门做自己的网站,就下定决心搞一个。鉴于自己维护一个服务器太麻烦了,不确定阿里云的访问速度如何,最后决定通过亚马逊来搭建一个网站。搭建一个Wordpress的网站很容易,只要以下几步,你就可以拥有一个和你看的一样甚至更好的blog了。

亚马逊提供的服务器包括了1CPU + 1G RAM,可以免费用1年,然后使用最低配的系统每年的费用大约是365元。

申请一个AWS账号

选择服务器所在的国家。(重要)

申请一个带Wordpress的AWS云服务器。

检查你的网站已经建好了。

找到你的用户名密码

登陆到你的网络服务器

修改网站的标题和样式

开通新用户的注册。

添加访问量监控

使用自己的域名

今天开篇说一下如何申请一个AWS云服务器,并建立一个Wordpress的instance

首先当然是打开AWS的网站

http://awsamazoncom/,点击这个按钮

注册一个新的账号,填写邮箱,密码和地址信息。

填写信用卡信息,我用的是招商银行的全币卡,应该其他的visa或者master card都可以使用。

然后亚马逊会从你的信用卡上面扣除1美元的预授权。

接下来就可以进入AWS的console来新建一个instance,一个instance就是一个网络服务器。亚马逊提供了一年的免费试用,如果你建两个服务器那么试用时间就减半。

2 在建立网络服务器之前,一定要选择一个合适的服务器地址,我尝试了useast, uswest在国内访问都很慢。建议使用新加坡的服务器,美国和中国访问速度都不错。

选择服务器的方法在你的console的右上角:

3 接下来进入到AWS的console

然后点击这个

然后AWS会显示线面的页面,里面包括了AWS的推荐选项,你可以从中选择一个,AWS就会帮你建一个网上服务器,但是具体的应用比如Wordpress要你自己装

为了方便,直接选择AWS market,里面有别人做好的带应用的服务器模版,搜索wordpress

接下来选择

如果你想通过一个wordpress支持多人建站的话,你要选择WordPress Multisite powered by Bitnami (HVM)

然后选一个免费的instance包括了1个CPU和1GB的内存。

后面有更多的配置,可以直接使用默认配置,点击然后

接下来你会看见下面的界面:

你需要新建一个key pair,并且一定要保存好,你需要通过这个key pair来访问你的服务器,其他人也通过这个key pair可以直接访问你的服务器。

然后点击Launch instance。

接下来你会看到你的新的服务器正在启动中,当启动结束以后,你就会看到下面的界面,离胜利只剩一步了

5 把上图中的域名输入到你的浏览器中,当~当~当~当~~,enjoy it

开户手续费、上传产品不同。

个人账户开户手续费较低,但是企业账户可以大量量上传产品,同一企业账户可统一管理亚马逊欧洲其他五个平台出售。

如果你刚开端卖的东西不多,只是想做点小投资,可以思考开一个亚马逊个人帐户来尝试出售,如果你已经在美国亚马逊出售了产品,并且对欧洲亚马逊有必定的了解,或者对自己的实力有必定的信念,志向对比远大,那么你可以选择开设亚马逊的企业帐户。

4核8G配置活动报价:1共享型s6实例,4核8G配置,5至10M可选带宽,活动报价为104604每年起。2计算型c5实例,4核8G配置,5至10M可选带宽,活动报价为137172每年起。3计算型c6实例,4核8G配置,5至10M可选带宽,活动报价为141588每年起。

AWS整合账户后,除了可以合并计费付费,有如下几个对AWS成本优化有很大的提升,不仅仅是合并付费,各成员账户的一些服务使用量也会合并计算,而一些aws的服务如EC2和S3等服务,会随着用量增加而享受更低的价格,这就是整合账户对于成本优化的帮助之一。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » AWS服务建设之路-Docker集群

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情