当前位置: 首页 > news >正文

aws(学习笔记第二十六课) 使用AWS Elastic Beanstalk

aws(学习笔记第二十六课)

  • 使用aws Elastic Beanstalk

学习内容:

  • AWS Elastic Beanstalk整体架构
  • AWS Elastic Beanstalkhands on
  • AWS Elastic Beanstalk部署node.js程序包
  • 练习使用AWS Elastic Beanstalkebcli

1. AWS Elastic Beanstalk整体架构

  1. 官方的guide
    AWS的官方guide如下。
    aws Elastic Beanstalk guide链接

  2. 为什么使用AWS Elastic Beanstalk
    web application开发,必须考虑很多环境面的问题。

    • VPC如何分割成subnet
    • 如何设定AutoScaling
    • 设定Elastic Load Balancing
    • Route53设定
    • dev/test/prod的环境设定

    对于web application开发者来说,要考虑应用开发以外的很多,需要很多考虑。如果想简单使用AWS,只考虑开发业务代码,生成.zip或者war文件就能够作成一个完整的web application,那么可以考虑使用AWS Elastic Beanstalk

2. AWS Elastic Beanstalkhands on

  1. AWS Elastic Beanstalk的全体架构
    在这里插入图片描述
  2. 构建AWS Elastic Beanstalk
    • 开始一个新的Elastic Beanstalk,首先创建Elastic Beanstalk application
      在这里插入图片描述
    • 之后创建environment
      • 选择web服务器环境
        在这里插入图片描述
      • 选择平台
        平台选择java。其他的也没有问题,这里首先使用java
        在这里插入图片描述
      • 选择应用程序代码
        这里就是应用程序代码,开发人员只关注业务代码上传,web应用程序的部署都交给AWS。这里选择AWS提供的示例程序。后面的练习中使用node.js的打包程序
        在这里插入图片描述
    • 权限设定
      • 使用AWS的自动设置功能
        自动生成一个生成的role
        在这里插入图片描述
      • 可以查看AWS创建的两个role的权限设定
        可以看出都是关于Elastic Beanstalk执行和ec2的各种权限。
        在这里插入图片描述
    • 选择网络设定VPCSubnet的设定
      这里选择待带有公网权限的defaultVPCSubnet
      在这里插入图片描述
    • database的设定这里无效
      主要是练习使用Elastic Beanstalk的功能,这里让database的设置无效化。在这里插入图片描述
    • 安全组设定
      安全组这里选择网络全开的default安全组,为了方便练习。
      在这里插入图片描述
    • 最后提交Elastic BeanStalk
      在这里插入图片描述
    • 经过几分钟之后,Elastic BeanStalk Environment会创建成功
      在这里插入图片描述
  3. 访问AWS Elastic Beanstalk示例程序
    • 回到Elastic BeanStalk Application一栏画面,进入创建的Applicaiton
      在这里插入图片描述
    • 点击Elastic BeanStalk Application的域
      可以看出马上会进入该示例程序。
      在这里插入图片描述

3. AWS Elastic Beanstalk部署node.js程序包

  1. 编写自己的node.js web application
    • 进入上面创建的ec2
      在这里插入图片描述
    • ec2上创建node.js web application
      sudo -i
      cd /home/ec2-user
      mkdir my_webapp
      yum install npm -y
      npm init -y
      npm install express
      
    • /home/ec2-user/my_webapp上创建app.js
      const express = require('express');
      const app = express();
      app.get('/',(req,res)=>{ res.send("Welcome to Home Page")
      });
      app.listen(8080,() =>{console.log("I am node js");
      });
      
    • 执行app.js
      node application.js
      
    • 访问该node.js web application
      在这里插入图片描述
    • 打包node.js web application,上传到s3 bucket
      [root@ip-172-31-1-135 my_webapp]# zip -r app.zip ./*
      [root@ip-172-31-1-135 my_webapp]# aws s3 cp ./app.zip s3://finlay-cloudshell
      
      在这里插入图片描述
  2. 部署node.js web application
    • 开始创建另一个application在这里插入图片描述
    • 选择平台环境
      在这里插入图片描述
    • 选择s3 bucket的应用程序
      在这里插入图片描述
    • 访问node.js web application
      在这里插入图片描述
      AWS Elastic Beanstalk让开发者单纯面对web application的开发,其他的交个AWS来构建。在这方面表现很出色。

4.练习使用AWS Elastic Beanstalkebcli

  1. 什么是eb cli
    顾名思义,这个是Elastic Beanstalk Command Line Interface
    pypi的官方网站
  2. 使用ebcli
    这里可以使用cloudshell进行开发。
    • 进入cloudshell,并创建一个helloworld的实例application

      mkdir myapp
      cd myapp
      echo "I am EB CLI" > index.html
      eb init(选择区域)
      eb create
      
    • trouble shooting
      这里会有几种常见错误对应方法。

      • Default subnet in ap-northeast-1a not found
        这里,loader balancer需要default VPC必须要有default subnet,但是这里的环境没有,所以需要创建一个subnet 在这里插入图片描述
        并且,AWS console是不能够创建default subnet,必须使用aws cli来创建。
        同样,使用cloudshell
        aws ec2 create-default-subnet --availability-zone ap-northeast-1a
        
      • At least two subnets in two different Availability Zones must be specified
        这个也是常见的错误,但是这个提示特别的误导开发者,正确的是,AWS Elastic Beanstalk在自动load balancer的时候,需要两个条件。
        • 必须在有两个以上的Availability Zone里面作成subnet
        • 必须对每个Availability Zone设定default subnet 注意 AWS console是不能够创建default subnet,必须使用aws cli来创建。
        • 创建subnet代码
          aws ec2 create-default-subnet --availability-zone ap-northeast-1c
          aws ec2 create-default-subnet --availability-zone ap-northeast-1d
          
    • 再次挑战eb create
      最后,创建成功。
      在这里插入图片描述

    • 访问web application(Elastic Beanstalk)

      • 进入application,点击environment
        在这里插入图片描述
      • 点击该environmentdomain
        这里尝试了9次才成功,所以点击最后一次的domain
        在这里插入图片描述
      • 访问application
        成功打开页面。在这里插入图片描述
http://www.lryc.cn/news/530639.html

相关文章:

  • 《OpenCV》——图像透视转换
  • 9 点结构模块(point.rs)
  • Java线程认识和Object的一些方法ObjectMonitor
  • 【高等数学】贝塞尔函数
  • 99.20 金融难点通俗解释:中药配方比喻马科维茨资产组合模型(MPT)
  • 实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作
  • 小程序设计和开发:如何研究同类型小程序的优点和不足。
  • tiktok 国际版抖抖♬♬ X-Bogus参数算法逆向分析
  • Redis 基础命令
  • 深入解析Python机器学习库Scikit-Learn的应用实例
  • 专业的定制版软件,一键操作,无限使用
  • 小程序-基础加强
  • pytorch实现基于Word2Vec的词嵌入
  • 流媒体娱乐服务平台在AWS上使用Presto作为大数据的交互式查询引擎的具体流程和代码
  • 鸿蒙 循环控制 简单用法
  • 四、GPIO中断实现按键功能
  • Linux安装zookeeper
  • 【贪心算法篇】:“贪心”之旅--算法练习题中的智慧与策略(二)
  • 007 JSON Web Token
  • Windsurf cursor vscode+cline 与Python快速开发指南
  • 将markdown文件和LaTex公式转为word
  • grpc 和 http 的区别---二进制vsJSON编码
  • C#面向对象(封装)
  • kamailio-kamctl monitor解释
  • 39. I2C实验
  • GPIO配置通用输出,推挽输出,开漏输出的作用,以及输出上下拉起到的作用
  • Spring AOP 入门教程:基础概念与实现
  • DeepSeek 核心技术全景解析
  • 90,【6】攻防世界 WEB Web_php_unserialize
  • 实现网站内容快速被搜索引擎收录的方法