Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

264
Views
Desencadene una acción en todas las instancias de la aplicación Elastic beanstalk cuando cambie un archivo en S3

Mi aplicación Spring-Boot que se ejecuta en AWS Elasic Beanstalk carga datos desde una ubicación en Amazon S3. Los datos se actualizan cada 10 minutos y quiero que todas las instancias de beanstalk vuelvan a cargar los datos de S3.

Tenía una manera hacky de hacer esto. Hice lo siguiente.

 1. Implemented an end point in beanstalk application which, when called, triggers the reload. 2. I have a script that determines the IP address of each beanstalk instance given the beanstalk application's `environment name`. 3. I then iterate through all these IP addresses and call the end point mentioned in point 1 above.

Esto funcionó hasta ahora porque las direcciones IP de las instancias eran direccionables públicamente. Este ya no será el caso ya que tenemos que usar solo IP privadas.

¿Cuál es la forma correcta de activar la recarga de datos? Estaba pensando en lo siguiente:

 1. Set up Amazon S3 bucket to generate an event and post to a SNS topic. 2. Have an SNS client in my beanstalk application which subscribes to that topic and listens for events. 3. Upon receiving an event from that topic, trigger the data reload.

He hecho (1) pero no sé cómo hacer (2) y (3). ¿Cómo me suscribo al tema en código Java? SNS permite solo 3 métodos de notificación: mediante SQS (servicio de cola simple de AWS), SMS y URL HTTP/HTTPS.

El enfoque de URL no funcionará porque reenviará la solicitud a una sola instancia detrás del balanceador de carga. Por lo tanto, no todas las instancias se recargarán.

SQS tampoco funcionará porque una vez que una instancia lea el mensaje, el mensaje se quitará de la cola y las otras instancias no recibirán el mensaje desencadenante.

El correo electrónico tampoco funcionará (o no sé cómo hacerlo funcionar).

¿Alguna ayuda/idea? Los punteros al código Java serían muy apreciados.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Estoy en el mismo barco que usted, tengo una aplicación de escalado automático de ElasticBeanstalk y quiero que cada instancia de EC2 se suscriba a un tema de SNS. Por lo tanto, quiero saber cómo crear una URL para usar como punto final de escucha de mi suscripción. No estoy muy seguro de si Java recogerá mi dirección privada o pública con sus funciones de IP.

He visto comentarios en foros en línea que critican que agregar un oyente HTTP Post en su código para recibir los mensajes es una implementación horrible (desde una perspectiva de seguridad), esto solo implica que es posible. Sin embargo, en otros contextos, hablando de VPC, parece que las cosas comienzan a romperse nuevamente.

Incluso si resolviera todo lo anterior, el problema adicional que tendría es ejecutar el mismo código en mi máquina de desarrollo, lo más probable es que use mi dirección IP privada a la que no se puede acceder desde Internet, lo que hace que mi código falle y, de hecho, podría ser el mismo problema en la instancia EC2 si se recoge la dirección IP privada.

Por lo que he leído hasta ahora, es mejor que use Amazon SQS, registre algún tipo de cola de publicación/suscripción y luego busque actualizaciones de sus instancias EC2 con un tiempo de espera.

En mi caso, necesito averiguar si mi aplicación se está cerrando (ContextListener ayudará aquí) y luego detener el ciclo del receptor de la cola SQS, por lo que después de mi tiempo de espera, probablemente verifique si un indicador de apagado está configurado o no, si no se repite. otra vez.

Ciertamente parece mucho más complicado que el pub/sub SNS. Quería compartir lo que he aprendido con la esperanza de que pueda ayudarte a ti/otros mientras tanto. También comencé una pregunta aquí sobre el desbordamiento de pila con respecto a pub/sub dentro del contexto de las instancias EC2 de AWS Elastic Beanstalk.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!