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.
Tópicos
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).
Tópicos
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 --regionregion
Como criar um bucket do Amazon S3 (console)
-
Abra o console do Amazon S3, em https://console.aws.amazon.com/s3/
. -
No console do Amazon S3, escolha Criar bucket.
-
Na caixa Nome do bucket, digite um nome para o bucket.
-
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
-
Na máquina de desenvolvimento, mude para a pasta na qual os arquivos estão armazenados:
cd /tmp/WordPressnota
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
/tmpem vez de/tmp/WordPress, o empacotamento começará com arquivos e subpastas na pastatmp, o que pode incluir mais do que a subpastaWordPress. -
Chame o comando create-application para registrar um novo aplicativo denominado
WordPress_App:aws deploy create-application --application-name WordPress_App -
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-filesEsse 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 bucketamzn-s3-demo-buckete registra informações no CodeDeploy sobre a revisão obtida por upload.