AWS ECS + CloudMap + Lambda workshop (一)
第一篇:创建一个由ECS托管的nodejs服务
一)创建拥有Administrator Access的IAM User, 在权限设置时,直接给予AdministratorAccess
二)ECR服务注册代码仓库
输入名称,完成
Copy 镜像库的URI
XXXXXXXX.dkr.ecr.cn-northwest-1.amazonaws.com.cn/nodejs-test-app
使用docker命令上传代码:
aws ecr get-login-password --region cn-northwest-1 | docker login --username AWS --password-stdin [账号ID].dkr.ecr.cn-northwest-1.amazonaws.com.cn/nodejs-test-app
提示login succeeded
注意:windows系统,cmd界面必须用管理员身份运行,docker desktop也需要用管理员身份运行
三)新建nodejs项目并推送
参见之前的帖子,新建一个nodejs项目,本地build
https://www.cnblogs.com/Andy1982/p/17893230.html
推送到AWS ECR
docker tag [镜像ID] 350200466659.dkr.ecr.cn-northwest-1.amazonaws.com.cn/nodejs-test-app
docker push [账号ID].dkr.ecr.cn-northwest-1.amazonaws.com.cn/nodejs-test-app
注意:这里我犯了个错误,AWS有多个账号(dev、stg),之前用stg做的aws configure,写这篇文章的时候用的dev环境。导致docker push一直失败
推送成功
代码仓库ECR看到以下镜像
四)建立ECS服务
3.1 创建ecs cluster,选择fargate
等待几分钟
3.2 创建task definition(任务定义)
3.3 为集群添加task
回到ECS集群 -> 任务,“运行新任务”,选择上一步创建的任务定义。为了测试方便,选择开启public ip
待任务启动后,通过public ip查看
加上8080端口
参考
https://ecsworkshop.com/introduction/
https://github.com/aws-samples/amazon-ecs-demo-with-node-express
https://towardsaws.com/deploying-a-nodejs-app-on-aws-elastic-container-service-549c340b8614
https://docs.amazonaws.cn/AmazonECR/latest/userguide/getting-started-cli.html