Administrar una VPC y otros recursos como la subred, la tabla de rutas, la puerta de enlace de Internet desde la terminal mediante aws-cli puede resultar un poco confuso si no se le da bien la VPC. En este artículo, crearemos una VPC con 2 subredes, una tabla de rutas y una puerta de enlace de Internet; estas subredes serán subredes públicas. Después de crear la VPC, intentaremos conectarnos a la instancia EC2 creada en esta VPC. El objetivo de este artículo es presentarle los comandos utilizados para administrar VPC desde la terminal.
Se recomienda primero comprender muy bien la VPC, el enfoque de este artículo no es explicar la VPC. Para conocer las operaciones que se pueden realizar en VPC, visite la documentación oficial aquí.
Requisitos previos
- Cuenta de AWS (cree si no tiene una).
- Comprensión básica de VPC (haga clic aquí para aprender a crear una VPC desde la consola de AWS).
- Usuario de IAM de AWS con la política AmazonVPCFullAccess adjunta y sus claves secretas y de acceso (haga clic aquí para obtener información sobre cómo crear un usuario de IAM).
- AWS CLI instalado en su máquina local.
- Comprensión básica de la instancia EC2 (haga clic aquí para aprender a crear una instancia Ubuntu EC2)
¿Qué haremos?
- Compruebe aws cli y exporte la clave secreta y de acceso de AWS en su máquina local.
- Administrar VPC mediante aws cli.
Verifique aws cli y exporte aws access &secret key en su máquina local.
Si no tiene la utilidad aws-cli instalada en su máquina, consulte la documentación oficial aquí para instalarla en su máquina local y luego verifique la versión con el siguiente comando.
aws --version
Si ejecuta el siguiente comando, obtendrá un error porque no ha configurado el acceso a su cuenta de AWS en la terminal.
aws sts get-caller-identity
Exporte el acceso de usuario de AWS IAM y las claves secretas en su terminal mediante los siguientes comandos.
export AWS_ACCESS_KEY_ID=<aws-user-access-key>
export AWS_SECRET_ACCESS_KEY=<aws-user-secret-key>
Esta vez, puedes verificar tu identidad ejecutando el siguiente comando
aws sts get-caller-identity
Administrar VPC mediante aws-cli
Cree una VPC con el siguiente comando; no creará una VPC predeterminada. 10.0.0.0/16 será el CIDR para la VPC que se creará. Puede especificar un CIDR válido según su elección y requisito.
aws ec2 create-vpc --cidr-block 10.0.0.0/16
Observe el VpcId en la captura de pantalla anterior. Verá un VpcId diferente en su salida. Tome nota del VpcId, lo necesitaremos en los próximos pasos.
Para describir todas las VPC de su región actual, ejecute el siguiente comando.
aws ec2 describe-vpcs
Al especificar el VpcId, puede describir la VPC específica
aws ec2 describe-vpcs --vpc-ids vpc-03c4278f3b75efd77
Ahora, creemos 2 subredes en la VPC que creamos. Aquí, ambas subredes deben tener bloques CIDR únicos en la VPC.
aws ec2 create-subnet --vpc-id vpc-03c4278f3b75efd77 --cidr-block 10.0.1.0/24
aws ec2 create-subnet --vpc-id vpc-03c4278f3b75efd77 --cidr-block 10.0.2.0/24
Para hacer públicas las subredes, necesitamos crear una puerta de enlace de Internet
aws ec2 create-internet-gateway
Adjunte Internet Gateway con la VPC que creamos anteriormente.
aws ec2 attach-internet-gateway --internet-gateway-id igw-04f1e4f13f92599c3 --vpc-id vpc-03c4278f3b75efd77
Ahora, vamos a crear una tabla de rutas.
aws ec2 create-route-table --vpc-id vpc-03c4278f3b75efd77
Asocie la tabla de rutas con ambas subredes
aws ec2 associate-route-table --route-table-id rtb-0878d652f460dbf50 --subnet-id subnet-0748ef7a26aefc7cc
aws ec2 associate-route-table --route-table-id rtb-0878d652f460dbf50 --subnet-id subnet-0375b656eb64962e8
La creación de una ruta desde la tabla de rutas hasta la puerta de enlace de Internet hará que las subredes asociadas con la tabla de rutas sean públicas
aws ec2 create-route --route-table-id rtb-0878d652f460dbf50 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-04f1e4f13f92599c3
Ahora tenemos una VPC con 2 subredes, 1 tabla de rutas y una ruta desde la tabla de rutas hasta la puerta de enlace de Internet.
Si creamos una instancia EC2 en esta VPC y cualquiera de las subredes, la instancia será accesible públicamente desde Internet. Consulte el documento mencionado en el requisito previo para aprender a crear una instancia EC2 de Ubuntu. Al crear una instancia, especifique la VPC que acabamos de crear.
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep VpcId
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep SubnetId
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep PublicIpAddress
ssh -i ~/Downloads/aws-cli.pem [email protected]
Conclusión
En este artículo, vimos los pasos para crear una VPC con 2 subredes, 1 tabla de rutas, una puerta de enlace de Internet y una ruta a la puerta de enlace de Internet desde la tabla de rutas. También vimos que la instancia creada en cualquiera de las subredes hace que la instancia sea pública disponible ya que ambas subredes son subredes públicas.