View a markdown version of this page

Usar o Amazon S3 com instâncias do Amazon EC2 - Amazon Elastic Compute Cloud

Usar o Amazon S3 com instâncias do Amazon EC2

O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos que oferece escalabilidade líder do setor, disponibilidade de dados, segurança e performance. É possível usar o Amazon S3 para armazenar e recuperar qualquer volume de dados para uma variedade de casos de uso, como data lakes, sites, backups e big data analytics, diretamente de uma instância do Amazon EC2 ou de qualquer lugar na Internet. Para obter mais informações, consulte O que é a Amazon S3?

Há duas maneiras de acessar dados do Amazon S3 em instâncias do Amazon EC2:

  • Acesso a arquivos: use o Amazon S3 Files para montar um bucket do S3 como um sistema de arquivos de alto desempenho na instância.

  • Acesso a objetos: use a API do Amazon S3, a AWS CLI, os SDKs da AWS ou ferramentas como o wget para copiar objetos de e para o S3.

Acesso a arquivos com o Amazon S3 Files

O Amazon S3 Files é um sistema de arquivos com tecnologia sem servidor que permite montar o bucket S3 de uso geral como um sistema de arquivos de alta performance na sua instância computacional. Com o Amazon S3 Files, é possível acessar os objetos do Amazon S3 como arquivos usando as operações dos sistemas de arquivos padrão, como leitura e gravação no caminho de montagem local.

É possível montar um sistema de arquivos do S3 em uma instância do EC2 na inicialização ou depois, em uma instância em execução.

Pré-requisitos

Antes de configurar o S3 Files com a instância do EC2, certifique-se de ter os seguintes pré-requisitos:

  • Um sistema de arquivos do S3 com pelo menos um destino de montagem disponível. Para saber mais sobre a criação de um sistema de arquivos do S3, consulte Trabalhar com o Amazon S3 Files no Guia do usuário do Amazon S3.

  • Uma instância do Amazon EC2 Linux com um perfil de instância anexado. Para saber mais sobre as permissões necessárias para montar o sistema de arquivos, consulte Perfis e políticas do IAM no Guia do usuário do Amazon S3.

  • Grupos de segurança que permitam o tráfego NFS (porta 2049) entre a instância e os destinos de montagem do sistema de arquivos. Para saber mais sobre as configurações de grupo de segurança exigidas, consulte Grupos de segurança no Guia do usuário da Amazon S3.

Para montar um sistema de arquivos em uma instância do EC2 na inicialização usando o console do EC2
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Escolha Iniciar instância.

  3. Em Network settings (Configurações de rede), faça o seguinte:

    1. Escolha Editar.

    2. Em Subnet (Sub-rede), selecione uma sub-rede.

    3. Selecione o grupo de segurança padrão para que a instância do EC2 possa acessar o sistema de arquivos do S3. Não é possível acessar a instância do EC2 por Secure Shell (SSH) usando esse grupo de segurança. Para acesso por SSH, edite o grupo de segurança padrão e adicione uma regra para permitir SSH ou adicione um novo grupo de segurança que permita SSH. É possível usar as seguintes configurações:

      1. Tipo: SSH

      2. Protocolo: TCP

      3. Intervalo de portas: 22

      4. Fonte: Qualquer lugar 0.0.0.0/0

  4. Em Configurar armazenamento, faça o seguinte:

    1. Em Sistemas de arquivos, escolha S3 Files.

    2. Selecione Add shared file system (Adicionar sistema de arquivos compartilhado).

    3. Em Sistema de arquivos do S3, o sistema de arquivos aparece na zona de disponibilidade com base na sub-rede selecionada nas configurações de rede. Escolha o sistema de arquivos do S3 que você deseja montar. Se você não tiver nenhum sistema de arquivos, clique em Criar um sistema de arquivos para criar um.

    4. Insira um caminho de montagem local na instância do EC2 na qual você deseja montar o sistema de arquivos (por exemplo, /mnt/s3files).

    5. Um comando será gerado para montar o sistema de arquivos e adicioná-lo a fstab. Você pode adicionar esse comando ao campo Dados do usuário em Detalhes avançados. A instância do EC2 será configurada para montar o sistema de arquivos do S3 na inicialização e sempre que ela for reinicializada. Você também pode executar esses comandos na sua instância do EC2 depois que ela for inicializada.

  5. Em Detalhes avançados, anexe um perfil de instância à instância. Seu perfil do IAM deve ter permissões para montar o sistema de arquivos e acessar o bucket do S3. Para saber mais sobre as permissões necessárias, consulte Perfis e políticas do IAM no Guia do usuário do Amazon S3.

  6. Escolha Iniciar instância.

    Depois que a instância é inicializada, os utilitários de software necessários são instalados e o sistema de arquivos é montado. Você pode visualizar o sistema de arquivos navegando até o caminho de montagem local.

Para montar um sistema de arquivos em uma instância do EC2 após a inicialização
  1. Conecte-se à instância do EC2 com Secure Shell (SSH) ou usando o EC2 Instance Connect no console do EC2.

  2. Para montar o sistema de arquivos do S3, use o utilitário assistente de montagem amazon-efs-utils. Dependendo da distribuição do Linux, use um dos comandos a seguir para instalar o pacote amazon-efs-utils:

    1. Se você usar o Amazon Linux, execute o seguinte comando para instalar efs-utils dos repositórios da Amazon:

      sudo yum -y install amazon-efs-utils
    2. Se você usar outras distribuições do Linux compatíveis, execute o seguinte comando:

      curl https://amazon-efs-utils.aws.com/efs-utils-installer.sh | sudo sh -s -- --install
    3. Para outras distribuições do Linux, consulte o repositório efs-utils no GitHub.

  3. Crie um diretório como ponto de montagem do sistema de arquivos usando o seguinte comando:

    sudo mkdir {path/to/mount}
  4. Monte o sistema de arquivos do S3:

    FS="{YOUR_FILE_SYSTEM_ID}" sudo mount -t s3files $FS:/ {path/to/mount}
  5. Confirme que o sistema de arquivos está montado:

    df -h {path/to/mount}
Para visualizar os objetos no bucket do S3 como arquivos

Tendo concluído os procedimentos anteriores, você já pode ler e gravar objetos do S3 como arquivos no caminho de montagem local usando operações de sistemas de arquivos padrão. Se você tiver objetos no bucket do S3, poderá visualizá-los como arquivos usando os seguintes comandos:

ls {path/to/mount}

Acesso com base em objetos

Você pode copiar arquivos de e para o Amazon S3 usando a API do S3, a AWS CLI, os SDKs da AWS ou as ferramentas HTTP padrão. Se você tiver as permissões necessárias, poderá copiar um arquivo entre o Amazon S3 e sua instância usando um dos seguintes métodos.

wget
nota

Esse método funciona apenas para objetos públicos. Se o objeto não for público, você receberá uma mensagem ERROR 403: Forbidden. Se receber esse erro, será necessário usar o console do Amazon S3, a AWS CLI, a API da AWS, o AWS SDK ou AWS Tools for Windows PowerShell e é necessário ter as permissões necessárias. Para obter mais informações, consulte Gerenciamento de identidade e acesso no Amazon S3 e Download de um objeto no Guia do usuário do Amazon S3.

O utilitário wget é um cliente FTP e HTTP que pode ser usado para baixar objetos públicos do Amazon S3. Por padrão, ele é armazenado no Linux da Amazon e na maioria de outras distribuições e está disponível para download no Windows. Para fazer download de um objeto do Amazon S3, use o comando a seguir substituindo a URL do objeto para download.

[ec2-user ~]$ wget https://amzn-s3-demo-bucket.s3.amazonaws.com/path-to-file
PowerShell

É possível usar AWS Tools for Windows PowerShell para mover objetos do e para o Amazon S3.

Use o cmdlet Copy-S3Object para copiar um objeto do Amazon S3 para sua instância Windows, da seguinte maneira.

Copy-S3Object ` -BucketName amzn-s3-demo-bucket ` -Key path-to-file ` -LocalFile my_copied_file.ext

Como alternativa, você pode abrir o console do Amazon S3 usando um navegador da Web na instância Windows.

AWS CLI

É possível usar a AWS Command Line Interface (AWS CLI) para baixar itens restritos do Amazon S3 e também para carregar itens. Para obter mais informações sobre, por exemplo, como instalar e configurar as ferramentas, consulte a página de detalhes do AWS Command Line Interface.

O comando aws s3 cp é semelhante ao comando Unix cp. É possível copiar arquivos do Amazon S3 para sua instância, copiar arquivos de sua instância para o Amazon S3, e copiar arquivos de um local do Amazon S3 para outro.

Use o seguinte comando para copiar um objeto do Amazon S3 para sua instância:

aws s3 cp s3://amzn-s3-demo-bucket/my_folder/my_file.ext my_copied_file.ext

Use o seguinte comando para copiar um objeto de sua instância de volta para o Amazon S3:

aws s3 cp my_copied_file.ext s3://amzn-s3-demo-bucket/my_folder/my_file.ext

O comando aws s3 sync pode sincronizar um bucket inteiro do Amazon S3 com um diretório local. Isso pode ser útil para fazer download de um banco de dados e manter a cópia local atualizada com o banco remoto. Se tiver as permissões adequadas no bucket do Amazon S3, será possível enviar o backup do diretório local por push para a nuvem quando concluir invertendo os locais de origem e de destino no comando.

Use o seguinte comando para baixar o bucket do Amazon S3 inteiro para um diretório local em sua instância:

aws s3 sync s3://amzn-s3-demo-source-bucket local_directory
Amazon S3 API

É possível usar uma API para acessar dados no Amazon S3. É possível usar essa API para ajudar a desenvolver sua aplicação e integrá-la com outras APIs e SDKs. Para obter mais informações, consulte Exemplos de código para o Amazon S3 usando AWS SDKs na Referência da API do Amazon Simple Storage Service.