LinuxParty
En la primera parte de esta serie de AWS, le presenté awscli, una potente interfaz de línea de comandos que se puede utilizar para administrar los servicios de AWS.
Me gustaría seguir profundizando en awscli mediante el aprovisionamiento de un volumen con Amazon Elastic Block Store
(EBS) y la creación de una Amazon Relational Database Service (RDS) MySQL instance.
Instancias RDS son una manera en la que los administradores de sistemas pueden ejecutar nuestras propias bases de datos en AWS sin tener que gastar un esfuerzo extra en la optimización del rendimiento complejo, el mantenimiento de rutina y de la configuración de redundancia.
Tanto Amazon EBS como RDS están disponibles para los nuevos clientes de AWS bajo AWS Free Usage Tier. Por favor, asegúrese de comprender plenamente los precios AWS antes de proceder.
Crear y añadir un volumen con Elastic Block Store
Vamos a empezar con la creación y luego adjuntar un volumen de EBS de 1GB a nuestra instancia Ec2 creada en la 1ª parte de nuestro tutorial.
$ aws ec2 create-volume \ --size 1 \ --availability-zone ap-southeast-2a
La salida de create-volum nos proporcionará un VolumeId que vamos a utilizar para fijar el volumen a nuestra instancia EC2. Tenga en cuenta que he elegido
ap-southeast-2a
como la disponibilidad zona que comparte la misma zona de disponibilidad de mi instancia de EC2 creado en la Parte 1 .
$ aws ec2 attach-volume \ --volume-id vol-5dda4d0a \ --instance-id i-0d9c2b31 \ --device /dev/xvdb
Desde dentro de nuestra instancia EC2, ahora debemos ver el nuevo volumen de EBS como /dev/xvdb.
$ fdisk -l /dev/xvdb Disk /dev/xvdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders ...
Ahora somos libres para utilizar este dispositivo de bloque como un disco normal dentro de Linux. Vamos a seguir adelante y crear particiones en el disco, se aplica un sistema de archivos y luego montarlo en /srv.
$ parted -s -a optimal /dev/xvdb mklabel msdos $ parted -s -a optimal /dev/xvdb mkpart primary ext2 0% 100% $ mkfs.ext4 /dev/xvdb1 $ mount /dev/xvdb1 /srv
Los volúmenes de EBS admiten instantáneas que son un punto en el tiempo de la copia del volumen.
Las instantáneas son ideales para copias de seguridad simples y rentables de dispositivos de bloques que contienen sistemas de archivos. Las instantáneas se pueden copiar en todas las regiones de AWS y se convierten en los volúmenes que se pueden montar en otras instancias de EC2 Linux.
$ aws ec2 create-snapshot \ --volume-id vol-5dda4d0a \ --description "My First Snapshot"
Si quisiéramos fijar esta instantánea a cualquier otra instancia de EC2, usaríamos —snapshot-id como un argumento a aws ec2 create-volume. Podríamos entonces adjuntar el volumen creado a partir de una instantánea a otra instancia EC2, que es una forma muy eficiente para copiar grandes bloques de datos a través de servidores.
Provisión de una base de datos MySQL con Servicio de Base de Datos Relacional
Antes de crear nuestra primera instancia RDS MySQL DB, vamos a crear otro grupo de seguridad que sólo permite el tráfico entrante en el puerto 3306/tcp.
$ aws ec2 create-security-group \ --group-name MySecurityGroupDBOnly \ --description "Inbound DB only"
authorize-security-group-ingress permite el tráfico de origen de un grupo de seguridad al proporcionar un rango de direcciones de red de origen (por ejemplo, 172.31.0.0/20), un ID de cuenta AWS (por ejemplo, 561434394141) o un nombre de grupo de seguridad.
$ aws ec2 authorize-security-group-ingress \ --group-name MySecurityGroupDBOnly \ --source-group MySecurityGroupDBOnly \ --protocol tcp --port 3306
La regla anterior, tal vez parezca un poco confuso al principio, permite a cualquier instancia de EC2 asociada con el Grupo de Seguridad MySecurityGroupDBOnly para acceder a cualquier otra instancia de EC2 o RDS asociada con el Grupo de Seguridad MySecurityGroupDBOnly en 3306/tcp puerto. Volveremos a este grupo de seguridad más tarde.
Vamos a pasar a la creación de nuestra primera instancia RDS, haciendo uso del servicio RDS dentro awscli.
Nuevas instancias RDS DB se aprovisionan utilizando la opción create-db-instance. La opcióncreate-db-instance requiere una contraseña para nuestro ejemplo que vamos a depender de apg, un generador de contraseñas automatizado, para crear por nosotros. También vamos a desactivar de nuestro caparazón archivo histórico así que no guardamos las contraseñas confidenciales en el disco en texto claro.
$ apg -a0 -n10 -m16 $ unset HISTFILE $ aws rds create-db-instance \ --db-name MyDatabase \ --db-instance-identifier my-db-instance \ --allocated-storage 5 \ --db-instance-class db.t1.micro \ --engine MySQL \ --master-username dbadmin \ --master-user-password @SECURE_PASSWORD_GENERATED_WITH_APG@ \ --vpc-security-group-ids sg-c53b20a7
Sustituya @SECURE_PASSWORD_GENERATED_WITH_APG@ con una contraseña generada por apg.
Tenga en cuenta también el ID del grupo de Seguridad pasado por —vpc-security-group-ids la cual es el ID de MySecurityGroupDBOnly devuelto por awscli cuando creamos el grupo con create-security-group. Usted tendrá que sustituir esto con su ID de grupo de seguridad para MySecurityGroupDBOnly.
Después de unos minutos, podemos descubrir la instancia Address RDS que está dentro de la sección Endpoint de describe-db-instances.
$ aws rds describe-db-instances
Por defecto, todo el tráfico entrante a nuestra nueva instancia RDS DB se negó, aunque modificando los grupos de seguridad a la que nuestra instancia actual Ec2 pertenece, perfectamente podemos permitir el acceso a nuestra instancia de DB.
$ aws ec2 modify-instance-attribute \ --instance-id i-95bd36aa \ --groups sg-8a051ee8 sg-c53b20a7
Las instancias de EC2 pueden pertenecer hasta 5 grupos de seguridad que nos proporciona una gran flexibilidad en el diseño de nuestras políticas de tráfico interno y externo. Al utilizar el comando modify-instance-attribute anterior, hemos limitamos nuestra Instancia Ec2 a los grupos de seguridad con Ids de sg-8a051ee8 y sg-c53b20a7. El primer grupo de seguridad Id, sg-8a051ee8, es el Grupo de Seguridad MySecurityGroupSSHOnly original creado en la Parte 1 . La segunda, sg-c53b20a7, es el Grupo de Seguridad Id de MySecurityGroupDBOnly.
Una vez que se instala el cliente de MySQL en nuestra instancia EC2, ahora deberíamos ser capaces de conectarse a nuestra instancia RDS DB que tendrá nuestra base de datos MyDatabase esperándonos.
$ yum install mysql $ mysql --user=dbadmin \ --password \ --host=my-db-instance.ccyld3xbhrju.ap-southeast-2.rds.amazonaws.com mysql> SHOW DATABASES;
-
Negocios
- Los conductores Autómos de Uber y Lyft pueden sindicalizarse, dicen los votantes de Massachusetts
- El gran problema de los mandatos de regreso a la oficina es su cumplimiento
- Los graduados de la Generación Z están siendo despedidos meses después de ser contratados
- Recuperando la concentración con Focus Blocks: Una guía técnica para usuarios de Linux
- La propuesta de una semana laboral de cuatro días del gobierno británico plantea problemas, afirma un profesor de economía
- Best Buy está despidiendo a más empleados debido a la caída de las ventas
- No es un 'abandono silencioso' de los teletrabajadores, solo intentan 'vacaciones silenciosas'
- ¿Podrían las IA reemplazar a los directores ejecutivos?
- Esta Web es un Tesoro de Herramientas Gratuitas para Potenciar tu Experiencia en Informática
- La fatiga por videoconferencia es real, según un estudio
- Importancia del diseño centrado en el usuario para el éxito empresarial
- Bill Gates y la Visión de una Semana Laboral de Tres Días Impulsada por la Inteligencia Artificial
- Las habilidades en código abierto y Linux todavía tienen demanda en una economía oscura
- El FMI lanza el manual sobre la 'moneda digital del banco central' y dice que las CBDC algún día podrían reemplazar al efectivo
- La Inteligencia Artificial Generativa Impacta en el Empleo: Desafíos para Autónomos y Eficiencia en el Trabajo