

AWS Blockchain Templates se suspendió el 30 de abril de 2019. No habrá más actualizaciones de este servicio ni de esta documentación complementaria. Para disfrutar de la mejor experiencia de Managed Blockchain AWS, le recomendamos que utilice [Amazon Managed Blockchain (AMB).](https://aws.amazon.com/managed-blockchain/) Para obtener más información sobre cómo empezar a utilizar Amazon Managed Blockchain, consulte nuestro [taller sobre Hyperledger Fabric](https://catalog.us-east-1.prod.workshops.aws/workshops/008da2cb-8454-42d0-877b-bc290bff7fcf/en-US) o nuestro [blog sobre la implementación de un nodo de Ethereum](https://aws.amazon.com/blogs/database/deploy-an-ethereum-node-on-amazon-managed-blockchain/). Si tienes preguntas sobre AMB o necesitas más ayuda, [ponte en contacto con nuestro Soporte](https://console.aws.amazon.com/support/home#/case/create?issueType=technical) equipo de AWS cuentas.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de requisitos previos
<a name="blockchain-template-getting-started-prerequisites"></a>

Para la configuración de la AWS Blockchain Template para Ethereum especificada en este tutorial, es necesario hacer lo siguiente:
+ [Creación de una VPC y de subredes](#blockchain-templates-create-a-vpc)
+ [Creación de los grupos de seguridad](#blockchain-templates-create-security-group)
+ [Cree un rol de IAM para Amazon ECS y un perfil de EC2 instancia](#blockchain-templates-iam-roles)
+ [Creación de un host bastión](#blockchain-templates-bastion-host)

## Creación de una VPC y de subredes
<a name="blockchain-templates-create-a-vpc"></a>

AWS Blockchain Template para Ethereum lanza recursos en una red virtual que haya definido mediante Amazon Virtual Private Cloud (Amazon VPC). La configuración especificada en este tutorial crea un equilibrador de carga de aplicaciones que requiere dos subredes públicas en zonas de disponibilidad distintas. Además, se requiere una subred privada para las instancias de contenedor y la subred debe estar en la misma zona de disponibilidad que el equilibrador de carga de aplicaciones. En primer lugar, utilice el Asistente para VPC para crear una subred pública y una subred privada en la misma zona de disponibilidad. A continuación, cree una segunda subred pública dentro de esta VPC en una zona de disponibilidad distinta.

Para obtener más información, consulte [¿Qué es Amazon VPC?](https://docs.aws.amazon.com/vpc/latest/userguide/) en la *Guía del usuario de Amazon VPC*.

Utilice la consola de Amazon VPC ([https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)) para crear la dirección IP elástica, la VPC y la subred, tal y como se describe a continuación.

**Para crear una dirección IP elástica**

1. Abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. **Elija **Elastic IPs**, **asigne la nueva dirección y asigne**.**

1. Anote la dirección IP elástica que ha creado y elija **Close (Cerrar)**.

1. En la lista de direcciones IP elásticas, busque el **Allocation ID (ID de asignación)** de la dirección IP elástica creada anteriormente. Lo utilizará al crear la VPC.

**Para crear la VPC**

1. En la barra de navegación, seleccione una región para la VPC. VPCs son específicos de una región, así que selecciona la misma región en la que creaste tu key pair y en la que vas a lanzar la pila de Ethereum. Para obtener más información, consulte [Creación de un par de claves](blockchain-templates-setting-up.md#blockchain-templates-create-a-key-pair).

1. En el panel de VPC, seleccione **Start VPC Wizard**.

1. En la página **Step 1: Select a VPC Configuration (Paso 1: Seleccionar una configuración de la VPC)**, elija **VPC with Public and Private Subnets (VPC con subredes públicas y privadas)**, **Select (Seleccionar)**.

1. En la página **Paso 2: VPC con subredes públicas y privadas**, deje los valores predeterminados de los **bloques IPv4 CIDR** y **IPv6 CIDR.** En **VPC name (Nombre de la VPC)**, escriba un nombre fácil de recordar.

1. Para el ** IPv4 CIDR de la subred pública,** deje el valor predeterminado. En **Availability Zone (Zona de disponibilidad)**, elija una zona. En **Public subnet name (Nombre de la subred pública)**, escriba un nombre fácil de recordar.

   Debe especificar esta subred como una de las dos primeras subredes del equilibrador de carga de aplicaciones cuando utilice la plantilla.

   Tenga en cuenta la zona de disponibilidad de esta subred porque selecciona la misma zona de disponibilidad para la subred privada y otra distinta para la otra subred pública.

1. Para el ** IPv4 CIDR de la subred privada**, deje el valor predeterminado. En **Availability Zone (Zona de disponibilidad)**, seleccione la misma zona de disponibilidad que en el paso anterior. En **Private subnet name (Nombre de la subred privada)**, escriba un nombre fácil de recordar.

1. En **Elastic IP Allocation ID (ID de asignación de IP elástica)**, seleccione la dirección IP elástica que creó anteriormente.

1. Deje los valores predeterminados de las demás opciones.

1. Seleccione **Creación de VPC**.

   **El siguiente ejemplo muestra una VPC **EthereumNetworkVPC** con una subred pública **EthereumPubSub1 y una subred privada 1**. EthereumPvtSub** La subred pública utiliza la zona de disponibilidad **us-west-2a**.  
![\[VPC configuration form with public and private subnet details for EthereumVPC.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/VPC.png)

**Para crear la segunda subred pública en otra zona de disponibilidad**

1. Elija **Subnets (Subredes)** y, a continuación, seleccione de la lista la subred pública que creó anteriormente en la lista. Seleccione la pestaña **Route Table (Tabla de enrutamiento)** y anote el ID de la **Route table (Tabla de enrutamiento)**. Especifique esta misma tabla de enrutamiento para la segunda subred pública a continuación.

1. Elija **Create Subnet (Crear subred)**.

1. En **Name tag (Etiqueta de nombre)**, introduzca un nombre para la subred. Este nombre se utilizará más adelante al crear el host bastión en esta red.

1. En **VPC**, seleccione la VPC que creó anteriormente.

1. En **Availability Zone (Zona de disponibilidad)**, seleccione una zona distinta de la que seleccionó para la primera subred pública.

1. **Para el bloque **IPv4 CIDR**, ingresa 10.0.2.0/24.**

1. Elija **Sí, crear**. La subred se agrega a la lista de subredes.

1. Con la subred seleccionada en la lista, elija **Subnet Actions (Acciones de subred)**, **Modify auto-assign IP settings (Modificar configuración de asignación automática de IP)**. ****Seleccione Asignar **automáticamente IPs**, guardar y cerrar.**** Esto permite que el host bastión obtenga una dirección IP pública al crearla en esta subred.

1. En la pestaña **Route Table (Tabla de enrutamiento)**, elija **Edit (Editar)**. En **Change to (Cambiar a)**, seleccione el ID de la tabla de enrutamiento que anotó anteriormente y elija **Save (Guardar)**.

Ahora debería ver tres subredes para la VPC que ha creado anteriormente. Anote los nombres de las subredes IDs para poder especificarlos mediante la plantilla.

![\[VPC Dashboard showing three subnets with their IDs, states, and IPv4 CIDR ranges.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/subnets-listing.png)


## Creación de los grupos de seguridad
<a name="blockchain-templates-create-security-group"></a>

Los grupos de seguridad funcionan como firewalls que controlan el tráfico entrante y saliente de los recursos. Cuando se utiliza la plantilla para crear una red Ethereum en un clúster de Amazon ECS, se deben especificar dos grupos de seguridad:
+ Un grupo de seguridad para EC2 las instancias que controla el tráfico hacia y desde EC2 las instancias del clúster
+ Un grupo de seguridad para el Application Load Balancer que controla el tráfico entre el Application Load Balancer EC2 , las instancias y el host bastión. Asocie este grupo de seguridad también con el host bastión.

Cada grupo de seguridad tiene reglas que permiten la comunicación entre Application Load Balancer y las EC2 instancias, además de otras reglas mínimas. Para ello, es necesario que los grupos de seguridad se hagan referencia entre sí. Por este motivo, primero debe crear los grupos de seguridad y, a continuación, actualizarlos con las reglas apropiadas.

**Para crear dos grupos de seguridad**

1. Abre la EC2 consola de Amazon en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Security Groups**, **Create Security Group**.

1. En **Nombre del grupo de seguridad**, introduzca un nombre para el grupo de seguridad que sea fácil de identificar y que lo diferencie del otro, como *Ethereum EC2 -SG o *EthereumALB-SG**. Utilizará estos nombres más adelante. En **Description (Descripción)**, escriba un breve resumen.

1. En **VPC**, seleccione la VPC que creó anteriormente.

1. Seleccione **Crear**.

1. Repita los pasos anteriores para crear el otro grupo de seguridad.

**Agregue reglas de entrada al grupo de seguridad para las instancias EC2**

1. Seleccione el grupo de seguridad para EC2 las instancias que creó anteriormente

1. En la pestaña **Inbound (Entrada)**, seleccione **Edit (Edición de)**.

1. En **Tipo**, seleccione **Todo el tráfico**. En **Source**, deje seleccionada la opción **Personalizado** y, a continuación, elija de la lista el grupo de seguridad que está editando actualmente, por ejemplo, *Ethereum EC2 -SG*. Esto permite que las EC2 instancias del grupo de seguridad se comuniquen entre sí.

1. Seleccione **Add Rule (Agregar regla)**.

1. En **Tipo**, seleccione **Todo el tráfico**. En **Source (Origen)**, deje seleccionado **Custom (Personalizado)** y, a continuación, elija el grupo de seguridad para el equilibrador de carga de aplicaciones en la lista, por ejemplo, *EthereumALB-SG*. Esto permite que las EC2 instancias del grupo de seguridad se comuniquen con Application Load Balancer.

1. Seleccione **Save**.

**Adición de las reglas de entrada y edición de las reglas de salida del grupo de seguridad del equilibrador de carga de aplicaciones**

1. Seleccione el grupo de seguridad para los equilibradores de carga de aplicaciones que creó anteriormente.

1. En la pestaña **Inbound (Entrada)**, elija **Edit (Editar)** y, a continuación, agregue las reglas de entrada siguientes:

   1. En **Tipo**, seleccione **Todo el tráfico**. En **Source (Origen)**, deje seleccionado **Custom (Personalizado)** y, a continuación, elija el grupo de seguridad que está editando actualmente en la lista, por ejemplo, *EthereumALB-SG*. Esto permite que el equilibrador de carga de aplicaciones se comunique consigo mismo y con el host bastión.

   1. Seleccione **Add Rule (Agregar regla)**.

   1. En **Tipo**, seleccione **Todo el tráfico**. En **Source**, deje seleccionada la opción **Personalizado** y, a continuación, elija el grupo de seguridad para EC2 las instancias de la lista, por ejemplo, *Ethereum EC2 -SG*. Esto permite que las EC2 instancias del grupo de seguridad se comuniquen con el Application Load Balancer y el host del bastión.

   1. Seleccione **Add Rule (Agregar regla)**.

   1. En **Tipo**, seleccione **SSH**. En **Source (Origen)**, seleccione **My IP (Mi IP)**, que detecta el CIDR de la IP de su equipo y lo escribe.
**importante**  
Esta regla permite que el host bastión acepte el tráfico SSH de tu ordenador, lo que permite que tu ordenador utilice el host bastión para ver las interfaces web y conectarse a las EC2 instancias de la red Ethereum. Para permitir que otros se conecten a la red Ethereum, agréguelos como orígenes a esta regla. Permitir solo el tráfico entrante a orígenes de confianza.

   1. Seleccione **Save**.

1. En la pestaña **Outbound (Salida)**, elija **Edit (Editar)** y elimine la regla que se creó automáticamente para permitir el tráfico saliente con destino a todas las direcciones IP.

1. Seleccione **Add Rule (Agregar regla)**.

1. En **Tipo**, seleccione **Todo el tráfico**. En **Destino**, deja seleccionada la opción **Personalizado** y, a continuación, elige el grupo de seguridad para las EC2 instancias de la lista. Esto permite las conexiones salientes desde el Application Load Balancer y el host del bastión EC2 a instancias de la red Ethereum.

1. Seleccione **Add Rule (Agregar regla)**.

1. En **Tipo**, seleccione **Todo el tráfico**. En **Destination (Destino)**, deje **Custom (Personalizado)** seleccionado y, a continuación, elija el grupo de seguridad que está editando actualmente de la lista, por ejemplo, *EthereumALB-SG*. Esto permite que el equilibrador de carga de aplicaciones se comunique consigo mismo y con el host bastión.

1. Seleccione **Save**.

## Cree un rol de IAM para Amazon ECS y un perfil de EC2 instancia
<a name="blockchain-templates-iam-roles"></a>

Al utilizar esta plantilla, se especifica un rol de IAM para Amazon ECS y un perfil de EC2 instancia. Las políticas de permisos asociadas a estos roles permiten a los recursos de AWS y a las instancias del clúster interactuar con otros recursos de AWS. Para obtener más información, consulte [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *Guía del usuario de IAM*. La función de IAM para Amazon ECS y el perfil de EC2 instancia se configura mediante la consola de IAM () [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

**Crear el rol de IAM para Amazon ECS**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, elija **Roles**, **Crear rol**.

1. En **Select type of trusted entity (Seleccionar tipo de entidad de confianza)**, elija **AWS service**.

1. En **Choose the service that will use this role (Elegir el servicio que usará este rol)**, elija **Elastic Container Service**.

1. En **Select your use case (Seleccione su caso de uso)**, elija **Elastic Container Service (Servicio de contenedor elástico)**, **Next:Permissions (Siguiente: Permisos)**.  
![\[AWS console interface for creating a role, with Elastic Container Service selected as the use case.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ecs-role.png)

1. Para la **política de permisos**, deja seleccionada la política predeterminada (**Amazon EC2 ContainerServiceRole**) y selecciona **Next:Review**.

1. En **Nombre del rol**, ingresa un valor que te ayude a identificar el rol, como. *ECSRoleForEthereum* En **Role Description (Descripción del rol)**, escriba un breve resumen. Anote el nombre del rol para consultarlo más adelante.

1. Elija **Crear rol**.

1. Seleccione en la lista el rol que acaba de crear. Si su cuenta tiene varios roles, puede buscar el nombre de rol.  
![\[AWSIAM console showing a role named "ECSRoleForEtherum" with its description.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ecs-role-list.png)

1. Copie el valor de **Role ARN (ARN del rol)** y guárdelo donde pueda copiarlo de nuevo. Necesitará este ARN al crear la red Ethereum.  
![\[AWSIAM role summary page showing role ARN, description, and attached policies.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ecs-role-arn.png)

Las EC2 instancias de la red Ethereum asumen el perfil de instancia que especificas en la plantilla para interactuar con otros AWS servicios. EC2 Primero debe crear una política de permisos para el rol, a continuación, crear el rol (que crea automáticamente un perfil de instancia con el mismo nombre) y, por último, asociar la política de permisos al rol.

**Para crear un perfil de EC2 instancia**

1. En el panel de navegación, seleccione **Policies (Políticas)**, **Create policy (Crear política)**.

1. Elija **JSON** y sustituya la instrucción de política predeterminada por la siguiente política JSON:

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ecs:CreateCluster",
                   "ecs:DeregisterContainerInstance",
                   "ecs:DiscoverPollEndpoint",
                   "ecs:Poll",
                   "ecs:RegisterContainerInstance",
                   "ecs:StartTelemetrySession",
                   "ecs:Submit*",
                   "ecr:GetAuthorizationToken",
                   "ecr:BatchCheckLayerAvailability",
                   "ecr:GetDownloadUrlForLayer",
                   "ecr:BatchGetImage",
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "dynamodb:BatchGetItem",
                   "dynamodb:BatchWriteItem",
                   "dynamodb:PutItem",
                   "dynamodb:DeleteItem",
                   "dynamodb:GetItem",
                   "dynamodb:Scan",
                   "dynamodb:Query",
                   "dynamodb:UpdateItem"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

1. Elija **Revisar política**.

1. En **Nombre**, introduce un valor que te ayude a identificar esta política de permisos, por ejemplo *EthereumPolicyForEC2*. En **Description (Descripción)**, escriba un breve resumen. Elija **Crear política**.  
![\[AWS console showing Create policy page with name, description, and service permissions.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ec2-perms-policy.png)

1. Elija **Roles**, **Crear rol**.

1. Elija **EC2**, **Siguiente: Permisos**.

1. En el campo de **búsqueda**, introduzca el nombre de la política de permisos que creó anteriormente, por ejemplo *EthereumPolicyForEC2*.

1. Seleccione la marca de verificación situada junto a la política que ha creado antes y elija **Next: Review (Siguiente: Revisar)**.  
![\[AWS console showing Create role page with EthereumPolicyForEC2 policy selected.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ec2-select-policy.png)

1. En **Nombre del rol**, introduzca un valor que le ayude a identificar el rol, por ejemplo *EC2RoleForEthereum*. En **Role description (Descripción del rol)**, escriba un breve resumen. Elija **Create role (Crear rol)**.

1. Seleccione en la lista el rol que acaba de crear. Si su cuenta tiene muchos roles, puede escribir el nombre del rol en el campo **Search (Buscar)**.  
![\[AWSIAM interface showing a role named EC2RoleforEther with associated description and trusted entity.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ec2-select-role.png)

1. Copie el valor de **Instance Profile ARN (ARN del perfil de instancia)** y guárdelo donde pueda copiarlo de nuevo. Necesitará este ARN al crear la red Ethereum.  
![\[AWSIAM role summary page showing Role ARN and Instance Profile ARNs fields.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/ec2-role-arn.png)

## Creación de un host bastión
<a name="blockchain-templates-bastion-host"></a>

En este tutorial, creará un host bastión. Esta es una EC2 instancia que utilizas para conectarte a las interfaces web e instancias de tu red Ethereum. Su único propósito es reenviar tráfico SSH desde clientes de confianza fuera de la VPC para que puedan acceder a los recursos de red de Ethereum.

El host bastión se configura porque el equilibrador de carga de aplicaciones que crea la plantilla es interno, lo que significa que solo enruta las direcciones IP internas. El host bastión:
+ Tiene una dirección IP interna que el equilibrador de carga de aplicaciones reconoce porque la lanza en la segunda subred pública creada anteriormente.
+ Tiene una dirección IP pública que asigna la subred, a la que pueden acceder orígenes de confianza fuera de la VPC.
+ Está asociado con el grupo de seguridad para el equilibrador de carga de aplicaciones creado anteriormente, que tiene una regla de entrada que permite el tráfico SSH (puerto 22) de clientes de confianza.

Para poder acceder a la red Ethereum, los clientes de confianza tienen que configurarse para conectarse a través del host bastión. Para obtener más información, consulte [Conectarse EthStats a Bastion Host y EthExplorer usarlo](blockchain-bastion-host-connect.md). Un host bastión es un enfoque. Puede utilizar cualquier enfoque que proporcione acceso desde clientes de confianza a recursos privados dentro de una VPC.

**Para crear un host bastión**

1. Siga los cinco primeros pasos para [lanzar una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) en la *Guía del EC2 usuario de Amazon*.

1. Elija **Edit Instance Details**. En **Network (Red)**, elija la VPC que creó anteriormente, en **Subnet (Subred)** seleccione la segunda subred pública que creó anteriormente. Deje el resto de opciones con sus valores predeterminados.

1. Confirme el cambio cuando se le solicite y, a continuación, elija **Review and Launch (Revisar y lanzar)**.

1. Elija **Edit Security Groups (Editar grupos de seguridad)**. En **Assign a security group (Asignar un grupo de seguridad)**, seleccione **Select an existing security group (Seleccionar un grupo de seguridad existente)**.

1. Desde la lista de grupos de seguridad, seleccione el grupo de seguridad para el equilibrador de carga de aplicaciones que creó anteriormente y, a continuación, elija **Revisar y lanzar**.

1. Elija **Iniciar**.

1. Anote el ID de la instancia. Lo necesitará más tarde cuando [Conectarse EthStats a Bastion Host y EthExplorer usarlo](blockchain-bastion-host-connect.md).  
![\[Green checkmark indicating successful instance launch with partially obscured instance ID.\]](http://docs.aws.amazon.com/es_es/blockchain-templates/latest/developerguide/images/bastion-instance.png)