美文网首页
AWS上部署第一个应用

AWS上部署第一个应用

作者: lambdaMR | 来源:发表于2018-10-10 15:53 被阅读92次

    这段时间一直在熟悉aws,搞了个简单的web程序想放上去跑跑,死活跑不起来,今天终于完成踩坑,把过程做个总结,注意下面都是在mac下操作


    准备个程序

    这个简单,随便找个helloworld改改,web请求直接返回“hello test!”,端口使用的是8081,本地测试url为http://localhost:8081/hip-test-service/v1.0/location,注意在本地测试要通过。

    部署到docker

    1,打包安装

    执行mvn clean install命令,成功的话会在maven的仓库中发现已经打好的jar包,如下:

    drwxr-xr-x  6 zhuwen  staff       192 10  8 16:21 .drwxr-xr-x  4 zhuwen  staff       128 10  8 16:21 ..-rw-r--r--  1 zhuwen  staff       216 10 10 14:37 _remote.repositories-rw-r--r--  1 zhuwen  staff  18586143 10 10 14:37 hip-test-service-0.0.1-SNAPSHOT.jar-rw-r--r--  1 zhuwen  staff      9300 10 10 14:16 hip-test-service-0.0.1-SNAPSHOT.pom-rw-r--r--  1 zhuwen  staff       710 10 10 14:37 maven-metadata-local.xml

    2,部署到docker

    执行mvn  -Pdocker docker:build,完成后通过docker images可以看到

    ZhuWendeMacBook-Pro:hip-test-service zhuwen$ docker images

    REPOSITORY                                                          TAG                IMAGE ID            CREATED            SIZE

    hip-test-service                                              latest              2a71c8444332        29 hours ago        199MB  

    完成后通过docker run -p 8081:8081 hip-test-service在docker上启动,试试能否访问服务,以验证docker上应用是否OK

    3,AWS上创建存储库

    选择AWS上Elastic Container Service服务,创建存储库,命名为hip-test-serivce,创建完成后,会提示url为XXXXXXXX.dkr.ecr.cn-north-1.amazonaws.com.cn/hip-test-service,后面会用到

    4,打tag

    执行docker tag XXXXXXXX.dkr.ecr.cn-north-1.amazonaws.com.cn/hip-test-service:latest,其中斜体为上面创建存储库时的url,完成后,在docker images可以看到

    ZhuWendeMacBook-Pro:hip-test-service zhuwen$ docker images

    REPOSITORY                                                          TAG                IMAGE ID            CREATED            SIZE

    XXXXXXXX.dkr.ecr.cn-north-1.amazonaws.com.cn/hip-test-service  latest              2a71c8444332        31 hours ago        199MB

    5,上传到AWS

    执行docker push XXXXXXXX.dkr.ecr.cn-north-1.amazonaws.com.cn/hip-test-service:latest,将docker上传到AWS上的存储库,完成后会看到如下:

    上传如提示权限问题,请使用Access key ID和Secret access key登陆,具体使用下面命令

    aws configure --profile hip

    aws ecr get-login --no-include-email --profile=hip

    6,ECS上创建任务定义hip-test-service

    注意容器内存限制不要使用默认的128M,很可能因为这里的限制导致内存不够而使得服务不停的重启,具体配多少可以在docker跑下应用然后通过docker stats看看需要多大的内存。

    7,创建服务

    其中路径模式要写成/hip-test-serivce*,即所有路径hip-test-serivce的访问到目标组hip-test-service-new01,侦听端口为443,这里使用的是https,如果http则使用80。运行状况检查路径为/hip-test-service/health,在应用程序的pom文件依赖加入下面一段,程序会自动提供健康检查服务

    <dependency>

    <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId>

    </dependency>

    创建完成后等待服务启动,启动成功后,会在该服务的目标组hip-test-serivce-new01的目标标签中看状态,如果状态为healthy则表示OK,否则需要检查配置。之前说的坑,就是容器内存使用默认128M太小导致启动失败

    具体失败日志可以到CloudWatch服务中的日志组中找,如我配置的日志组为BSH-HIP-AWS-CHINA-DEV-HIP-TEST-Logs,日志流名称前缀为EHS-TEST

    9,创建API GATE WAY

    创建API,命名为hip-test-serivce,在资源页配置如下

    在阶段页配置如下,这样实现了开发和上生产最终请求到不同的服务中去

    最后在自定义域名中,选择之前已经申请好的域名,完成和API的映射配置,其中基本路径为hip-test-serivce,api选择hip-test-service,而阶段选择dev。

    完成上面配置后,就可以使用postman测试了

    相关文章

      网友评论

          本文标题:AWS上部署第一个应用

          本文链接:https://www.haomeiwen.com/subject/xtvpaftx.html