我开发了一个.NET MVC应用程序,并开始使用AWS并通过Visual Studio Toolkit进行部署.我已使用工具包中的Elastic Beanstalk选项成功部署了应用程序.
当我查看使用该工具包将.NET应用程序部署到AWS的教程时,我注意到有一些教程可以使用Elastic Beanstalk和CloudFormation进行部署.这两者有什么区别?
据我所知,看起来他们两者基本上都在做同样的事情 - 更容易将您的应用程序部署到AWS云(设置EC2实例,负载均衡器,自动扩展等).我曾经尝试过阅读它们,但除了一堆对我来说听起来像是同样的嗡嗡声之外,我似乎无法得到任何东西.我甚至在AWS网站上找到了一个应该回答这个问题的常见问题解答,但我真的不明白.
我应该使用其中一个吗?都?
amazon-web-services aws-cloudformation amazon-elastic-beanstalk
我想知道使用AWS OpsWorks与AWS Beanstalk和AWS CloudFormation有什么优缺点?
我感兴趣的是一个可以自动调整以处理任何大量同时Web请求的系统(从每分钟1000个请求到1000万个rpm),包括一个可以自动扩展的数据库层.
而不是每个应用程序都有一个单独的实例,理想情况下我想有效地共享一些硬件资源.在过去,我主要使用EC2实例+ RDS + Cloudfront + S3
堆栈系统将在我们从Heroku迁移的rails应用程序上托管一些高流量ruby,还有一些python/django应用程序和一些PHP应用程序.
提前致谢.
ruby-on-rails amazon-web-services aws-cloudformation aws-opsworks amazon-elastic-beanstalk
这是我的Troposphere生成的JSON的(DynamoDB部分):
"sandbox": {
"Properties": {
"AttributeDefinitions": [
{
"AttributeName": "audit_id",
"AttributeType": "S"
},
{
"AttributeName": "status",
"AttributeType": "S"
},
{
"AttributeName": "filename",
"AttributeType": "S"
},
{
"AttributeName": "file_detected_dt",
"AttributeType": "S"
},
{
"AttributeName": "time_taken",
"AttributeType": "N"
},
{
"AttributeName": "number_rows_processed_file",
"AttributeType": "N"
},
{
"AttributeName": "number_rows_created_db",
"AttributeType": "N"
},
{
"AttributeName": "info_messages",
"AttributeType": "S"
}
],
"KeySchema": [
{
"AttributeName": "audit_id",
"KeyType": "HASH"
}
],
"ProvisionedThroughput": {
"ReadCapacityUnits": {
"Ref": "ReadCapacityUnits"
},
"WriteCapacityUnits": {
"Ref": "WriteCapacityUnits"
}
}
},
"Type": …
Run Code Online (Sandbox Code Playgroud) CloudFormation是一个功能强大的AWS产品,它允许程序创建AWS资源堆栈,如的应用程序的Web层,一个高性能计算集群,或整个应用程序堆栈,用一个单一的API调用.它非常强大.使用它肯定被认为是一种很好的AWS实践,特别是当它与Chef, Puppet或cloud-init结合使用时.调试它让我感到恶心.
举一个生产示例:股票mongodb集群模板对我不起作用.我不知道为什么.我确信这很简单,因为它几乎总是如此.我的问题不在于我无法弄清楚出了什么问题.这就是它需要20到30分钟的堆栈才能失败,然后再删除三到四分钟,假设它完全正确地删除了资源.
我错过了什么?我知道--disable-rollback
旗帜并像氧气一样使用它.我很久以前就学会了将退出信息包起来cfn-signal
并将它们像一艘正在下沉的船上的压舱物一样扔掉.如何更快地完成模板调试过程,或者在我制作它们半小时后我是否永远注意到我的错误?
我有以下模板,我在cloudformation UI中使用它来创建dynamoDB表.我想创建一个表,其中PrimaryKey为ID,sortKey为Value
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "DB Description",
"Resources" : {
"TableName" : {
"Type" : "AWS::DynamoDB::Table",
"Properties" : {
"AttributeDefinitions": [ {
"AttributeName" : "ID",
"AttributeType" : "S"
}, {
"AttributeName" : "Value",
"AttributeType" : "S"
} ],
"KeySchema": [
{
"AttributeName": "ID",
"KeyType": "HASH"
}
]
},
"TableName": "TableName"
}
}
}
Run Code Online (Sandbox Code Playgroud)
在CF UI上,我单击新堆栈,template
从本地计算机指向该文件,为堆栈命名并单击下一步.一段时间后,我收到错误,指出Property AttributeDefinitions与表的KeySchema和二级索引不一致
当我使用 cloudformation 进行部署时 aws cloudformation deploy --region $region --stack-name ABC
有错误:
调用 CreateChangeSet 操作时出现错误(ValidationError):Stack:arn:aws:cloudformation:stack/service/7e1d8c70-d60f-11e9-9728-0a4501e4ce4c 处于 ROLLBACK_COMPLETE 状态,无法更新。
请帮我 !
我正在尝试无服务器来创建AWS Lambdas,并在使用命令创建项目时serverless project create
遇到以下错误.
AccessDenied: User: arn:aws:iam::XXXXXXXXX:user/XXXXXXXXX is not authorized to perform: cloudformation:CreateStack on resource: arn:aws:cloudformation:us-east-1:XXXXXXXXX:stack/XXXXXXXXX-development-r/*
Run Code Online (Sandbox Code Playgroud)
我创建了一个用户并向用户授予了以下权限.
AWSCloudFormationFullAccess
授予)我该怎么办?我必须授予哪些其他权限?
我正在使用 CDK/CloudFormation,最近在尝试创建新堆栈时开始收到此错误:
The maximum number of addresses has been reached.
Run Code Online (Sandbox Code Playgroud)
在 AWS 管理控制台中查看,VPC IP 地址的数量限制为 40 个,而列表中正好有 40 个 - 但其中一些既没有关联实例 ID,也没有设置关联 ID:
我的理解是,那些没有这些集合的东西不会被用于任何用途,因此希望使它们可用于克服堆栈创建时的错误。但不确定如何做到这一点 - “释放弹性 IP 地址”是否可以解决问题,或者它们是否需要保留在帐户中,但以其他方式标记为可重用?
amazon-web-services aws-cloudformation amazon-vpc elastic-ip aws-cdk
我有一个模板可以工作并生成一个堆栈,但我找不到要设置的属性或其他允许我给我创建的EC2实例提供名称的东西.生成时,名称为空.
有没有办法指定AWS lambda记录到的CloudWatch日志组?它似乎是直接从lambda名称生成的; 但是,例如,将多个lambda聚合到单个日志组会特别方便.我们特别感兴趣的是在CloudFormation模板创建lambda时指定日志组.
amazon-web-services aws-cloudformation amazon-cloudwatch aws-lambda
amazon-ecs ×1
amazon-iam ×1
amazon-vpc ×1
aws-cdk ×1
aws-lambda ×1
aws-opsworks ×1
elastic-ip ×1