Cómo ’emular’ un entorno de AWS Elastic Beanstalk localmente

Revelación completa, no soy un experto en Java, así que daré algunos consejos de la pila C # y el servidor web IIS.

Es muy poco lo que debe hacer para asegurarse de que su configuración local se ejecutará en ElasticBeanstalk. Si se trata de un sitio web que está desarrollando, asegúrese de utilizar localhost como servidor web local. El servidor web que está utilizando localmente debe ser el mismo servidor web que planea ejecutar en ElasticBeanstalk.

Entonces, si estoy creando un sitio web .NET, tendré IIS ejecutándose localmente ya que usaré IIS en ElasticBeanstalk.

La segunda cosa a tener en cuenta son las claves de AWS. Para que esto sea perfecto entre su carga de desarrollo y producción, necesita saber cómo se usan las claves de AWS en la instancia EC2 en la que se ejecuta Elasticbeanstalk. El mecanismo principal para hacer esto sin interrupciones es colocar las claves de AWS en las variables de entorno cuando se desarrolla localmente. Esto es para que coincida con lo que EC2 va a hacer debajo del capó, ya que esencialmente usa variables de entorno para que las claves de AWS accedan a sus recursos.

NO use la configuración de perfil de AWS en su código si tiene la intención de usar ElasticBeanstalk. Estos perfiles no existirán cuando vaya a ElasticBeanstalk y su sistema no funcionará. Utilice variables de entorno cuando se ejecute localmente y credenciales de perfil de instancia cuando vaya a su entorno de producción. Ver aquí para más información.

Si utiliza un entorno como Eclipse, debería recibir un buen soporte. En la página vinculada a continuación, AWS describe las pruebas de forma local y remota.

Desarrollar, probar e implementar

Los principios que debe usar en su código no son diferentes a las mejores prácticas en cualquier lugar. Principalmente, no codifique: variables de configuración abstractas como puntos finales DB en archivos / banderas de configuración, y encuentre una forma de especificar el entorno en la línea de comando para recoger un archivo de configuración en particular. No haga nada loco en el código ni use bibliotecas oscuras que pueden no portarse fácilmente (raro, pero sucede)

Su WAR debe reflejar los requisitos de AWS.