aws(学习笔记第二十六课) 使用AWS Elastic Beanstalk
aws(学习笔记第二十六课)
- 使用
aws Elastic Beanstalk
学习内容:
AWS Elastic Beanstalk
整体架构AWS Elastic Beanstalk
的hands on
AWS Elastic Beanstalk
部署node.js
程序包- 练习使用
AWS Elastic Beanstalk
的ebcli
1. AWS Elastic Beanstalk
整体架构
-
官方的
guide
AWS
的官方guide
如下。
aws Elastic Beanstalk guide
链接 -
为什么使用
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 Beanstalk
的hands on
AWS Elastic Beanstalk
的全体架构
- 构建
AWS Elastic Beanstalk
- 开始一个新的
Elastic Beanstalk
,首先创建Elastic Beanstalk application
- 之后创建
environment
- 选择
web
服务器环境
- 选择平台
平台选择java
。其他的也没有问题,这里首先使用java
- 选择应用程序代码
这里就是应用程序代码,开发人员只关注业务代码上传,web
应用程序的部署都交给AWS
。这里选择AWS
提供的示例程序。后面的练习中使用node.js的打包程序
- 选择
- 权限设定
- 使用
AWS
的自动设置功能
自动生成一个生成的role
- 可以查看
AWS
创建的两个role
的权限设定
可以看出都是关于Elastic Beanstalk
执行和ec2
的各种权限。
- 使用
- 选择网络设定
VPC
和Subnet
的设定
这里选择待带有公网权限的default
的VPC
和Subnet
。
database
的设定这里无效
主要是练习使用Elastic Beanstalk
的功能,这里让database
的设置无效化。- 安全组设定
安全组这里选择网络全开的default
安全组,为了方便练习。
- 最后提交
Elastic BeanStalk
- 经过几分钟之后,
Elastic BeanStalk Environment
会创建成功
- 开始一个新的
- 访问
AWS Elastic Beanstalk
示例程序- 回到
Elastic BeanStalk Application
一栏画面,进入创建的Applicaiton
- 点击
Elastic BeanStalk Application
的域
可以看出马上会进入该示例程序。
- 回到
3. AWS Elastic Beanstalk
部署node.js
程序包
- 编写自己的
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
- 进入上面创建的
- 部署
node.js web application
- 开始创建另一个
application
- 选择平台环境
- 选择
s3 bucket
的应用程序
- 访问
node.js web application
AWS Elastic Beanstalk
让开发者单纯面对web application
的开发,其他的交个AWS
来构建。在这方面表现很出色。
- 开始创建另一个
4.练习使用AWS Elastic Beanstalk
的ebcli
- 什么是
eb cli
顾名思义,这个是Elastic Beanstalk Command Line Interface
pypi的官方网站 - 使用
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
- 点击该
environment
的domain
这里尝试了9次才成功,所以点击最后一次的domain
。
- 访问
application
成功打开页面。
- 进入
-
相关文章:

aws(学习笔记第二十六课) 使用AWS Elastic Beanstalk
aws(学习笔记第二十六课) 使用aws Elastic Beanstalk 学习内容: AWS Elastic Beanstalk整体架构AWS Elastic Beanstalk的hands onAWS Elastic Beanstalk部署node.js程序包练习使用AWS Elastic Beanstalk的ebcli 1. AWS Elastic Beanstalk整体架构 官方的guide AWS…...

《OpenCV》——图像透视转换
图像透视转换简介 在 OpenCV 里,图像透视转换属于重要的几何变换,也被叫做投影变换。下面从原理、实现步骤、相关函数和应用场景几个方面为你详细介绍。 原理 实现步骤 选取对应点:要在源图像和目标图像上分别找出至少四个对应的点。这些对…...

9 点结构模块(point.rs)
一、point.rs源码 use super::UnknownUnit; use crate::approxeq::ApproxEq; use crate::approxord::{max, min}; use crate::length::Length; use crate::num::*; use crate::scale::Scale; use crate::size::{Size2D, Size3D}; use crate::vector::{vec2, vec3, Vector2D, V…...

Java线程认识和Object的一些方法ObjectMonitor
专栏系列文章地址:https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标: 要对Java线程有整体了解,深入认识到里面的一些方法和Object对象方法的区别。认识到Java对象的ObjectMonitor,这有助于后面的Synchron…...

【高等数学】贝塞尔函数
贝塞尔函数(Bessel functions)是数学中一类重要的特殊函数,通常用于解决涉及圆对称或球对称的微分方程。它们在物理学、工程学、天文学等多个领域都有广泛的应用,例如在波动方程、热传导方程、电磁波传播等问题中。 贝塞尔函数的…...

99.20 金融难点通俗解释:中药配方比喻马科维茨资产组合模型(MPT)
目录 0. 承前1. 核心知识点拆解2. 中药搭配比喻方案分析2.1 比喻的合理性 3. 通俗易懂的解释3.1 以中药房为例3.2 配方原理 4. 实际应用举例4.1 基础配方示例4.2 效果说明 5. 注意事项5.1 个性化配置5.2 定期调整 6. 总结7. 代码实现 0. 承前 本文主旨: 本文通过中…...

实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作
要实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作,以及通过WiFi上传图片到微信小程序,并在微信小程序中上传图片到开发板进行训练,可以按照以下步骤进行: 1. 硬件连接 确保K210开发板…...

小程序设计和开发:如何研究同类型小程序的优点和不足。
一、确定研究目标和范围 明确研究目的 在开始研究同类型小程序之前,首先需要明确研究的目的。是为了改进自己的小程序设计和开发,还是为了了解市场趋势和用户需求?不同的研究目的会影响研究的方法和重点。例如,如果研究目的是为了…...

tiktok 国际版抖抖♬♬ X-Bogus参数算法逆向分析
加密请求参数得到乱码,最终得到X-Bogus...

Redis 基础命令
1. redis 命令官网 https://redis.io/docs/latest/commands/ 2. 在 redis-cli 中使用 help 命令 # 查看 help string 基础命令 keys * # * 代表通配符set key value # 设置键值对del key # 删除键expire key 时间 # 给键设置时间 # -2 代表时间到期了, -1 代表…...

深入解析Python机器学习库Scikit-Learn的应用实例
深入解析Python机器学习库Scikit-Learn的应用实例 随着人工智能和数据科学领域的迅速发展,机器学习成为了当下最炙手可热的技术之一。而在机器学习领域,Python作为一种功能强大且易于上手的编程语言,拥有庞大的生态系统和丰富的机器学习库。其…...

专业的定制版软件,一键操作,无限使用
今天给大家介绍一个专业的PDF转word的小软件,软件只有5.5M。非常小,而且没有文档大小的限制,可以随意使用。 PDFtu PDF转word 软件第一次使用需要安装一下。 安装好之后,我们就能在桌面找到对应的图标,打开就能直接使…...

小程序-基础加强
前言 这一节把基础加强讲完 1. 导入需要用到的小程序项目 2. 初步安装和使用vant组件库 这里还可以扫描二维码 其中步骤四没什么用 右键选择最后一个 在开始之前,我们的项目根目录得有package.json 没有的话,我们就初始化一个 但是我们没有npm这个…...

pytorch实现基于Word2Vec的词嵌入
PyTorch 实现 Word2Vec(Skip-gram 模型) 的完整代码,使用 中文语料 进行训练,包括数据预处理、模型定义、训练和测试。 1. 主要特点 支持中文数据,基于 jieba 进行分词 使用 Skip-gram 进行训练,适用于小数…...

流媒体娱乐服务平台在AWS上使用Presto作为大数据的交互式查询引擎的具体流程和代码
一家流媒体娱乐服务平台拥有庞大的用户群体和海量的数据。为了高效处理和分析这些数据,它选择了Presto作为其在AWS EMR上的大数据查询引擎。在AWS EMR上使用Presto取得了显著的成果和收获。这些成果不仅提升了数据查询效率,降低了运维成本,还…...

鸿蒙 循环控制 简单用法
效果 简单使用如下: class Item {id: numbername: stringprice: numberimg: stringdiscount: numberconstructor(id: number, name: string, price: number, img: string, discount: number) {this.id idthis.name namethis.price pricethis.img imgthis.discou…...

四、GPIO中断实现按键功能
4.1 GPIO简介 输入输出(I/O)是一个非常重要的概念。I/O泛指所有类型的输入输出端口,包括单向的端口如逻辑门电路的输入输出管脚和双向的GPIO端口。而GPIO(General-Purpose Input/Output)则是一个常见的术语,…...

Linux安装zookeeper
1, 下载 Apache ZooKeeperhttps://zookeeper.apache.org/releases.htmlhttps://zookeeper.apache.org/releases.htmlhttps://zookeeper.apache.org/releases.htmlhttps://zookeeper.apache.org/releases.htmlhttps://zookeeper.apache.org/releases.htmlhttps://zookeeper.apa…...

【贪心算法篇】:“贪心”之旅--算法练习题中的智慧与策略(二)
✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:贪心算法篇–CSDN博客 文章目录 前言例题1.买卖股票的最佳时机2.买卖股票的最佳时机23.k次取…...

007 JSON Web Token
文章目录 https://doc.hutool.cn/pages/jwt/#jwt%E4%BB%8B%E7%BB%8D JWT是一种用于双方之间安全传输信息的简洁的、URL安全的令牌标准。这个标准由互联网工程任务组(IETF)发表,定义了一种紧凑且自包含的方式,用于在各方之间作为JSON对象安全地传输信息。…...

Windsurf cursor vscode+cline 与Python快速开发指南
Windsurf简介 Windsurf是由Codeium推出的全球首个基于AI Flow范式的智能IDE,它通过强大的AI助手功能,显著提升开发效率。Windsurf集成了先进的代码补全、智能重构、代码生成等功能,特别适合Python开发者使用。 Python环境配置 1. Conda安装…...

将markdown文件和LaTex公式转为word
通义千问等大模型生成的回答多数是markdown类型的,需要将他们转为Word文件 一 pypandoc 介绍 1. 项目介绍 pypandoc 是一个用于 pandoc 的轻量级 Python 包装器。pandoc 是一个通用的文档转换工具,支持多种格式的文档转换,如 Markdown、HTM…...

grpc 和 http 的区别---二进制vsJSON编码
gRPC 和 HTTP 是两种广泛使用的通信协议,各自适用于不同的场景。以下是它们的详细对比与优势分析: 一、核心特性对比 特性gRPCHTTP协议基础基于 HTTP/2基于 HTTP/1.1 或 HTTP/2数据格式默认使用 Protobuf(二进制)通常使用 JSON/…...

C#面向对象(封装)
1.什么是封装? C# 封装 封装 被定义为“把一个或多个项目封闭在一个物理的或者逻辑的包中”。 在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。 抽象和封装是面向对象程序设计的相关特性。 抽象允许相关信息可视化,封装则使开发者实现所…...

kamailio-kamctl monitor解释
这段输出是 Kamailio 服务器的运行时信息和统计数据的摘要。以下是对每个部分的详细解释: 1. Kamailio Runtime Details cycle #: 3: 表示 Kamailio 的主循环已经运行了 3 个周期。Kamailio 是一个事件驱动的服务器,主循环用于处理事件和请求。if const…...

39. I2C实验
一、IIC协议详解 1、ALPHA开发板上有个AP3216C,这是一个IIC接口的器件,这是一个环境光传感器。AP3216C连接到了I2C1上: I2C1_SCL: 使用的是UART4_TXD这个IO,复用位ALT2 I2C1_SDA: 使用的是UART4_RXD这个IO。复用为ALT2 2、I2C分为SCL和SDA&…...

GPIO配置通用输出,推挽输出,开漏输出的作用,以及输出上下拉起到的作用
通用输出说明: ①输出原理: 对输出数据寄存器的对应位写0 或 1,就可以控制对应编号的IO口输出低/高电平 ②输出类型 推挽输出:IO口可以输出高电平,也可以输出低电平 开漏输出:IO口只能输出低电平 所以…...

Spring AOP 入门教程:基础概念与实现
目录 第一章:AOP概念的引入 第二章:AOP相关的概念 1. AOP概述 2. AOP的优势 3. AOP的底层原理 第三章:Spring的AOP技术 - 配置文件方式 1. AOP相关的术语 2. AOP配置文件方式入门 3. 切入点的表达式 4. AOP的通知类型 第四章&#x…...

DeepSeek 核心技术全景解析
DeepSeek 核心技术全景解析:突破性创新背后的设计哲学 DeepSeek的创新不仅仅是对AI基础架构的改进,更是一场范式革命。本文将深入剖析其核心技术,探讨 如何突破 Transformer 计算瓶颈、如何在 MoE(Mixture of Experts)…...

90,【6】攻防世界 WEB Web_php_unserialize
进入靶场 进入靶场 <?php // 定义一个名为 Demo 的类 class Demo { // 定义一个私有属性 $file,默认值为 index.phpprivate $file index.php;// 构造函数,当创建类的实例时会自动调用// 接收一个参数 $file,用于初始化对象的 $file 属…...