sshfs

AWS EC2 – Montando volumes EBS em sua máquina local usando sshfs

Quebra o galho. Para isso montei um script BASH para conexão as instâncias remotas que automaticamente monta o volume EBS no meu sistema de arquivos local e abre uma sessão SSH:

con.sh:

#!/bin/bash
url=$1
sshfs [USUÁRIO]@$url:/    /[LOCAL] -o IdentityFile=~/.ssh/AWS-Instance1.pem &
ssh -i ~/.ssh/AWS-Instance1.pem [USUÁRIO]@$url

Vamos entende-lo e configurá-lo para sua instalação:

  • url=$1 –  Permite você especificar o DNS dinamico da Amazon de sua instância caso você não tenha um Elastic IP associado. Neste caso você invocará o script assim: ./con.sh ec2-52-67-85-194.sa-east-1.compute.amazonaws.com 
  • [USUÁRIO]@$url:/ – [USUÁRIO] deverá ser substituído pelo usuário remoto. No CentOs é o ‘centos’ no Ubuntu é o ‘ubuntu’. O “: / é local remoto onde você quer montar. Neste script montei tudo. Mas pode ser /var/www por exemplo.
  • /[LOCAL] É onde será montado em sua máquina o volume EBS. Alguns montam em um subdiretório em /mnt outros em /media. Exemplo /media/centosec2
  • ~/.ssh/AWS-Instance1.pem – É o arquivo de chave de acesso ao servidor remoto SSH. Supondo que você usa este método de segurança.

Como usar:

$ ./con.sh ec2-52-67-85-194.sa-east-1.compute.amazonaws.com 

Confira no navegador de arquivos se apareceram as pastas. Se montou mas não apareceu pode ser problemas com Udisks.

Requerimentos:

  • Fuse tem que estar instalado na sua máquina e o pacote fuse-sshfs também.
  • O servidor remoto tem que ter o serviço SSH rodando em suas configurações padrão tanto para Ubuntu como CentOS.