Tag: amazon web services

Amazon CloudWatch的Elastic Beanstalk Docker

我有一个用Docker容器部署的Elastic Beanstalk应用程序。 应用程序本身是一个Java应用程序。 我的目标是将日志获取到Cloudwatch。 特别是我想获得stdouterr.log文件到Cloudwatch。 该文件可以在/var/log/eb-docker/containers/eb-current-app/* 我在这里跟随了官方的AWS文档。 基于示例configuration文件,我设法将nginx Webrequest转换为Cloudwatch。 对于EB docker stdouterr日志,我将cwl-log-setup.config文件改编为以下内容: Mappings: CWLogs: ApplicationLogGroup: LogFile: "/var/log/eb-docker/containers/eb-current-app/*" TimestampFormat: "%d/%b/%Y:%H:%M:%S %z" Outputs: ApplicationLogGroup: Description: "The name of the Cloudwatch Logs Log Group created for this environments web server access logs. You can specify this by setting the value for the environment variable: WebRequestCWLogGroup. Please note: if […]

Elastic Beanstalk单容器泊坞窗 – 使用awslogslogging驱动程序

我使用单容器Dockerconfiguration在Elastic Beanstalk上运行单个Docker容器,并尝试使用awslogs日志logging驱动程序将应用程序stdout发送到CloudWatch。 EB寻找一个Dockerrun.aws.json文件来configuration容器,但据我所见,没有select使用awslogs作为容器的日志logging驱动程序(或者添加任何其他标志到docker run命令那件事)。 我已经尝试使用这里提供的答案.ebextensions/01-commands.config docker run命令,通过添加一个文件.ebextensions/01-commands.config与内容: commands: add_awslogs: command: 'sudo sed -i "s/docker run -d/docker run –log-driver=awslogs –log-opt awslogs-region=eu-west-2 –log-opt awslogs-group=dockerContainerLogs -d/" /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh' 这是有效的,因为它会修改运行脚本,并在CloudWatch中显示日志。 但EB申请死亡。 容器已经打开,但没有回应请求。 我在容器日志中发现以下错误: “logs”命令仅支持“json-file”和“journald”日志驱动程序(got:awslogs) 我find与ECS(而不是EB)build议追加ECS_AVAILABLE_LOGGING_DRIVERS与awslogs类似的问题的答案。 但是我在EB中找不到这个configuration。 有什么想法吗?

AWSconfigurationBash One Liner

任何人都可以告诉我如何使用bash来自动configurationbash中的awsconfiguration吗? 例: $ aws configure –profile user2 AWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLE AWS Secret Access Key [None]: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY Default region name [None]: us-east-1 Default output format [None]: text 应用程序:我想在Docker入口点自动化这个!

ECS将不会启动实例,“由于无法find资源,无法执行任务”。

我无法弄清楚为什么我的ecs服务不会启动,并不断发出错误“服务无法放置任务,因为资源无法find”。 在我的任务定义中,我有500个CPU单位专用和250个内存,只是一个非常小的样本节点应用程序,只是提供我的静态资产。 我正在启动我的服务与1任务,没有ELB。

在生产中使用PredictionIO

我已经在本地安装了PredictionIO,使用通用build议模板对引擎进行了培训,我根据自己的需求进行了修改,一切看起来都不错。 现在我知道这可以满足我的需求,但是我希望将其部署到生产环境中,但不幸的是,这方面的文档并不多。 理想情况下,我希望在AWS上部署所有的东西,其中有一部分描述它的文档,但是因为CloudFormation模板被禁用,所以没有用处。 我正在考虑使用Docker来实现它,但我对整个堆栈缺乏了解,并希望了解以下内容: 数据在哪里存储? hbase好像是“数据库”,把它和其余的服务器(事件服务器,预测服务器)放在同一台服务器上不是危险的吗? 它如何扩展? 需要在负载平衡器后面运行PredictionIO的多个实例还是足够了? 如果是的话,该如何实现? 什么是一个好的分布式架构? 为了扩展,我敢肯定,我们需要将EventServer与PredictionServer分开,这样做的好方法是什么? 希望有人能帮忙。 谢谢。 西里尔

在AWS beanstalk下将特定的EBS卷挂载到Docker

AWS Beanstalk可以从Docker容器运行应用程序。 如文档( http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_image.html )中所述,可以在Dockerrun.aws.json中将目录映射写入EC2卷: "Volumes": [ { "HostDirectory": "/var/app/mydb", "ContainerDirectory": "/etc/mysql" } 但是,可以挂载特定的EBS卷吗? Fe我需要在Docker容器中运行db并使用Beanstalk进行部署。 很明显,我需要持续的数据,备份/恢复数据库等。

在尝试连接到AWS ECS EC2实例中的容器时,在$ PATH中找不到可执行文件

我很难搞清楚如何通过ssh连接到我的EC2实例中的Docker容器。 基本上,我可以进入服务器好,并使用docker ps列出我的容器。 但是,我无法在该容器中获得一个shell来运行我需要运行的一些shell脚本。 本地,我只是使用… docker attach [cid] # or 'docker exec -it [cid] bash' to open new shell …但是,有明显的问题与运行docker attach和docker exec -it [cid] bash我越来越… rpc error: code = 2 desc = "oci runtime error: exec failed: exec: \"bash\": executable file not found in $PATH" 为了提供一些细节,我相信我已经正确地设置了ECS。 从适用的社区AMI amzn-ami-2016.03.e-amazon-ecs-optimized我已完成以下设置: 一个适用的ecsInstanceRole和ecsServiceRole 正在运行的EC2实例。 指向该实例的负载均衡器。 ECS中的标记存储库。 指向ECS存储库的ECS任务定义。 一个ECS集群,分配了一个实例插槽,并通过(我相信)启动脚本成功地与EC2相关联。 这个集群还有一个与我提到的负载平衡器相关的服务以及相关的任务定义。 […]

将环境variables提供给弹性beanstalk docker部署

我有一个Dockerfile,通过使用用户访问令牌从github中获取私人回购: ARG DEPLOYMENT_TOKEN RUN git clone https://$DEPLOYMENT_TOKEN:x-oauth-basic@github.com/company-org/api.git /tmpapp/ 现在当我在弹性beanstalk中创build一个新的应用程序和环境时,如何在第一次尝试构buildDocker镜像和部署时如何提供具有该访问令牌的弹性beanstalk? 这可以传递给eb cli命令eb创build? eb create –envvars DEPLOYMENT_TOKEN=$DEPLOYMENT_TOKEN 那么当应用程序尝试创build环境并进行部署时,它将包含环境variables,以便在构build泊坞窗图像时能够从私人回购站点获取该环境variables? 我知道eb setenv允许你在成功部署后设置一个环境variables,但是我想为docker构build过程做这个。 我不想通过使用容器描述中的环境密钥将访问令牌放在Dockerrun文件中。 { "containerDefinitions": [ { "name": "myContainer", "image": "something", "environment": [ { "name": "MY_DB_PASSWORD", "value": "password" } ], 因为这意味着任何人都可以获得信息,无论如何,我甚至不确定这些信息是否可行。 我也考虑过了,现在正在研究这个问题。

AWS Elastic Beanstalk中的多容器Dockerconfiguration版本错误

尝试在dockerrun.aws.json文件的帮助下,将Elastic Beanstalk中的mysql与phabricator链接起来,如下所示。 但它播放错误 [Instance: i-cdbaf100 Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: Invalid Dockerrun.aws.json version, abort deployment. Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI. 有人可以帮助解决这个问题吗? 这里是Dockerfile.aws.json文件: { "AWSEBDockerrunVersion": 2, "containerDefinitions": [ { "name": "mysql-database", "image": "mysql", "essential": true, "memory": 400 }, { "name": "phabricator-only", […]

AWS Docker部署

我有一个自定义的docker镜像上传到ECS。 我打开了权限来尝试解决这个问题(一旦我能得到这个工作,我将再次locking它)。 我试图将docker映像部署到弹性beanstalk。 我有一个docker启用弹性beanstalk环境设置。 根据AWS文档,如果我从AWS内部拉取图像,则不需要传入证书。 所以我上传我的Dockerrun.aws.json文件并尝试安装它。 它失败,错误: 命令在实例上失败。 返回代码:1输出:无法使用ECR对“us-east-1”中的registry“434875166128”进行身份validation。 挂钩/opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh失败。 有关更多详细信息,请使用控制台或EB CLI检查/var/log/eb-activity.log。 /var/log/eb-activity.log信息没有任何用处。 这是我的Dockerrun.aws.json文件: { "AWSEBDockerrunVersion": "1", "Image": { "Name": "{id000xxxx}.dkr.ecr.us-east-1.amazonaws.com/my-repo:1.0.0", "Update": "true" }, "Ports": [ { "ContainerPort": "4000" } ], "Logging": "/var/log/app-name" } 我也尝试在S3中添加dockercf.json文件的authentication。 这对我也不起作用。 请注意,我正在使用商家帐户而不是个人帐户,因此可能会有一些未知的差异。 谢谢! 更新:我的用户现在也有完整的权限,所以不应该有任何权限明智的方式。