Tag: 亚马逊 ec2

为使用AWS,Flask和Docker的移动应用程序的后端devise寻求build议

我是新手后端开发人员,目前面临为社交移动应用程序创build后端的任务,该应用程序将存储用户和关注者信息以及用户数据(例如封面图片和个人资料照片)等信息。 我一直在使用Flask来路由HTTP请求,并在MySQL中本地处理CRUD操作。 在我尝试在AWS上部署的第一步,我一直在面对后端的整体devise方面的许多难题。 架构层 – 我最近已经接触到三层架构的后端,我不确定他们在当前“无服务器”部署时代的互操作性。 如果我打算使用CORS将用户数据存储在S3存储桶中,那么是否需要像Nginx这样的反向代理和像Gunicorn这样的服务? CORS在安全方面真的很糟糕,如果有的话,我该怎么做才能改进呢? Docker数据卷 – 我想要部署一个Docker容器作为持久数据的主要来源,而不是使用AWS RDS实例,以便按照我的指示保持内部实现。 如何通过这种方法确保可扩展性,并在访问或写入数据库时​​集成负载均衡? AWS的负载均衡服务是否严格要好,我应该打破保持内部信息的原则? 我如何处理迁移和未来的部署? 我借此机会学习尽可能多的后端开发技术,所以任何build议或指导将不胜感激。 非常感谢!

刀引导 – 配方无法find父目录

我引导一个docker集装箱,以便在启动时运行一些供应配方 该节点成功注册到厨师服务器上,并下拉所请求的配方,但是配方失败,因为它抱怨说找不到父目录。 目录和文件确实存在于预期的path中。 Chef::Exceptions::EnclosingDirectoryDoesNotExist ———————————————— Parent directory /path/to/dir does not exist. 我正在运行的引导命令是这样的 knife bootstrap $DOCKER_IP -N $DOCKER_IP -x ec2 -i ec2.pem –sudo -r 'recipe[app::_config]' -E dev 有没有人遇到类似这样的问题? 上面的配方在非Docker /非ec2实例上运行时正确运行。 这可能是原因吗?

Docker群集和发布的端口不可用

我有3个节点,经理和工作人员在谷歌云和工作人员在亚马逊aws,在我的群和相同的覆盖networking。 当在谷歌引擎上运行服务时,似乎都可以正常工作,发布的端口响应正常,但是当在aws上时,服务无法连接。 如果工作人员不够用,那么在Google上重新启动时就会再次工作。 想法?

Docker Exec Cronjobs填充Ec2实例磁盘空间,为什么?

我在一个Docker容器内的ec2实例上运行了大约100个每日cron任务。 大部分任务都是使用Luigi从某处拉取数据并将其上传到Redshift。 示例命令是: */30 * * * * docker exec -i container_name bash -c "cd /foo/bar && python run_script.py" >/home/ec2-user/logs/run_script 2>&1 我遇到的问题是ec2实例正在填满。 具体这个文件夹: 4108372 /var/lib/docker/devicemapper/devicemapper 4108772 /var/lib/docker/devicemapper 4113764 /var/lib/docker 4140796 /var/lib 4386484 /var 5486896 / 我现在有三个假设如何处理这个问题: 从默认的docker devicemapper loop-lvm切换到“production” direct-lvm 。 ( 来源 )。 不知道这是否能解决潜在的问题。 不要从ec2调用exec来运行容器内的任务,而是在Docker容器中安装crontab。 这个想法是恒定的docker exec命令正在产生一些输出,填补了实例。 放弃解决根本问题,完全自动部署,使我可以毫不费力地擦拭docker集装箱清洁每隔几天,并开始新鲜。 有没有人经历过这个? 对发生什么或在哪里看的任何想法? 先谢谢你。

是否build议在单个节点上运行docker swarm?

我目前有一些应用程序运行一些服务器,主要是digitalocean上的一个vps,inmotionhosting上的一个cpanel托pipe以及一个在现场实例上运行beanstal / tomcat的ec2实例。 我打算将所有应用程序迁移到AWS ec2现场实例的docker上运行。 为了保持我的IP固定,我将使用AWS Elastic IP地址(EIP)。 我的目标是拥有一个无状态的r3虚拟机,内存为30Gb,运行所有的Docker容器,并且有一个haproxy容器将代理端口80代理到基于dns的正确容器(nginx / tomcat / spring启动应用程序)。 我的问题是,我应该简单地运行我的docker集装箱在我的docker主机,或者我应该使用群模式,并为每个应用程序创build服务,即使知道我将只有这个节点在未来3年(是的,我需要像5Gb和它有30Gb的内存和networking吞吐量对我来说不成问题)。 以下是不正确的答案:*我不会很快有更多的节点,所以不要说我可以轻松地使用群扩展。 *如果实例终止,我知道我所有的应用程序都可能closures,但是我可以承受30分钟的停机时间,所以不要让我说我疯了。 运行群的优势是什么?不使用它有什么好处? 如果我坚持使用群,我如何备份我的群体状态,如果我只有一个经理。 现在我正在考虑使用s3同步(是否值得使用EFS?为什么呢?为什么?)如何将延迟?)绑定到主机上的文件夹到我的Web应用程序容器的容器,并有一个额外的EBS卷来存储数据我的数据库容器,这也将映射到容器。 再次,我知道EBS卷只能附加到一个实例,但我不会有超过一个很快,我不会使用EFS为我的数据库容器,因为延迟。

Docker端口在localhost中工作,但不在公网上

我开始与docker我有下一个docker – 撰写当我运行docker – 组成所有的成功,当我做curllocalhost工作正常,但是当我试图从公共ip访问不工作的连接超时。 version: '3' services: db: environment: – POSTGRES_PASSWORD=mipass – POSTGRES_USER=miuser – POSTGRES_DB=pdfdd image: postgres:9.6 web: restart: always tty: true stdin_open: true build: . command: python ./code/manage.py runserver 0.0.0.0:8000 volumes: – .:/code ports: – "8000:8000" depends_on: – db nginx: restart: always build: ./nginx/ ports: – "80:80" volumes: – /www/static – .:/code links: […]

如果使用“不重新启动”选项,Amazon EC2图像创build会中断docker文件夹

我有两台容器运行Docker的AWS Linux机器。 如果我使用“no-reboot”选项( aws ec2 create-image –no-reboot )创buildAMI,那么当我从该AMI创build机器时,Docker将会损坏,例如docker ps命令永远挂起。 我试图删除/var/run/docker并重新启动docker服务。 这没有帮助。 我试图从系统卸载docker,并安装回去,仍然没有运气。 我也正常创build了AMI,没有“不重启”,并且在这种情况下一切正常。 不重启AMI的创build如何影响这种方式呢? 我知道“无重启”选项的文档和含义,但是Docker如何破解如此核心,仍然很奇怪。 Docker version 1.12.6, build 7392c3b/1.12.6 Linux ip-10-0-1-124 4.4.10-22.54.amzn1.x86_64

如何以root用户Docker Cloud运行docker-compose

当我作为docker工作作为ec2用户组成 [ec2-user@ip-15-0-52-106 $ docker-compose –version docker-compose version 1.11.2, build dfed245 但作为root用户 [root@ip-15-0-52-106 ~]# docker-compose –version -bash: docker-compose: command not found 我找不到命令。 任何想法如何以root用户身份运行它

cron.d中的Crons不会在运行在Docker Container内的Ubuntu上运行

我写了一个非常小的程序,主要由Scrapy刮板组成。 我把它打包在docker集装箱里,需要用cron调用铲运机。 我的docker撰写文件是: version: '2' services: admin-panel: env_file: ./Admin-Panel/.env build: ./Admin-Panel/ volumes: – ./Admin-Panel/app:/code/app – ./Admin-Panel/flaskadmin.py:/code/flaskadmin.py ports: – "5000:5000" scraper: env_file: ./Admin-Panel/.env build: ./Scraper/ volumes: – ./Scraper/spiders:/spiders 我的Scraper Dockerfile是: FROM ubuntu:latest ENV TERM xterm RUN apt-get update RUN apt-get install -y python3-pip python3.5-dev build-essential RUN apt-get install -y libssl-dev nano cron libpq-dev libffi-dev curl ADD […]

在EC2中运行docker chrome节点不会下载文件

我在EC2中运行了一个hub和chrome节点。 当我运行我的下载testing时,我尝试search应该在我的testing中下载的文件,通常默认的下载path是/home/seluser/Downloads 。 当我运行docker exec -it我的Chrome节点进入了前面提到的目录,但是没有这个目录。 然后,我运行find命令查看我的文件是否在另一个目录中,但找不到该文件。 我曾尝试在我的MacBook Pro中运行集线器和Chrome节点。 但是当我运行并下载testing并在chrome节点中search下载的文件时,这些文件位于/home/seluser/Downloads 。 你有什么想法,为什么不被EC2下载?