Saltar al contenido principal

Ejecutar un Nodo Avalanche con Google Cloud Platform

caution

Este documento fue escrito por un miembro de la comunidad, alguna informaci贸n puede estar desactualizada.

Introducci贸n

La Plataforma de Google Cloud (GCP) es una plataforma de alojamiento escalable, confiable y de confianza. Google opera una cantidad significativa de su propia infraestructura de red global. Su red de fibra puede proporcionar conectividad global altamente estable y consistente. En este art铆culo, aprovecharemos GCP para implementar un nodo en el que Avalanche pueda instalarse a trav茅s de terraform. Aprovechar terraform puede parecer excesivo, pero te distinguir谩 como operador y administrador, ya que te permitir谩 una mayor flexibilidad y proporcionar谩 la base sobre la cual puedes construir f谩cilmente m谩s automatizaci贸n.

Convenciones

  • Items resaltados de esta manera son t茅rminos utilizados en GCP y se pueden buscar para obtener m谩s referencias en la documentaci贸n de Google sobre sus productos en la nube.

Notas importantes

  • El tipo de m谩quina utilizado en esta documentaci贸n es solo de referencia y el tama帽o real que uses depender谩 completamente de la cantidad que se apueste y se delege al nodo.

Descripci贸n arquitect贸nica

Esta secci贸n tiene como objetivo describir la arquitectura del sistema que los pasos en la secci贸n de Instrucciones de configuraci贸n implementan cuando se ejecutan. Esto se hace para que el ejecutor no solo pueda implementar la arquitectura de referencia, sino tambi茅n comprender y potencialmente optimizarla para sus necesidades.

Proyecto

Crearemos y utilizaremos un 煤nico Proyecto GCP para la implementaci贸n de todos los recursos.

Habilitaci贸n de servicios

Dentro de nuestro proyecto GCP, deberemos habilitar los siguientes servicios en la nube:

  • Compute Engine
  • IAP

Redes

Red de c贸mputo

Implementaremos un 煤nico objeto de Red de c贸mputo. Esta unidad es donde implementaremos todos los objetos de red subsiguientes. Proporciona un l铆mite l贸gico y un contexto de securitizaci贸n en caso de que desees implementar otras pilas de cadenas u otra infraestructura en GCP.

IP p煤blica

Avalanche requiere que un validador se comunique de salida en la misma direcci贸n IP p煤blica que anuncia para que otros pares se conecten a 茅l. Dentro de GCP, esto excluye la posibilidad de usar un enrutador NAT en la nube para las comunicaciones de salida y nos obliga a vincular la IP p煤blica que provisionamos a la interfaz de la m谩quina. Proveeremos una 煤nica direcci贸n IPv4 est谩tica EXTERNAL Compute Address.

Subnets

Para fines de esta documentaci贸n, implementaremos una 煤nica Subnet de c贸mputo en la Regi贸n US-EAST1 con un rango de direcciones /24 que nos brinda 254 direcciones IP (no todas utilizables, pero para fines de documentaci贸n generalizada).

C贸mputo

Disco

Provisionaremos un 煤nico disco PD-SSD de 400GB que se adjuntar谩 a nuestra VM.

Instancia

Implementaremos una 煤nica Instancia de c贸mputo de tama帽o e2-standard-8. Las observaciones de las operaciones utilizando esta especificaci贸n de m谩quina sugieren que est谩 sobredimensionada en memoria y se podr铆a reducir a 16GB utilizando una especificaci贸n de m谩quina personalizada; pero revisa y ajusta seg煤n sea necesario (隆隆la belleza de la virtualizaci贸n de c贸mputo!!).

Zona

Implementaremos nuestra instancia en la Zona US-EAST1-B.

Firewall

Provisionaremos las siguientes reglas de Firewall de c贸mputo:

  • IAP INGRESS para SSH (TCP 22) - esto solo permite que las fuentes de IAP de GCP entren por SSH.
  • P2P INGRESS para pares AVAX (TCP 9651)

Estos son obviamente puertos predeterminados y se pueden adaptar a tus necesidades seg煤n lo desees.

Instrucciones de configuraci贸n

Cuenta de GCP

  1. Si a煤n no tienes una cuenta de GCP, crea una aqu铆

Obtendr谩s algunos d贸lares gratis para ejecutar una prueba, la prueba es completa en cuanto a funciones, pero tu uso comenzar谩 a agotar tus d贸lares gratis, as铆 que apaga todo lo que no necesites y/o agrega una tarjeta de cr茅dito a tu cuenta si tienes la intenci贸n de ejecutar cosas a largo plazo para evitar cierres de servicio.

Proyecto

Inicia sesi贸n en la Consola en la nube de GCP y crea un nuevo Proyecto en tu organizaci贸n. Usemos el nombre my-avax-nodes por el bien de esta configuraci贸n.

  1. Seleccionar men煤 desplegable del proyecto
  2. Hacer clic en el bot贸n Nuevo proyecto
  3. Crear nuevo proyecto

Estado de Terraform

Terraform utiliza archivos de estado para componer una diferencia entre la configuraci贸n de infraestructura actual y el plan propuesto. Puedes almacenar este estado en una variedad de lugares diferentes, pero usar el almacenamiento de GCP es un enfoque razonable dada la ubicaci贸n donde estamos implementando, as铆 que nos quedaremos con eso.

  1. Seleccionar Navegador de almacenamiento en la nube
  2. Crear nuevo bucket

La autenticaci贸n a GCP desde terraform tiene algunas opciones diferentes que se describen aqu铆. Elije la opci贸n que se alinee con tu contexto y aseg煤rate de completar esos pasos antes de continuar.

note

Dependiendo de c贸mo planees ejecutar tus operaciones de terraform, es posible que necesites habilitar o no el acceso p煤blico al bucket. Obviamente, no exponer el bucket para acceso "p煤blico" (incluso si est谩 autenticado) es preferible. Si planeas simplemente ejecutar comandos de terraform desde tu m谩quina local, entonces deber谩s abrir el acceso. Recomiendo emplear un pipeline completo de CI/CD utilizando GCP Cloud Build, que si se utiliza significa que el bucket se puede marcar como "privado". Se puede encontrar una gu铆a completa de configuraci贸n de Cloud Build en este contexto aqu铆.

Clonar el repositorio de GitHub

He proporcionado una construcci贸n rudimentaria de terraform para aprovisionar un nodo en el que ejecutar Avalanche, que se puede encontrar aqu铆. La documentaci贸n a continuaci贸n asume que est谩s utilizando este repositorio, pero si tienes otro esqueleto de terraform, se aplicar谩n pasos similares.

Configuraci贸n de Terraform

  1. Si ejecutas terraform localmente, por favor inst谩lalo.
  2. En este repositorio, navega hasta el directorio terraform.
  3. En el directorio projects, cambia el nombre del directorio my-avax-project para que coincida con el nombre de tu proyecto GCP que creaste (no es necesario, pero es bueno ser consistente).
  4. Bajo la carpeta que acabas de renombrar, localiza el archivo terraform.tfvars.
  5. Edita este archivo y completa los valores que tengan sentido para tu contexto y gu谩rdalo.
  6. Localiza el archivo backend.tf en el mismo directorio.
  7. Edita este archivo asegur谩ndote de reemplazar la propiedad bucket con el nombre del bucket de GCS que creaste anteriormente.

Si no deseas usar el almacenamiento en la nube para persistir el estado de terraform, simplemente cambia el backend a alg煤n otro proveedor deseable.

Ejecuci贸n de Terraform

Terraform nos permite ver qu茅 har铆a si lo ejecut谩ramos sin aplicar realmente ning煤n cambio... esto se llama operaci贸n de plan. Este plan luego se lleva a cabo (opcionalmente) mediante un apply.

Plan

  1. En una terminal que pueda ejecutar el binario tf, cd al directorio ~my-avax-project que renombraste en el paso 3 de Configuraci贸n de Terraform.
  2. Ejecuta el comando tf plan.
  3. Deber铆as ver una salida JSON en la salida est谩ndar de la terminal que muestra las operaciones que terraform ejecutar谩 para aplicar el estado previsto.

Apply

  1. En una terminal que pueda ejecutar el binario tf, haz cd al directorio ~my-avax-project que renombraste en el paso 3 de la "Configuraci贸n de Terraform".
  2. Ejecuta el comando tf apply.

Si quieres asegurarte de que Terraform haga exactamente lo que viste en la salida de apply, opcionalmente puedes solicitar que la salida del plan se guarde en un archivo para alimentarlo a apply. Esto generalmente se considera una buena pr谩ctica en entornos altamente fluidos donde ocurren cambios r谩pidos desde m煤ltiples fuentes.

Conclusi贸n

Establecer pr谩cticas de CI/CD utilizando herramientas como GitHub y Terraform para gestionar tus activos de infraestructura es una excelente manera de asegurar capacidades b谩sicas de recuperaci贸n ante desastres y asegurarte de tener un lugar para incrustar cualquier ~ajuste que tengas que hacer operativamente, evitando el riesgo de pasarlos por alto cuando tengas que escalar de 1 nodo a 10. Tener un pipeline automatizado tambi茅n te da un lugar para construir una casa m谩s grande... lo que comienza como tu inter茅s en construir y gestionar un solo nodo AVAX hoy puede cambiar r谩pidamente a construir una operaci贸n de infraestructura para muchas cadenas diferentes trabajando con varios miembros del equipo. 隆Espero que esto te haya inspirado a dar un salto hacia la automatizaci贸n en este contexto!

Was this page helpful?