Articles of amazon web services

AWS EC2安全组/ ACL – 拒绝仅出站到一个/ 24子网

我有一个奇怪的情况,我不知道如何解决。 通常这可以通过子网ACL来实现 – 但是它们不是有状态的。 我需要“回复”build立的数据包,以允许返回(如典型的防火墙) 我有一个公共和私人子网。 公众需要连接到互联网,所以我有出站允许0.0.0.0/0,但我想限制出站的特定子网(例如10.100.1.0/24和10.150.2.0/24) 我当然可以在ACL中设置它,因为它允许“拒绝”,但是它不允许回复数据包,因为它不是有状态的。 是在其他内部子网上用“入站”规则来控制这个唯一的select吗? 对于我们不同的networking来说,这样做会有更多的规则,因为只要将其限制在出站networking上就会更清洁。 任何想法都是受欢迎的,包括重新devise整个事情(这是绿地) 下面的评论要求进一步澄清环境需求,所以这里是要求我build立的环境: 把它想象成一个地方和DMZ: 公共子网10.200.0.0/24中的实例无法启动到私有子网10.100.0 / 24的新的出站连接。 私有子网10.100.0.0/24中的实例可以启动到公有子网的新的出站连接(ssh,部署代码等)。 公共子网需要自由发起到互联网的出站stream量 由于ACL的限制,如果我阻止从public> private出站,它将不允许返回数据包(因为它不是有状态的) 现在我唯一能想到的是在实例本身中依赖于iptables和windows防火墙,这是可能的,但是很难pipe理。 另一个想法是在EC2(更多$$)内部署软件防火墙,以有状态的方式允许/拒绝stream量。 另一台机器来pipe理。 另一个想法是让安全组拒绝来自公有子网的入站stream量进入专用子网的stream量,这个子网必须在私有子网内的所有实例上被允许。 问题是安全组没有拒绝规则。 再次不理想。 要么具有有状态ACL,要么允许安全组拒绝规则将完全解决问题。 不幸的是,在当前的AWS基础架构中都不可能。

创build多个AWS Lightsail实例时,是否可以在userData中获取instanceName?

我使用python api boto3来pipe理Lightsail实例的创build,并将创build的节点链接到salt-master,这里是代码的一部分: boot_script=''' curl -L https://bootstrap.saltstack.com -o install_salt.sh sh install_salt.sh -P sed -i 's/#master: salt/master: salt.my-domain.com/' /etc/salt/minion rm -f /etc/salt/minion_id ''' def main(args): client = boto3.client('lightsail') client.create_instances( instanceNames=[ 'test-01', 'test-02', 'test-03', ], availabilityZone='eu-west-2a', blueprintId='amazon_linux_2017_03_1_1', bundleId='nano_1_0', userData=boot_script, keyPairName='salt_master' ) 那么,我怎样才能通过userData设置其实例名的值? 还是有其他的解决scheme吗? 谢谢。

如何在AWS Auto Scaling组中configuration扩展策略?

我正在尝试configurationAWS Auto Scaling Group缩减策略。 我已经configuration了ASG来增加实例的数量,如果平均CPU增加到一定的门槛以上,它的工作原理,但我有麻烦configuration相反的政策。 我想扩大到平均CPU低于一定的阈值。 我已经创build了一些testing策略,这是我configuration的扩展策略: 这是规模政策: 如果我已经使用已configuration阈值的CloudWatch策略,那么应该如何configuration“执行操作”部分? 它也总是检查“> =”,我不能把它改为“<=”…

在AWS上运行Kubernetes上的Kafka

我有以下情况: 3个节点实例遍布3个可用区域 6个在StatefulSets中使用AWS外部卷来运行Kafka数据的代理。 实例大小:m4.2xlarge EBS卷:st1 – 500 GiB 在Kubernetes资源级别没有限制请求和内存设置(不适合生产 – 必须设置资源限制)1个主题,6个分区,不复制。 与卡夫卡版本0.11.0一起使用librdkafka 生产者发送一个大小为100字节的消息 这里的命令是: kubectl exec -it kafka-kafka-librdkafka — examples/rdkafka_performance -P -t test -s 100 -b kafka-kafka-headless:9092 -X request.timeout.ms=900000 -X batch.num.messages=10000 -X queue.buffering.max.ms=1000 结果: % Sending messages of size 100 bytes % 500000 messages produced (50000000 bytes), 0 delivered (offset 0, 0 failed) in 1000ms: […]

如何在ECS Auto Scaling环境中自动执行EC2实例上的OS / ECS-agent更新?

首先,我觉得我还不了解AWS的一些基本概念,所以请耐心等待,如果这个问题是不好的。 我在AWS中有以下设置: 1个单一服务的ECS群集 群集configuration为使用1个单个EC2实例 此EC2实例是基于特定启动configuration的AutoScaling组的一部分。 (群集设置configuration它是这样的,这是有道理的,我猜。) 我已经发展了一些先入为主的条件 我不关心EC2实例,因为我的服务运行机器不可知论 我的服务一次只需要运行一个实例。 我只使用ECS来运行一个dockerized应用程序。 我不在意在特定的时间停机。 有一个预定义的Elastic IP必须与该服务一起使用。 我希望此服务尽可能自动化。 当出现问题时,我们可以解决问题(正常运行时间并不重要),但是我从来不想SSH到EC2实例或类似的东西。 借助CloudWatch和Lambda ,我设置了以下任务: 实例由集群名称标识,自动添加到Name标签。 每周一次,群集实例重新启动。 这会更新证书和configuration,因为服务在启动时会执行此操作。 (我可能也可以安排服务被杀死,重新启动集群内部……) 每次集群的新EC2实例启动时,都会分配预定义的弹性IP。 每个月一次, EC2实例被终止,由Auto Scaling Group启动的一个新的自动replace。 现在我的希望是,一旦Auto Scaling Group创build了一个新实例,它将拥有最新的,最大的AMI,包括最新的ECS代理。 纠正我,如果我错了,但当我看着这个Auto Scaling组的启动configuration,我想这不会是这样,因为它总是采取configuration的AMI。 我的一般问题是:这个设置有什么用处,当我需要每隔一段时间手动检查一次(何时完成)来更新启动configuration中的AMI,然后终止实例来取代一个新的实例它? 我知道很多人可能不希望在生产群集中自动执行操作系统更新,因为他们想先testing它。 但是,仍然有人可能想要有一个临时环境,在其中自动应用操作系统更新。 当我仍然需要手动推出操作系统更新时,为什么要使用高度自动化的平台? 这是对我的概念误解吗?

AWS中的Docker – 多弹性networking接口

我有一个docker集装箱运行Web服务器端口80上听(jenkins / jenkins:lts) 我在主机上有两个接口, 一个是专用于容器(一旦这个工作,它将被locking,只允许HTTP / HTTPS 以下是实例上的NICconfiguration(这是AWS,因此它们是弹性networking接口): 网关:10.10.20.1 eth0 ip 10.10.20.200 eth1 ip 10.10.20.111 路由configuration,因为这是不对称的路由: ip route添加默认通过10.10.20.1 dev eth0选项卡1 ip route添加默认通过10.10.20.1 dev eth1选项卡2 IP规则从10.10.20.111/32选项卡添加2优先级500 IP规则添加从10.10.20.200/32选项卡1优先级600 上述路线规则设定后,以下是一些输出: root@docker01:/home/ubuntu#ip route show tab 1 default via 10.10.20.1 dev eth0 root@docker01:/home/ubuntu# ip route show tab 2 default via 10.10.20.1 dev eth1 root@docker01:/home/ubuntu# ip rule 0: from all lookup […]

奇怪的AWS EC2可访问性问题 – Ubuntu,nginx,iPad

我不会说我是一个服务器pipe理的新手,但显然我错过了这里的一些关键时刻… 问题:从某个特定设备(运行Safari的Apple iPad(版本8.4.1(12H321)型号:MD515HC / A)访问网站时,连接到服务器的连接丢失(如通过服务器上的防火墙locking) 一段时间的ipad不活动后,连接回来。 如果在locking之前有一个到服务器的主动SSH连接 – 连接保持正常,但是无法build立到服务器的新连接(就好像所有的端口都closures了一样)。 Iptables的input/输出策略设置为ACCEPT。 Amazon EC2已将我的IP地址设置为允许所有stream量。 # iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain f2b-sshd (0 references) target prot opt source destination 常规的日志文件显示绝对没有相关信息。 # apparmor_status […]

将一个非常大的WordPress网站迁移到Amazon Beanstalk

我想迁移build立在Wordpress上的一个非常大的网站(15 GB)。 我已经按照这个白皮书 ,一切工作,因为它应该是一个新的或小的网站安装/迁移。 尽pipe我成功地使用MySQL Workbench来恢复数据库。 但我没有恢复我的文件(上传目录本身是12GB),我试图使用“Duplicator Pro”插件,但它不起作用,我直接上传文件到EC2实例使用sFTP,但我得到了很多问题与文件权限。 另外,我将文件上载到S3存储桶并启用了CloudFront,但这也不起作用。 我迷路了,我不知道如何完成这项工作,请帮助我,如果有任何推荐的方法来上传文件。

AWS NIC云计算和标记

AWS中的embedded式网卡是否可以使用云端标记? 如果没有,是否可以禁用embedded式网卡并创build一个新的资源,并将网卡连接到实例作为ID 0或唯一的networking接口?

我可以将RDS实例连接到基于软件的VPN(一个EC2实例)

详细来说,我有一个AWS EC2实例,运行一个SoftEther VPN服务器,一个AWS RDS实例和VPN上的客户端。 我需要做的是让我的RDS实例通过VPN连接到客户端,并将我们的数据的一些子集。 我一直在环顾四周,似乎我可以通过VPN获得我的RDS实例访问信息; 但是,它看起来像所有的文件是关于基于硬件的VPN。 我在AWS Docs中发现了一个基于软件的VPN。 我最大的问题是,是否可以在AWS中使用这种configuration(使用软件vpn而不是硬件vpn)。 如果是这样,你能提供一些关于如何做的文件吗? 提前多预感!