Etapa 3: carregar seu aplicativo WordPress no Amazon S3 - AWS CodeDeploy

Etapa 3: carregar seu aplicativo WordPress no Amazon S3

Agora, você preparará e carregará seu conteúdo original em um local a partir de onde o CodeDeploy possa implantá-lo. As instruções a seguir mostram como provisionar um bucket do Amazon S3, preparar os arquivos da revisão de aplicativo para o bucket, agrupar os arquivos da revisão e, em seguida, enviá-la para esse bucket.

nota

Embora não discutido neste tutorial, você pode usar o CodeDeploy para implantar aplicativos de repositórios GitHub em instâncias. Para obter mais informações, consulte Integrar o CodeDeploy com o GitHub.

Provisionar um bucket do Amazon S3

Crie um contêiner de armazenamento, ou bucket, no Amazon S3, ou use um bucket existente. Certifique-se de que você possa carregar a revisão no bucket e de que as instâncias do Amazon EC2 usadas nas implantações possam baixá-la desse bucket.

Você pode usar a AWS CLI, o console do Amazon S3 ou as APIs do Amazon S3 para criar um bucket do Amazon S3. Depois de criar o bucket, certifique-se de dar permissões de acesso a ele e à sua conta do AWS.

nota

Os nomes de buckets devem ser exclusivos no Amazon S3 para todas as contas da AWS. Se não for possível usar amzn-s3-demo-bucket, tente um nome de bucket diferente, como amzn-s3-demo-bucket, seguido por um traço e suas iniciais ou algum outro identificador exclusivo. Em seguida, certifique-se de substituir o nome do bucket por amzn-s3-demo-bucket sempre que essa identificação aparecer neste tutorial.

O bucket do Amazon S3 deve ser criado na mesma região da AWS em que as suas instâncias do Amazon EC2 de destino são executadas. Por exemplo, se você criar o bucket na região Leste dos EUA (Norte da Virgínia), suas instâncias do Amazon EC2 de destino devem ser lançadas na região Leste dos EUA (Norte da Virgínia).

Como criar um bucket do Amazon S3 (CLI)

Chame o comando mb para criar um bucket do Amazon S3 denominado amzn-s3-demo-bucket:

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

Como criar um bucket do Amazon S3 (console)

  1. Abra o console do Amazon S3, em https://console.aws.amazon.com/s3/.

  2. No console do Amazon S3, escolha Criar bucket.

  3. Na caixa Nome do bucket, digite um nome para o bucket.

  4. Na lista Região, escolha a região de destino e escolha Criar.

Conceda permissões ao bucket do Amazon S3 e à conta do AWS

Você deve ter permissões para fazer upload no bucket do Amazon S3. Você pode especificar essas permissões por meio de uma política de bucket do Amazon S3. Por exemplo, na seguinte política de bucket do Amazon S3, o uso do caractere curinga (*) permite que a conta AWS da 111122223333 faça upload de arquivos para qualquer diretório no bucket do Amazon S3 chamado amzn-s3-demo-bucket:

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

Para visualizar o ID da sua conta da AWS, consulte Localizar o ID da sua conta da AWS.

Agora é um bom momento para verificar se o bucket do Amazon S3 permitirá solicitações de download de cada instância participante do Amazon EC2. É possível especificar isso por meio de uma política do bucket do Amazon S3. Por exemplo, na seguinte política de bucket do Amazon S3, usar o caractere curinga (*) permite que qualquer instância do Amazon EC2 com um perfil de instância anexado do IAM contendo o ARN arn:aws:iam::444455556666:role/CodeDeployDemo faça o download de arquivos de qualquer diretório no bucket do Amazon S3 chamado de 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 obter informações sobre como gerar e anexar uma política de bucket do Amazon S3, consulte Exemplos de políticas de bucket.

Para obter informações sobre como criar e anexar uma política do IAM, consulte Trabalhando com políticas.

Preparar os arquivos do aplicativo para o bucket

Certifique-se de que os arquivos do aplicativo WordPress, o arquivo AppSpec e os scripts estejam organizados na sua máquina de desenvolvimento de maneira semelhante à seguinte:

/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...)

Agrupar os arquivos do aplicativo em um único arquivamento e enviar o arquivamento

Agrupe os arquivos do aplicativo WordPress e o arquivo AppSpec em um arquivamento (conhecido como uma revisão de aplicativo).

nota

Você pode ser cobrado por armazenar objetos em um bucket e por transferir revisões de aplicativos para dentro e fora de um bucket. Para obter mais informações, consulte Preço do Amazon S3.

  1. Na máquina de desenvolvimento, mude para a pasta na qual os arquivos estão armazenados:

    cd /tmp/WordPress
    nota

    Se você não mudar para essa pasta, o empacotamento de arquivos começará na sua pasta atual. Por exemplo, se a sua pasta atual for /tmp em vez de /tmp/WordPress, o empacotamento começará com arquivos e subpastas na pasta tmp, o que pode incluir mais do que a subpasta WordPress.

  2. Chame o comando create-application para registrar um novo aplicativo denominado WordPress_App:

    aws deploy create-application --application-name WordPress_App
  3. Chame o comando push do CodeDeploy para agrupar os arquivos, carregar as revisões no Amazon S3 e registrar informações no CodeDeploy sobre a revisão obtida por upload, tudo em uma única ação.

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

    Esse comando empacota os arquivos do diretório atual (excluindo todos os arquivos ocultos) em um único arquivamento, denominado WordPressApp.zip, faz upload da revisão no bucket amzn-s3-demo-bucket e registra informações no CodeDeploy sobre a revisão obtida por upload.