terça-feira, 28 de abril de 2009

Configurando o Amazon EC2 e S3

Para quem não conhece o EC2 (Elastic Compute Cloud), é um serviço oferecido pela Amazon para soluções de cloud computing, assim como o S3 (Simple Storage Service) é oferecido para armazenamento de dados na nuvem. Ambos são taxados pela Amazon pela quantidade usada: no caso do EC2, no modo on-demand, é cobrado por hora de uso e no caso do S3, é cobrado por GB armazenado. Ou seja, são oferecidos como serviço, utilizando o conceito de SaaS (Software as Service) , onde pagamos pelo serviço que consumimos.

Características

EC2
O EC2 possui a característica de permitir a virtualização de diversos tipos de SO's, como Windows, Linux e Solaris, similar ao que faz o VMWare, Virtual PC, etc., com a grande diferença que isso estará rodando remotamente.
Existem duas modalidades disponíveis para contratação: on-demand e reserved, cada qual com diversas configurações disponíveis. Na modalidade on-demand, você paga pela hora de processamento que você usa, ou seja, pelo tempo que a instância vai ficar rodando. Já na modalidade reserved, você tem uma fidelização de 1 ou 3 anos, pagando de uma só vez por todo o período contratado, porém ganhando um expressivo desconto no valor cobrado por hora.
Um detalhe muito importante sobre o EC2, e que às vezes causa muitas dúvidas, é que as instâncias só existem enquanto estão rodando. Se um instância for desligada, ele simplesmente deixa de existir, não sendo possível inicia-la novamente. Ou seja, se você criou uma instância linux, instalou todos os programas que você precisa, salvou arquivos, etc e tal, e desligou a instância, você perde todo o seu trabalho. Você pode até dizer "Ah, mas isso é o fim do mundo...", "Como uma empresa do porte da Amazon faz uma coisa dessas?", etc. Calma, calma, não priemos cânico (quem lembrou do Chapolin Colorado??). Como iremos posteriormente, existem soluções para não "perder" todo o seu trabalho.

S3
Esse é o melhor amigo do EC2, tanto que você não consegue contratar o EC2 sem contratar o S3. Ele serve para armazenar os dados que precisam ser persistentes e também as AMI's (Amazon Machine Images) que você criar. Se você não sabe o que é uma AMI, não se desespere, pois também vamos falar disso logo abaixo.

Como começar

Bem, a primeira coisa a fazer para começar usar o serviço é, logicamente, contratar o serviço. Isso pode ser feito acessando http://aws.amazon.com/ec2/ e clicando na opção 'Sign Up for Amazon EC2'.

Na tela seguinte, faça o login usando uma conta já existente um crie uma nova conta. Depois disso serão mostrados os preços do serviço, solicitados os dados do cartão, a modalidade e configuração desejada.
Quando for solicitado o certificado X.509, peça pra criar um novo e salve os arquivos de chave pública e privada em um local que você se lembre posteriormente, pois eles serão necessários para acessar o serviço. No caso de perda, não há como recuperar o certificado, sendo necessário criar um novo certificado.
Depois no portal da sua conta ("Your Account"), no item "Access Identifiers", se tem acesso a informações muitos importantes, como o Account Number, o Access Key ID e a Secret Access Key, além do certificado X.509 já criado anteriormente.


Criando a primeira instância

Para iniciar instâncias e, posteriormente, gerencia-las, existe a opção do AWS Management Console, que é a 3ª opção abaixo de Access Identifiers. As instâncias são criadas com base em AMI's (Amazon Machine Images), que são modelos de instalações, ou seja, após criar uma instância com base em uma determinada AMI, esta instância já virá com todas as configurações que foram definidas na imagem, ou seja, não será necessário realizar o processo de instalação do SO. Ao acessar o console, clique na aba "Amazon EC2" e logo após em "Launch Instance".

Na tela que abre ("Choose an AMI"), existem 3 opções:
  • Quick Start: mostra as AMIs disponibilizadas pela próprima Amazon. Atualmente são diponibilizadas nessa opção algumas configurações de Fedora e Windows.
  • My AMIs: mostra as AMIs criadas pelo usuário.
  • Community AMIs: mostra as AMI criadas por outros usuários EC2 e que as tornaram públicas. Nessa opções existem diversas configurações de CentOS, Debian, Fedora, Gentoo, Open Solaris, Red Hat, SUSE, Ubuntu e Windows.
Neste tutorial vamos escolher, em QuickStart, a primeira opção, Getting Stared on Fedora Core 8, e clicar em Select.


Na próxima tela ("Create Key Pair"), poderá ser criada a chave que permitirá a conexão via ssh. Informe um nome para a chave e clique na opção Create & Download Your Key Pair para efetuar o download do arquivo gerado. É aconselhável salvar esse arquivo juntamente com os arquivos do certificado X.509 já gerados anteriormente. Após o término do download, clique na opção Continue.

Na próxima tela ("Configure Firewall"), poderá ser criado um grupo de segurança, através do qual poderemos definir restrições de portas no Firewall. Informe o nome do grupo, a descrição e selecione as portas que estarão liberadas para este grupo. Neste momente, só são disponibilizadas para liberação as portas 80(HTTP) e 22(SSH). Posteriormente poderão ser liberadas outras portas. Ao término, clique no botão Continue.

Na última tela ("Launch"), poderá ser definido a quantidade de instâncias que se deseja rodar com as configurações previamente definidas e o tipo de instância desejado, cujas opções variam de acordo com a modalidade contratada. Além disso, você poderá rever as configurações das telas anterior. Ao término, clique no botão Launch.

Após isso, a instância será iniciada e, em alguns segundos, está disponível para seu uso. Isso pode ser verificado na opção Instances do AWS Console, que vai listar todas as instâncias que estão rodando. Quando o status da instância mudar para running, a mesma estará pronta para uso.

Neste link você pode ver como usar o putty para se conectar à sua instância no EC2.

Nos próximos posts, falaremos, dentre outros assuntos, sobre o plugin Elasticfox e sobre criar sua própria AMI.

Nenhum comentário: