Utilizando Amazon RDS MySQL e Hibernate

Essa semana eu precisei ativar um novo serviço da Amazon Web Services (AWS), que foi o RDS MySQL.

A minha necessidade de utilizar o RDS para MySQL foi para uma aplicação Web utilizando Java com os frameworks VRaptor e Hibernate, então descreverei o passo a passo para ajudar futuros desenvolvedores, e caso fique alguma dúvida, sinta-se a vontade para fazer perguntas. Vamos lá!

Passo a passo:

Primeiramente você precisa acessar a sua conta na Amazon Web Services, para isso faça:

Se você não tem uma conta, crie acessando aqui: http://aws.amazon.com/pt/

amazon-aws-cadastro

Se já possui uma conta, acesse: http://aws.amazon.com/pt/console/, e faça o seu login:

amazon-aws-login

Agora que você acessou a sua conta, clique no item RDS do menu de serviços:

amazon-aws-console

Agora você verá a página Amazon RDS Console Dashboard, clique no botão

botao-launch-a-DB-Instance

E veremos um Wizard para a configuração da nova instância de banco de dados, selecione MySQL clicando em Select e vamos lá:

amazon-aws-rds-mysql-wizard

Aqui não tem segredo, é um Wizard bem simples, recomendo que você leia sobre a precificação http://aws.amazon.com/pt/rds/mysql/#pricing, e escolha o que for melhor para a necessidade do seu projeto e/ou empresa. Eu comecei com a instância micro, que é a mais adequada para a fase de testes.

amazon-aws-rds-mysql-wizard-step2

Os próximos passos são simples, nome de Schema, decidir se vai ativar backup, podemos fazer um post futuro sobre essas configurações extras. Clique em continuar, preencha os campos conforme instruções da Amazon (passe o mouse sobre o label e verá uma explicação com um exemplo do que deve ser preenchido na caixa de texto ao lado).

Agora que finalizamos o Wizard, clique no menu Dashboard e em seguida no menu DB Instances

amazon-aws-rds-dbInstance

Selecione a sua instância, e logo abaixo verá algumas informações importantes, que são Endpoint e Port, será com esses dados que você poderá acessar o seu banco de dados remotamente, ou seja, por um Client de MySQL ou pela sua aplicação em ambiente localhost

amazon-aws-dbInstance-config

Mas calma, antes de acessar, você precisa criar uma regra de segurança, onde liberaremos o acesso do seu computador ao ambiente da Amazon RDS. Vamos precisar do seu IP, para descobrir o seu IP use esse serviço da Amazon http://checkip.amazonaws.com/, copie o IP que apareceu. Agora voltando para a página de DB Security Group, selecione a regra default e adicione o IP que você copiou, ficando algo assim 1.1.1.1/32, clique em adicionar e pronto. Veja:

amazon-aws-dbInstance-security

Volte para o menu DB Instances, selecione a sua instância e copie o valor do Endpoint, ele é o endereço que usaremos para acessar o banco de dados, também copie o valor da porta, recomendo deixar o valor default, que é 3306.

Abra o terminal ou msdos, e de um ping no Endpoint:

endpont-to-hostname
Veja que ao lado esquerdo do IP [23.22.138.43] você terá o HOSTNAME da sua máquina na Amazon, copie esse HOSTNAME, precisaremos dele para configurar o hibernate. O seu arquivo hibernate.cfg.xml deve ficar parecido com este:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		<property name="hibernate.connection.charSet">utf8</property>
		<property name="hibernate.connection.characterEncoding">utf8</property>

		<!-- Amazon AWS RDS -->
		<property name="hibernate.connection.url">jdbc:mysql://ec2-XX-22-138-43.compute-1.amazonaws.com:3306/nome_do_SCHEMA</property>
		<property name="hibernate.connection.username">usuario</property>
		<property name="hibernate.connection.password">senha</property>

		<property name="default_schema">Veja o nome do Schema no DB Instances</property>

		<property name="hibernate.c3p0.min_size">1</property>
		<property name="hibernate.c3p0.minPoolSize">1</property>
	</session-factory>
</hibernate-configuration>

Espero ter ajudado, e como disse no começo do post, fique a vontade para tirar suas dúvidas aqui no blog.

Marcado com: , , , , , , , , , , ,
Publicado em Pensamentos
2 comentários em “Utilizando Amazon RDS MySQL e Hibernate
  1. Pedro Cardoso disse:

    Qual IDE você está usando pra desenvolver seu projeto? Estou usando o NetBeans e precisei fazer a migração do meu projeto de um database local para o RDS da Amazon. Localmente tudo funciona bem, mas sempre tenho um erro quando mapeio as minhas classes no Hibernate e faço uma consulta HQL. O Hibernate não consegue criar getters e setters pra determinados campos na minha tabela. Já conferi os nomes e o mapeamento funciona perfeitamente pra um DB local. Só não funciona no RDS. Você teve algum problema assim?

    • Denis Santos disse:

      Olá Pedro,

      Uso o eclipse. Poste o stacktrace completo do erro.
      Outra coisa, vc está conseguindo se conectar no mySql por algum client como o workbench?

      Vamos conversando até fazer isso funcionar 😉

      Abs

Deixe um comentário