

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usar um bucket do Amazon S3
<a name="gettingstarted.walkthrough.photoapp"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

Os aplicativos, muitas vezes, utilizam um bucket do Amazon Simple Storage Service (Amazon S3) para armazenar grandes itens, como imagens ou outros arquivos de mídia. Embora o OpsWorks Stacks não forneça suporte integrado para o Amazon S3, você pode personalizar facilmente uma pilha para permitir que seu aplicativo use o armazenamento do Amazon S3. Este tópico oferece orientação sobre como o processo básico de fornecer acesso a aplicativos ao Amazon S3, usando uma pilha do Linux com um servidor de aplicativos PHP como um exemplo. Os princípios básicos também se aplicam a pilhas do Windows.

O conteúdo entregue aos buckets do Amazon S3 pode conter conteúdo do cliente. Para obter mais informações sobre a remoção de dados confidenciais, consulte [Como faço para esvaziar um bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) ou [Como faço para excluir um bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).

**Topics**
+ [

# Etapa 1: crie um bucket do Amazon S3
](using-s3-bucket.md)
+ [

# Etapa 2: criar uma PHP App Server Stack
](using-s3-stack.md)
+ [

# Etapa 3: criar e implantar um livro de receitas personalizado
](using-s3-cookbook.md)
+ [

# Etapa 4: atribuir as receitas aos LifeCycle eventos
](using-s3-events.md)
+ [

# Etapa 5: adicionar informações de acesso aos atributos de configuração e implantação da pilha
](using-s3-json.md)
+ [

# Etapa 6: implantar e executar PhotoApp
](using-s3-run.md)

# Etapa 1: crie um bucket do Amazon S3
<a name="using-s3-bucket"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

Primeiro, é necessário criar um bucket do Amazon S3. Você pode fazer isso diretamente usando a API, a CLI ou o console do Amazon S3. Porém, uma maneira mais simples de criar recursos normalmente é usar um modelo do CloudFormation . O modelo a seguir cria um bucket do Amazon S3 para este exemplo e configura o [perfil de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html) com um [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html) que concede acesso irrestrito ao bucket. Em seguida, você pode usar uma camada para anexar o perfil da instância às instâncias do servidor de aplicativos da pilha, o que permite que o aplicativo acesse o bucket, conforme descrito mais adiante. A utilidade de perfis de instância não fica limitada ao Amazon S3. Eles são valiosos para integrar uma variedade de serviços da AWS. 

```
{
   "AWSTemplateFormatVersion" : "2010-09-09",
   "Resources" : {
      "AppServerRootRole": {
         "Type": "AWS::IAM::Role",
         "Properties": {
            "AssumeRolePolicyDocument": {
               "Statement": [ {
                  "Effect": "Allow",
                  "Principal": {
                     "Service": [ "ec2.amazonaws.com" ]
                  },
                  "Action": [ "sts:AssumeRole" ]
               } ]
            },
            "Path": "/"
         }
      },
      "AppServerRolePolicies": {
         "Type": "AWS::IAM::Policy",
         "Properties": {
            "PolicyName": "AppServerS3Perms",
            "PolicyDocument": {
               "Statement": [ {
                  "Effect": "Allow",
                  "Action": "s3:*",
                  "Resource": { "Fn::Join" : ["", [ "arn:aws:s3:::", { "Ref" : "AppBucket" } , "/*" ]
                  ] }
               } ]
            },
            "Roles": [ { "Ref": "AppServerRootRole" } ]
         }
      },
      "AppServerInstanceProfile": {
         "Type": "AWS::IAM::InstanceProfile",
         "Properties": {
            "Path": "/",
            "Roles": [ { "Ref": "AppServerRootRole" } ]
         }
      },
     "AppBucket" : {
      "Type" : "AWS::S3::Bucket"
      }
   },
   "Outputs" : {
       "BucketName" : {
           "Value" : { "Ref" : "AppBucket" }
       },
       "InstanceProfileName" : {
           "Value" : { "Ref" : "AppServerInstanceProfile" }
       }
   }
}
```

Várias coisas acontecem quando você inicia o modelo:
+ O recurso `[AWS::S3::Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html)` cria um bucket do Amazon S3.
+ O recurso `[AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)` cria um perfil de instância que será atribuído à instâncias do servidor de aplicativos.
+ O recurso `[AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)` cria a função do perfil de instância.
+ O recurso `[AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)` define as permissões do perfil para conceder acesso irrestrito aos buckets do Amazon S3.
+ A seção `Outputs` exibirá os nomes do bucket e do perfil de instância no console do CloudFormation depois que você iniciar o modelo.

  Você precisará desses valores para configurar sua pilha e aplicativo.

Para obter mais informações sobre como criar CloudFormation modelos, consulte [Learn Template Basics.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html)

**Criar o bucket do Amazon S3**

1. Copie o modelo de exemplo para um arquivo de texto no sistema.

   Este exemplo pressupõe que o arquivo é chamado `appserver.template`.

1. Abra o console do [CloudFormation](https://console.aws.amazon.com/cloudformation/) e selecione **Create Stack (Criar pilha)**.

1. Na caixa **Stack Name**, insira o nome da pilha.

   Este exemplo pressupõe que o nome é **AppServer**.

1. Selecione **Upload template file (Carregar arquivo de modelo)**, selecione **Browse (Navegar)**, selecione o arquivo `appserver.template` que você criou na etapa 1 e, em seguida, selecione **Next Step (Próxima etapa)**.

1. Na página **Specify Parameters (Especificar parâmetros)**, selecione **I acknowledge that this template may create IAM resources (Estou ciente de que esse modelo pode criar recursos do IAM)** e, em seguida, selecione **Next Step (Próxima etapa)** em todas as páginas do assistente até chegar à página final. Escolha **Criar**. 

1. **Depois que a **AppServer**pilha atingir o status **CREATE\$1COMPLETE**, selecione-a e escolha a guia Saídas.**

   Talvez você precise atualizar algumas vezes para atualizar o status.

1. Na guia **Saídas**, **BucketName**registre os **InstanceProfileName**valores e para uso posterior.

**nota**  
CloudFormation usa o termo *pilha* para se referir à coleção de recursos que são criados a partir de um modelo; não é o mesmo que uma pilha de OpsWorks pilhas.

# Etapa 2: criar uma PHP App Server Stack
<a name="using-s3-stack"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

A pilha consiste em duas camadas, PHP App Server e MySQL, cada uma com uma instância. O aplicativo armazena as fotos em um bucket do Amazon S3, mas usa a instância do MySQL como um armazenamento de dados de back-end para manter metadados para cada foto.

O conteúdo entregue aos buckets do Amazon S3 pode conter conteúdo do cliente. Para obter mais informações sobre a remoção de dados confidenciais, consulte [Como faço para esvaziar um bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) ou [Como faço para excluir um bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).

**Para criar a pilha**

1. Crie uma nova pilha, nomeada **PhotoSite** para este exemplo, e adicione uma camada PHP App Server. Você pode usar as configurações padrão para ambos. Para obter mais informações, consulte [Criar uma nova pilha](workingstacks-creating.md) e [Criando uma OpsWorks camada](workinglayers-basics-create.md).

1. Na página **Camadas**, para PHP App Server selecione **Segurança** e, em seguida, selecione **Editar**.

1. Na seção **Perfil de camada**, selecione o nome do perfil da instância que você gravou anteriormente, depois de iniciar a AppServer CloudFormation pilha. Será algo parecido`AppServer-AppServerInstanceProfile-1Q3KD0DNMGB90`. OpsWorks O Stacks atribui esse perfil a todas as EC2 instâncias da Amazon da camada, o que concede permissão para acessar seu bucket do Amazon S3 aos aplicativos executados nas instâncias da camada.  
![\[IAM Instance Profile dropdown showing available profiles, including a custom AppServer profile.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/photoapp_profile.png)

1. Adicione uma instância à camada PHP App Server e inicialize-a. Para obter mais informações sobre como adicionar e inicializar instâncias, consulte [Adicionar uma instância a uma camada](workinginstances-add.md).

1. Adicione uma camada MySQL à pilha, adicione uma instância e inicie-a. Você pode usar as configurações padrão para a camada e a instância. Em particular, a instância do MySQL não precisa acessar o bucket do Amazon S3, então ela pode usar o perfil de instância OpsWorks padrão do Stacks, que é selecionado por padrão.

# Etapa 3: criar e implantar um livro de receitas personalizado
<a name="using-s3-cookbook"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

A pilha não está exatamente pronta ainda:
+ O aplicativo precisa de algumas informações para acessar o servidor de banco de dados MySQL e o bucket do Amazon S3, como o nome de host do banco de dados e o nome do bucket do Amazon S3.
+ Você precisa configurar um banco de dados no servidor de banco de dados MySQL e criar uma tabela para armazenar os metadados das fotos.

Você poderia lidar com essas tarefas manualmente, mas uma abordagem melhor é implementar a *receita* do Chef e fazer com que o OpsWorks Stacks execute a receita automaticamente nas instâncias apropriadas. As receitas do Chef são aplicativos Ruby especializados que o OpsWorks Stacks usa para realizar tarefas em instâncias, como instalar pacotes ou criar arquivos de configuração. Elas estão incluídas em um *livro de receitas*, que pode conter várias receitas e arquivos relacionados, como modelos para arquivos de configuração. O livro de receitas é colocado em um repositório como GitHub, e deve ter uma estrutura de diretórios padrão. Se você ainda não tem um repositório personalizado de livros de receitas, consulte [Repositórios de livro de receitas](workingcookbook-installingcustom-repo.md) para informações sobre como configurar um.

Neste exemplo, o livro de receitas foi implementado para você e está armazenado em um [ GitHub repositório público](https://github.com/amazonwebservices/opsworks-example-cookbooks/tree/master/photoapp). O livro de receitas contém duas receitas, `appsetup.rb` e `dbsetup.rb`, além de um arquivo de modelo, `db-connect.php.erb`.

A receita `appsetup.rb` cria um arquivo de configuração que contém as informações que o aplicativo precisa para acessar o banco de dados e o bucket do Amazon S3. Ele é basicamente uma versão um pouco modificada da `appsetup.rb` receita descrita em [Conexão do aplicativo ao banco de dados](gettingstarted-db-recipes.md#gettingstarted-db-recipes-appsetup). A principal diferença são as variáveis que são passadas para o modelo, que representam as informações de acesso.

Os primeiros quatro atributos definem as configurações de conexão do banco de dados e são definidos automaticamente pelo OpsWorks Stacks quando você cria a instância do MySQL.

Há duas diferenças entre essas variáveis e as contidas na receita original:
+ Assim como a receita original, a variável `table` representa o nome da tabela do banco de dados que é criada por `dbsetup.rb` e está ajustada para o valor de um atributo definido no arquivo de atributos do livro de receitas.

  No entanto, o atributo tem um nome diferente: `[:photoapp][:dbtable]`.
+ A variável `s3bucket` é específica deste exemplo e está ajustada para o valor de um atributo que representa o nome do bucket do Amazon S3, `[:photobucket]`.

   `[:photobucket]` é definido usando JSON personalizado, conforme descrito mais adiante. Para obter mais informações sobre atributos, consulte [Atributos](workingcookbook-installingcustom-components-attributes.md).

Para obter mais informações sobre atributos, consulte [Atributos](workingcookbook-installingcustom-components-attributes.md).

A receita `dbsetup.rb` configura uma tabela de banco de dados para armazenar todos os metadados de fotos. Ele é basicamente uma versão um pouco modificada da receita `dbsetup.rb` descrita em [Configuração do banco de dados](gettingstarted-db-recipes.md#gettingstarted-db-recipes-dbsetup). Consulte esse tópico para obter uma descrição detalhada. 

A única diferença entre este exemplo e a receita original é o esquema do banco de dados, que tem três colunas contendo o ID, o URL e a legenda de cada foto armazenada no bucket do Amazon S3.

As receitas já estão implementadas, então tudo o que você precisa fazer é implantar o livro de receitas do photoapp no cache do livro de receitas de cada instância. OpsWorks Em seguida, o Stacks executa as receitas em cache quando ocorre o evento de ciclo de vida apropriado, conforme descrito posteriormente.

**Para implementar o livro de receitas do photoapp**

1. **Na página OpsWorks Stacks Stack, escolha **Stack** **Settings** e, em seguida, escolha Editar.**

1. Na seção **Configuration Management**:
   + Defina **Use custom Chef cookbooks** como **Yes**.
   + Defina **Repository type** como "Git".
   + Defina **Repository URL (URL do repositório).** como **git://github.com/amazonwebservices/opsworks-example-cookbooks.git**.

1. Na página **Stack (Pilha)**, selecione **Run Command**, selecione o comando de pilha **Update Custom Cookbooks (Atualizar livros de receitas personalizados)** e, em seguida, selecione **Update Custom Cookbooks (Atualizar livros de receitas personalizados)** para instalar o novo livro de receitas nos caches de livros de receitas de instância.   
![\[Run Command interface showing Update Custom Cookbooks option and instance selection.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/redis_walkthrough_command.png)

# Etapa 4: atribuir as receitas aos LifeCycle eventos
<a name="using-s3-events"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

Você pode executar receitas personalizadas [manualmente](workingcookbook-manual.md), mas a melhor abordagem geralmente é fazer com que OpsWorks as pilhas as executem automaticamente. Cada camada tem um conjunto de receitas incorporadas atribuído a cada um dos cinco [eventos de ciclo de vida](workingcookbook-events.md): Setup, Configure, Deploy, Undeploy e Shutdown. Sempre que um evento ocorre em uma instância, o OpsWorks Stacks executa as receitas associadas para cada uma das camadas da instância, que processam as tarefas necessárias. Por exemplo, quando a inicialização de uma instância é concluída, o OpsWorks Stacks aciona um evento de configuração para executar as receitas de configuração, que normalmente lidam com tarefas como instalação e configuração de pacotes.

Você pode fazer com que OpsWorks as pilhas executem receitas personalizadas nas instâncias de uma camada atribuindo cada receita ao evento de ciclo de vida apropriado. OpsWorks As pilhas executarão qualquer receita personalizada após a conclusão das receitas integradas da camada. Neste exemplo, `appsetup.rb` atribua ao evento Deploy da camada PHP App Server e `dbsetup.rb` ao evento Deploy da camada MySQL. OpsWorks As pilhas então executarão as receitas nas instâncias da camada associada durante a inicialização, após a conclusão das receitas de configuração integradas e toda vez que você implantar um aplicativo, após a conclusão das receitas de implantação criadas. Para obter mais informações, consulte [Execução automática de receitas](workingcookbook-assigningcustom.md).

**Para associar receitas personalizadas ao evento Implantar da camada**

1. Na página OpsWorks Stacks **Layers**, para o PHP App Server, escolha **Receitas** e, em seguida, escolha **Editar**. 

1. Em **Custom Chef Recipes (Receitas do Chef personalizadas)**, adicione o nome da receita ao evento de implantação e selecione **\$1**. O nome deve estar no formato `cookbookname::recipename` do Chef, em que `recipename` não inclui a extensão `.rb`. Para este exemplo, insira `photoapp::appsetup`. Em seguida, selecione **Save (Salvar)** para atualizar a configuração da camada.  
![\[Custom Chef Recipes configuration with Repository URL and lifecycle events.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/psb6a.png)

1. Na página **Camadas**, selecione **Editar** na coluna **Ações** da camada MySQL.

1. Adicione `photoapp::dbsetup` ao evento Implantar da camada e salve a nova configuração.

# Etapa 5: adicionar informações de acesso aos atributos de configuração e implantação da pilha
<a name="using-s3-json"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

A `appsetup.rb` receita depende dos dados da [configuração e dos atributos de implantação da pilha OpsWorks Stacks](workingcookbook-json.md), que são instalados em cada instância e contêm informações detalhadas sobre a pilha e quaisquer aplicativos implantados. Os atributos `deploy` do objeto têm a seguinte estrutura, que é exibida para conveniência como JSON:

```
{
   ...
  "deploy": {
    "app1": {
      "application" : "short_name",
      ...
    }
    "app2": {
      ...
    }
    ...
  }
}
```

O nó de implantação contém um atributo para cada aplicativo implantado com o nome curto do aplicativo. Cada atributo do aplicativo contém um conjunto de atributos que definem a configuração do aplicativo, como a raiz do documento e o tipo de aplicativo. Para uma lista de atributos `deploy`, consulte [Atributos deploy](attributes-json-deploy.md). Você pode representar os valores de atributos de configuração e implantação da pilha em suas receitas usando a sintaxe de atributos do Chef. Por exemplo,`[:deploy][:app1][:application]` representa o nome curto do aplicativo app1. 

As receitas personalizadas dependem de vários atributos de configuração e implantação da pilha que representam informações de acesso ao banco de dados e ao Amazon S3:
+ Os atributos de conexão do banco de dados`[:deploy][:database][:host]`, como, são definidos pelo OpsWorks Stacks quando ele cria a camada MySQL.
+ O atributo de nome da tabela, `[:photoapp][:dbtable]`, é definido no arquivo de atributos do livro de receitas personalizado e é definido como `foto`.
+ É necessário definir o atributo de nome do bucket `[:photobucket]`, usando um JSON personalizado para adicioná-lo aos atributos de configuração e implantação da pilha.

**Para definir o atributo de nome do bucket do Amazon S3**

1. **Na página OpsWorks Stacks **Stack**, escolha **Stack Settings** e depois Editar.**

1. Na seção **Configuration Management**, adicione as informações de acesso à caixa **Custom Chef JSON**. Ela deve ser parecida com a seguinte:

   ```
   {
     "photobucket" : "yourbucketname"
   }
   ```

   *yourbucketname*Substitua pelo nome do bucket em que você gravou[Etapa 1: crie um bucket do Amazon S3](using-s3-bucket.md).  
![\[Custom Chef cookbook configuration with Git repository and JSON settings.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/photoapp_walkthrough_json.png)

OpsWorks O Stacks mescla o JSON personalizado aos atributos de configuração e implantação da pilha antes de instalá-los nas instâncias da pilha; `appsetup.rb` pode então obter o nome do bucket a partir do atributo. `[:photobucket]` Se você deseja alterar o bucket, não é necessário modificar a receita. Basta [substituir o atributo](workingcookbook-attributes.md) para fornecer um novo nome do bucket.

# Etapa 6: implantar e executar PhotoApp
<a name="using-s3-run"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

Neste exemplo, o aplicativo também foi implementado para você e está armazenado em um [ GitHub repositório público](https://github.com/amazonwebservices/opsworks-demo-php-photo-share-app). Basta adicionar o aplicativo à pilha , implantá-lo nos servidores de aplicativos e executá-lo. 

**Para adicionar o aplicativo à pilha e implantá-lo nos servidores de aplicativos**

1. Abra a página **Apps (Aplicativos)** e selecione **Add an app (Adicionar um aplicativo)**.

1. Na página **Add App**, faça o seguinte:
   + Defina **Name (Nome)** como **PhotoApp**.
   + Defina **App type** como **PHP**.
   + Defina **Document root (Raiz do documento:)** como **web**.
   + Defina **Repository type** como **Git**.
   + Defina **Repository URL (URL do repositório).** como **git://github.com/awslabs/opsworks-demo-php-photo-share-app.git**.
   + Selecione **Add App (Adicionar aplicativo)** para aceitar os valores para as outras configurações.  
![\[Form to add an app with fields for name, type, document root, and repository details.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/photoapp_walkthrough_app.png)

1. Na página **Aplicativos**, escolha **implantar** na coluna **Ações** do PhotoApp aplicativo.  
![\[Apps page showing PhotoApp with deploy, edit, and delete options in the Actions column.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/photoapp_walkthrough_deploy.png)

1. Aceite os valores padrão e selecione **Deploy (Implantar)** para implantar o aplicativo no servidor.

Para executar PhotoApp, acesse a página **Instâncias** e escolha o endereço IP público da instância do PHP App Server.

![\[PHP App Server instance details showing hostname, status, and public IP address.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/photoapp_walkthrough_run.png)


Você deve ver a interface do usuário a seguir. Selecione **Adicionar uma foto** para armazenar uma foto no bucket do Amazon S3 e os metadados no datastore de back-end.

![\[User interface section titled "My Photos" with an "Add a Photo" button.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/photoapp_walkthrough_ui.png)
