Problemas de rede ao criar ambientes do Beanstalk a partir de uma AMI

1

Estou usando a interface da Web beanstalk elástica da AWS para criar um ambiente com base em uma AMI existente que tenha nosso aplicativo implantado nela.

O ambiente é criado, o aplicativo é acessível por meio do IP da instância ec2. no entanto, a integridade do ambiente mantém-se como "Pendente" por 15 minutos e, em seguida, degrada-se para Grave depois disso com esses erros no log do ambiente:

2017-10-22 15:57:50 UTC+0300 INFO Launched environment: Winfooztest->env-6. However, there were issues during launch. See event log for >details.

2017-10-22 15:57:49 UTC+0300 ERROR The EC2 instances failed to >communicate with AWS Elastic Beanstalk, either because of configuration >problems with the VPC or a failed EC2 instance. Check your VPC >configuration and try launching the environment again. 2017-10-22 15:57:49 UTC+0300 ERROR Stack named 'awseb-e-ypy7mg2pta->stack' aborted operation. Current state: 'CREATE_FAILED' Reason: The >following resource(s) failed to create[AWSEBInstanceLaunchWaitCondition].

2017-10-22 15:56:16 UTC+0300 WARN Environment health has >transitioned from Pending to Severe. Initialization in progress (running >for 16 minutes). None of the instances are sending data.

2017-10-22 15:41:48 UTC+0300 INFO Created CloudWatch alarm named: >awseb-e-ypy7mg2pta-stack-AWSEBCloudwatchAlarmHigh-QVXFWC3HZS5S

Então, o que entendi aqui é que a instância é criada, mas não está conseguindo se comunicar com o pé de feijão elástico. Em contraste com o senso comum de segurança, e para identificar o problema, tentei manter minha configuração de VPC o mais pública possível. Aqui está o que eu fiz:

VPC type: Created a "VPC with a single public subnet"

IPv4 CIDR block: 10.0.0.0/16

Public subnet's IPv4 CIDR: 10.0.0.0/24

Visibility: public

Checked the option to have a public IP address for the VPC

Security group - Inbound: ALL Traffic|ALL|ALL|0.0.0.0/0

Security group - Outbound: ALL Traffic|ALL|ALL|0.0.0.0/0

Environment is configured to use a load balancer.

Sem sorte.

Eu sei que há um pequeno ajuste de rede que preciso fazer. Eu arranhei muito minha cabeça (e meu mecanismo de busca). o que estou perdendo? Você pode ajudar?

    
por SaryA 22.10.2017 / 15:00

1 resposta

0

O Elastic Beanstalk espera que determinados scripts estejam em sua AMI. Esses scripts são executados pelo Beanstalk durante diferentes eventos do ciclo de vida, como a implantação e o encerramento do aplicativo. Sem esses scripts, não há como o Beanstalk se comunicar com sua instância.

A melhor abordagem aqui é construir sua AMI usando o link do empacotador de um dos modelos pré-configurados link

Elastic Beanstalk uses a standardized directory structure for hooks, which are scripts that are run during lifecycle events and in response to management operations: when instances in your environment are launched, or when a user initiates a deployment or uses the restart application server feature.

Hooks are organized into the following folders:

appdeploy — Scripts run during an application deployment. Elastic Beanstalk performs an application deployment when new instances are launched and when a client initiates a new version deployment. configdeploy — Scripts run when a client performs a configuration update that affects the software configuration on-instance, for example, by setting environment properties or enabling log rotation to Amazon S3. restartappserver — Scripts run when a client performs a restart app server operation. preinit — Scripts run during instance bootstrapping. postinit — Scripts run after instance bootstrapping.

    
por 22.10.2017 / 15:45