Paso 3: Cargar la aplicación de WordPress en Amazon S3 - AWS CodeDeploy

Paso 3: Cargar la aplicación de WordPress en Amazon S3

Ahora preparará y cargará su contenido de origen en una ubicación desde la que CodeDeploy pueda implementarla. Las siguientes instrucciones explican cómo aprovisionar un bucket de Amazon S3, preparar los archivos de la revisión de la aplicación para el bucket, agrupar los archivos de la revisión y, a continuación, enviar la revisión al bucket.

nota

Aunque no se trata en este tutorial, puede utilizar CodeDeploy para implementar aplicaciones desde repositorios de GitHub en instancias. Para obtener más información, consulte Integración de CodeDeploy con GitHub.

Aprovisionar un bucket de Amazon S3

Cree un contenedor de almacenamiento o bucket en Amazon S3 o utilice un bucket existente. Asegúrese de que puede cargar la revisión en el bucket y que las instancias Amazon EC2 utilizadas en las implementaciones pueden descargar la revisión del bucket.

Para crear un bucket de Amazon S3, puede utilizar la AWS CLI, la consola de Amazon S3 o las API de Amazon S3. Después de crear el bucket, asegúrese de que concede permisos de acceso al bucket y a su cuenta de AWS.

nota

Los nombres de bucket deben ser únicos en Amazon S3 para todas las cuentas de AWS. Si no puede utilizar amzn-s3-demo-bucket, pruebe otro nombre de bucket, por ejemplo, amzn-s3-demo-bucket seguido de un guion y sus iniciales o algún otro identificador único. A continuación, cuando aparezca amzn-s3-demo-bucket en este tutorial, asegúrese de sustituirlo por el nombre de su bucket.

El bucket de Amazon S3 debe crearse en la misma región de AWS en la que se lanzan las instancias de Amazon EC2 de destino. Por ejemplo, si crea el bucket en la región Este de EE. UU. (Norte de Virginia), sus instancias de Amazon EC2 de destino deben lanzarse en la región Este de EE. UU. (Norte de Virginia).

Para crear un bucket de Amazon S3 (CLI)

Llame al comando mb para crear un bucket de Amazon S3 denominado amzn-s3-demo-bucket:

aws s3 mb s3://amzn-s3-demo-bucket --region region

Para crear un bucket de Amazon S3 (consola)

  1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3.

  2. En la consola de Amazon S3, elija Crear bucket.

  3. En el cuadro Bucket name (Nombre del bucket), escriba un nombre para el bucket.

  4. En la lista Region (Región), elija la región de destino y, a continuación, seleccione Create (Crear).

Otorgar permisos al bucket de Amazon S3 y a la cuenta de AWS

Debe tener permisos para cargar en el bucket de Amazon S3. Puede especificar estos permisos mediante una política de bucket de Amazon S3. Por ejemplo, en la siguiente política de bucket de Amazon S3, el uso del carácter comodín (*) permite a la cuenta de AWS 111122223333 cargar archivos en cualquier directorio del bucket de Amazon S3 denominado amzn-s3-demo-bucket:

{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "111122223333" ] } } ] }

Para ver el ID de su cuenta de AWS, consulte Búsqueda del ID de su cuenta de AWS.

Ahora es un buen momento para comprobar que el bucket de Amazon S3 permite las solicitudes de descarga de cada instancia de Amazon EC2 participante. Puede especificarlos mediante una política de bucket de Amazon S3. Por ejemplo, en la siguiente política de bucket de Amazon S3, el carácter comodín (*) permite a cualquier instancia de Amazon EC2 asociada a un perfil de instancia de IAM que contenga el ARN arn:aws:iam::444455556666:role/CodeDeployDemo descargar desde cualquier directorio al bucket de Amazon S3 llamado amzn-s3-demo-bucket:

{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }

Para obtener información acerca de cómo generar y adjuntar una política de bucket de Amazon S3, consulte Ejemplos de política de bucket.

Para obtener información acerca de cómo crear y adjuntar una política de IAM, consulte Trabajo con políticas.

Preparación de los archivos de la aplicación para el bucket

Asegúrese de que los archivos de la aplicación de WordPress, el archivo AppSpec y los scripts estén organizados en el equipo de desarrollo de manera similar a la siguiente:

/tmp/ |--WordPress/ |-- appspec.yml |-- scripts/ | |-- change_permissions.sh | |-- create_test_db.sh | |-- install_dependencies.sh | |-- start_server.sh | |-- stop_server.sh |-- wp-admin/ | |-- (various files...) |-- wp-content/ | |-- (various files...) |-- wp-includes/ | |-- (various files...) |-- index.php |-- license.txt |-- readme.html |-- (various files ending with .php...)

Agrupación de los archivos de la aplicación en un único archivo de almacenamiento y envío del archivo de almacenamiento

Agrupe los archivos de la aplicación de WordPress y el archivo AppSpec en un archivo de almacenamiento (lo que se conoce como una revisión de la aplicación).

nota

Es posible que se cobre por almacenar objetos en un bucket y por transferir revisiones de la aplicación dentro y fuera de un bucket. Para obtener más información, consulte Precios de Amazon S3.

  1. En el equipo de desarrollo, cambie a la carpeta en la que se almacenan los archivos:

    cd /tmp/WordPress
    nota

    Si no cambia a esta carpeta, la agrupación del archivo comenzará en su carpeta actual. Por ejemplo, si la carpeta actual es /tmp en lugar de /tmp/WordPress, la agrupación comenzará con los archivos y subcarpetas de la carpeta tmp, lo que puede incluir algo más que la subcarpeta WordPress.

  2. Llame al comando create-application para registrar una aplicación nueva denominada WordPress_App.

    aws deploy create-application --application-name WordPress_App
  3. Llame al comando push de CodeDeploy para agrupar los archivos, cargar las revisiones en Amazon S3 y registrar información con CodeDeploy sobre la revisión cargada, todo con una acción.

    aws deploy push \ --application-name WordPress_App \ --s3-location s3://amzn-s3-demo-bucket/WordPressApp.zip \ --ignore-hidden-files

    Este comando agrupa los archivos del directorio actual (excepto los archivos ocultos) en un único archivo de almacenamiento denominado WordPressApp.zip, carga la revisión en el bucket amzn-s3-demo-bucket y registra en CodeDeploy información sobre la revisión cargada.