在忙碌或时间紧迫的情况下,为应用程序配置环境可能过于复杂和耗时。需要考虑监控、日志、安全组、虚拟机、备份等。可能会犯错误,使应用程序受到各种攻击的威胁。这项服务可以帮助处理所有这些问题。坐下来,享受一个实践性的弹性Beanstalk教程。
弹性Beanstalk(EB)可以为准备整个AWS环境。这样,可以在几分钟内部署应用程序并为其准备环境。EB将准备EC2实例、RDS数据库、自动扩展负载均衡器、健康检查、HTTPS证书、日志记录等。只需选择一个可用的预定义模板(包括Go、Java、Python、PHP、Nodejs和Docker),决定希望环境如何表现,就可以开始了。也可以轻松部署应用程序的新版本。
在背后,EB是一个特殊代理,使用预定义的CloudFormation模板来设置新环境并控制它。
有几个原因说明为什么EB可能是最佳选择:
听起来不错,对吧?让进入真正的弹性Beanstalk教程!
只需登录到AWS控制台并搜索弹性Beanstalk。当到达EB欢迎页面时,点击“创建应用程序”按钮。EB应用程序是代码的表示。接下来,需要输入应用程序的名称并选择应用程序将依赖的模板。
这是一个相关的原因,因为Amazon Linux 2允许使用docker-compose.yml文件并直接构建Docker镜像。如果选择了第一个版本,将不得不使用dockerrun.aws.json文件,这需要额外的工作和知识。
通常,使用平台版本字段中推荐的版本是一个好主意(EB定期更新其模板)。
在下面,应该选择想要在新环境中运行的代码。如果还没有准备好,可以选择演示应用程序。之后,一个简单的代码将被上传,所以可以立即开始尝试EB。这是一些代码,供在本教程中使用。
// 这个应用程序创建随机数据,将其存储在数据库中,然后列出所有创建的记录(每个请求创建一个记录)。
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { Product } from './product.model';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'postgres',
host: process.env.RDS_HOSTNAME,
port: parseInt(process.env.RDS_PORT),
username: process.env.RDS_USERNAME,
password: process.env.RDS_PASSWORD,
database: process.env.RDS_DB_NAME,
entities: [Product],
sync: true,
}),
TypeOrmModule.forFeature([Product]),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
保存数据库更改后,是时候进入软件部分了。在容器选项部分,选择“无”,因为示例应用程序不需要代理。此外,启用了日志记录。
需要修改默认进程以更改状态检查路径。将其更改为/health。
现在需要点击创建应用程序按钮。将能够跟踪应用程序部署的进度。
创建环境应该不会超过10分钟,除非有一个耗时的镜像创建过程或AWS非常忙于其他事情。从日志中可以看到,EB创建了所有必需的东西,如安全和日志组。随后,RDS、负载均衡器和EC2实例被创建和配置。
一旦整个过程完成,应该会自动被重定向到新环境的仪表板。