En la primera parte de este artículo hemos visto cómo crear una cuenta en Amazon AWS para poder tener acceso al servicio RDS además de haber creado el usuario IAM.
Para ingresar a la consola de administrador de AWS, accedemos a la URL personalizada mediante el usuario IAM que hemos creado:
- Cuenta: (nuestro alias)
- Nombre de Usuario: (el usuario que creamos como administrador en el IAM)
- Contraseña: ingresamos la contraseña del usuario IAM
Accedemos al servicio RDS y nos muestra la página de inicio de “Amazon Relational Database Service”:
Para crear una Instancia de la base de datos Oracle hacemos clic en el botón “Get Started Now”
Aparece la página para seleccionar el motor de base de datos que queremos utilizar. Seleccionamos Oracle:
Amazon nos ofrece diferentes opciones:
- Oracle Standard Edition One
- Oracle Standard Edition Two
- Oracle Standard Edition
- Oracle Enterprise Edition
Tanto Oracle SE One como Oracle SE Two nos brinda la licencia incluida de la base de datos. En mi caso seleccionaré la opción Oracle SE One.
Seleccionamos la instancia Dev/Test, y hacemos clic en el botón “Next Step”:
En la siguiente página seleccionaremos la versión de la base de datos, el tipo de Instancia, el tipo de almacenamiento, entre otras configuraciones como se muestra en la siguiente imagen:
La versión de la base de datos podemos seleccionar la 11 o 12, en mi caso usaremos la 11.2.0.4.v10.
Nota: Si disponemos de una licencia de la base de datos, podemos utilizarla aquí para que califique en la capa gratuita, seleccionado “bring-your-own-license”, en mí caso utilizaré license-included el cual tendrá costos asociados en el uso de la instancia en Amazon RDS.
Para estimar los costos de uso podemos utilizar la calculadora que nos provee Amazon desde el siguiente enlace:
En esta calculadora podemos estimar los costos que tendremos dependiendo lo que seleccionemos.
Por ejemplo al seleccionar la primera opción básica:
Details:db.t2.micro
- TypeType: Micro Instance – Current Generation
- vCPU: 1 vCPU
- MemoryMemory: 1 GiB
- EBS Optimized: No
- Network Performance: Low
- Free Tier Eligible: Yes
El costo mensual sería alrededor de 25,62 dólares.
Una vez seleccionadas las especificaciones de la Instancia, debemos ingresar las siguientes configuraciones en la parte inferior de la página:
- DB Instance Identifier: Debemos especificar un nombre único para todas las instancias de BD pertenecientes a nuestra cuenta de AWS en la región actual. El identificador de instancia de la base de datos es case insensitive a mayúsculas y minúsculas, pero se almacena todo en minúsculas como por jemplo: “mydbinstance”
- Master Username: Debemos especificar una cadena alfanumérica que defina el ID de inicio de sesión para el usuario maestro. Utilizamos el inicio de sesión del usuario maestro para comenzar a definir todos los usuarios, objetos y permisos en las bases de datos de nuestra instancia de base de datos. El nombre de usuario principal debe comenzar con una letra, como por ejemplo: “awsuser”.
- Master Password: Debemos especificar una cadena que defina la contraseña para el usuario maestro. La contraseña maestra debe tener al menos ocho caracteres, como por ejemplo: “mypassword”.
- Confirm Password: Repetimos la contraseña ingresada arriba.
Hacemos clic en el botón “Next Step”
Pasamos a la página de Configuraciones Avanzadas
Aquí seleccionamos las opciones dependiendo nuestras necesidades.
En el caso de Publicly Accessible vamos a seleccionar Yes, si queremos que las instancias de EC2 y los dispositivos fuera del VPC que aloja la instancia de la BD puedan conectarse a la instancia de DB. Si seleccionamos No, Amazon RDS no asignará una dirección IP pública a la instancia de la BD y ninguna instancia de EC2 o dispositivos fuera del VPC podrá conectarse. Si seleccionamos Yes, también debemos seleccionar uno o más grupos de seguridad VPC que especifiquen qué instancias y dispositivos EC2 pueden conectarse a la instancia de la base de datos.
En el caso de VPC Security Groups(s) seleccionamos el grupo o grupos que tiene las reglas de seguridad que autorizan las conexiones de todas las instancias de EC2 y dispositivos que necesitan acceder a los datos almacenados en la instancia de DB. De forma predeterminada, los grupos de seguridad no autorizan ninguna conexión; Debemos especificar reglas para todas las instancias y dispositivos que se conectarán a la instancia de la base de datos.
Además configuramos el backup y otras opciones disponibles en la parte inferior de la página:
Navegamos al final de la página y hacemos clic en el botón “Launch DB Instance”
El proceso de creación de la Instancia lleva unos minutos.
Desde el Dashboard de nuestro Amazon RDS podemos ver el status de la Instancia:
Crear un Grupo de Seguridad en VPC
Accedemos al Dashboard de nuestro Amazon RDS y podemos ver las configuraciones de nuestra instancia.
Si en “Supported Platforms” indica VPC, como se muestra en la captura de pantalla de abajo, nuestra cuenta AWS en la región actual utiliza la plataforma EC2-VPC y utiliza un VPC predeterminado. El nombre del VPC predeterminado se muestra debajo de la plataforma admitida. Para proporcionar acceso a una instancia de BD creada en la plataforma EC2-VPC, debemos crear un grupo de seguridad VPC.
Como ya tenemos un VPC creado por default, directamente vamos a crear un VPC Security Group.
Para mantener nuestra instancia de BD de Amazon RDS privada, necesitamos crear un segundo grupo de seguridad para el acceso privado.
Desde la consola de administración de Amazon AWS ingresamos al servicio VPC o desde el siguiente enlace: https://console.aws.amazon.com/vpc/.
Seleccionamos Security Groups:
Aparece la página de Grupo de Seguridad y hacemos clic en el botón “Create Security Group”
- Name tag: customname-db-securitygroup
- Group name: customname-db-securitygroup
- Description: Custom Name DB Instance Security Group
- VPC: Seleccionamos el VPC que se creó por defecto.
Hacemos clic en el botón “Yes, Create”.
Añadir inbound rules al security group
Desde la página de la Consola de Administración de nuestro AWS, abrimos el Amazon VPC.
Aparecerá la página de inicio de Amazon VPC y seleccionamos allí “Security Groups” y seleccionamos el grupo de seguridad “customname-db-securitygroup” que creamos en el procedimiento anterior.
Abajo seleccionamos el tab “Innound Rules” y elegimos “Edit”
Configuramos los siguientes valores:
Type: Oracle (1521)
Source: El identificador del grupo de seguridad customname-db-securitygroup que hemos creado anteriormente, por ejemplo: sg-xxxxxxxxxxx
Hacemos clic en el botón “Save”
El grupo de seguridad es algo así como un corta-fuego, definiendo las conexiones entrantes y salientes permitidas. El grupo de seguridad por defecto está configurado para no permitir conexiones entrantes desde el exterior. Eso significa que si no nos conectamos desde un Servidor Virtual en la Nube VPC, sino que nos conectamos desde nuestra PC, que es lo que vamos a hacer, la conexión será rechazada.
Para ello vamos a editar el grupo de seguridad por defecto y en el tab “Inbound” hacemos clic en el botón “Edit” y agregamos la siguiente regla:
- Type: Custom TCP Rule
- Protocol: TCP
- Port Range: 1521
- Source: Anywhere
Hacemos clic en el botón “Save”.
Conectarnos a nuestra Instancia de BD corriendo en el motor de la base de datos Oracle
Una vez que Amazon RDS nos proporciona nuestra instancia de base de datos, podemos utilizar cualquier aplicación cliente de SQL estándar para conectarnos a nuestra instancia.
En nuestro ejemplo vamos a conectarnos a la base de datos usando la utilidad de línea de comandos de Oracle el SQLPlus.
Abrimos la consola de Amazon RDS y seleccionamos la instancia.
En la línea de la instancia seleccionamos la flechita para expandir y acceder a la información de la instancia.
El campo Endpoint contiene parte de la información de conexión para nuestra instancia de Base de Datos. El campo Endpoint tiene dos partes separadas por dos puntos (:). La parte anterior a los dos puntos es el nombre DNS de la instancia, la parte que sigue a los dos puntos es el puerto.
En mi laptop tengo instalado el SQLPlus ya que tengo una instancia de la base de datos Oracle Express Edition corriendo para pruebas y los tutoriales que explico.
Haciendo uso del SQLPlus, abrimos una ventana de comandos del DOS e ingresamos la siguiente cadena de conexión:
PROMPT>sqlplus USER/PASSWORD@LONGER-THAN-63-CHARS-RDS-ENDPOINT-HERE:1521/DATABASE_IDENTIFIER
Por ejemplo:
PROMPT>sqlplus user/password@orcl.xxxxxxxx.us-west-2.rds.amazonaws.com:1521/orcl
Como podemos ver nos hemos conectado a nuestra instancia de la base de datos desde nuestra PC a nuestro Amazon RDS.
Conectarse a la Instancia de Base de Datos Oracle desde SQL Developer
Podemos utilizar el SQL Developer para conectarnos a la Instancia. Para ello abrimos la herramienta y creamos una nueva conexión:
En Hostname colocamos el endpoint de la instancia.
Y nos conectamos.
Podemos ver que no tenemos objetos creados en nuestra base de datos.
Podemos crear una tabla de ejemplo:
CREATE TABLE prueba
(id number,
Nombre varchar2(100),
Cargo varchar2(100));
Refrescamos y podemos ver la tabla creada:
De esta forma muy sencilla tenemos disponible una instancia de Oracle en la Nube de Amazon para poder trabajar en aprender y practicar.
Opciones para Instancias de Bases de Datos Oracle
Oracle Application Express se considera una característica de la base de datos Oracle. Para ello, si queremos utilizar esta característica necesitamos habilitarla en nuestra Instancia en Amazon RDS.
Estas son las versiones soportadas en Amazon RDS:
Amazon RDS Oracle DB version |
Oracle Option Version |
Oracle 11g
|
Oracle APEX version 4.1.1 Oracle APEX Listener 1.1.4 |
Oracle 12c
|
Oracle APEX version 4.2.6 Oracle Rest Data Services (ORDS)(the APEX listener) |
Aún Amazon RDS no tiene la última versión de APEX como podemos ver en la documentación, si bien continuamente están actualizando los servicios, es probable que no pase mucho tiempo hasta que tengamos disponible la última versión de APEX, solo hay que esperar. [:)]
Start the discussion at forums.toadworld.com