实验目的,熟悉AWS Elastic Container Service
实验包括:
1. 创建和定义ECS的任务(Task)
2. 创建ECS Cluster
3. 部署应用到ECS Service中
实验前准备:
- AWS账号
- 熟悉IAM role、EC2、Docker等知识
Task1:使用ecs-sample image注册和定义Task
进入到ECS服务,创建Task Definitions:
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/6f406a676c774cdce2efdaf1c6276e9c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/82242883ae6ddddfb9366029d2bbf58c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/4e5c5fd04b72c18171bb65f044494e98.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
{
"family": "myContainer",
"containerDefinitions": [
{
"volumesFrom": [],
"portMappings": [
{
"hostPort": 80,
"containerPort": 80
}
],
"command": null,
"environment": [],
"essential": true,
"entryPoint": null,
"links": [],
"mountPoints": [
{
"containerPath": "/usr/local/apache2/htdocs",
"sourceVolume": "my-vol",
"readOnly": null
}
],
"memory": 300,
"name": "simple-app",
"cpu": 10,
"image": "httpd:2.4"
},
{
"volumesFrom": [
{
"readOnly": null,
"sourceContainer": "simple-app"
}
],
"portMappings": [],
"command": [
"/bin/sh -c \"while true; do echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>' > top; /bin/date > date ; echo '</div></body></html>' > bottom; cat top date bottom > /usr/local/apache2/htdocs/index.html ; sleep 1; done\""
],
"environment": [],
"essential": false,
"entryPoint": [
"sh",
"-c"
],
"links": [],
"mountPoints": [],
"memory": 200,
"name": "busybox",
"cpu": 10,
"image": "busybox"
}
],
"volumes": [
{
"host": {
"sourcePath": null
},
"name": "my-vol"
}
]
}
导入之后,回头看Task Definition Name为:myContainer。然后Task size等信息也定义好了。
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/3e10f9b5fa65d723953fb4dabdabf3df.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
创建完成后:
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/a77a5b857c84f28c76cb5500d0a0ed50.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
Task 2:Create a Service
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/53b08cb9620c05215cfce1bfcf1e46b2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/e75e5de16e04bf0c92e4862e5ce3584c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/326f3cb81b24c404f0eda48cc858c554.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
网络配置:
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/de52ef951e11630ca1ede0e5f472e897.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
添加容器的load balance
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/876ef32092404caf74441e4d0b8d2ebc.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
服务发现:
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/3583987f9141ae7780e69466c015aa90.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
设置Auto Scaling:
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/c5e4c15532162ce83c031674e14ad042.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/a4b799cb01028e9582979ac4a8bb3920.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/42b58e19b2988c4ea4d4b0f6f8f92772.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/e49b54e49445eaef7a1d3e0f77fb7be5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/8f1c47407925e0c65661d8eebc26c12b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/3244c1cfb168e132e6d3e91ead7f313a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
Task3:部署新的application版本到ECS上。
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/7ddb4fa6837220f908991720e9f8c8c1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
直接替换前端网站H标签,把congratulation改成 thank you.
![[AWS][容器][ECS] ECS动手实验101](https://s4.51cto.com/images/blog/202006/18/306533a5e74bc51805a2664fba492a57.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
然后回到ECSCluster的Services,选择myService并update(Version:选择select the latest)重复Task2,找到Load Balancer的URL.
复制DNS,copy到网址。就会看到更新的内容了。
有关AWS实验的视频教程:https://edu.51cto.com/center/course/lesson/index?id=533833
来源:oschina
链接:https://my.oschina.net/u/4356296/blog/4316321