... | @@ -63,13 +63,13 @@ Inicialmente é necessário definir quais portas dos nodos estarão expostas na |
... | @@ -63,13 +63,13 @@ Inicialmente é necessário definir quais portas dos nodos estarão expostas na |
|
3. Clicar em **Create Security Group**
|
|
3. Clicar em **Create Security Group**
|
|
4. Inserir um nome (ex.: `swarm-sg`), descrição e selecionar a VPC criada (ex.: `swarm-vpc`)
|
|
4. Inserir um nome (ex.: `swarm-sg`), descrição e selecionar a VPC criada (ex.: `swarm-vpc`)
|
|
5. Na seção **Inbound Rules** acrescentar as seguintes regras:
|
|
5. Na seção **Inbound Rules** acrescentar as seguintes regras:
|
|
- **type** `HTTP` e **origin** `0.0.0.0/0`
|
|
- **type** `HTTP` e **origin** `0.0.0.0/0`
|
|
- **type** `SSH` e **origin** `0.0.0.0/0`
|
|
- **type** `SSH` e **origin** `0.0.0.0/0`
|
|
- **type** `All TCP` e **origin** o próprio Security Group (ex.: `swarm-sg`)
|
|
- **type** `All TCP` e **origin** o próprio Security Group (ex.: `swarm-sg`)
|
|
- **type** `All UDP` e **origin** o próprio Security Group (ex.: `swarm-sg`)
|
|
- **type** `All UDP` e **origin** o próprio Security Group (ex.: `swarm-sg`)
|
|
- **type** `All TCP` e **origin** o próprio Security Group (ex.: `swarm-sg`)
|
|
- **type** `All TCP` e **origin** o próprio Security Group (ex.: `swarm-sg`)
|
|
- **type** `Custom TCP` e **port interval** `8080` e **origin** `0.0.0.0/0`
|
|
- **type** `Custom TCP` e **port interval** `8080` e **origin** `0.0.0.0/0`
|
|
- **type** `Custom TCP` e **port interval** `9090` e **origin** `0.0.0.0/0`
|
|
- **type** `Custom TCP` e **port interval** `9090` e **origin** `0.0.0.0/0`
|
|
6. Clicar em **Create Security Group**
|
|
6. Clicar em **Create Security Group**
|
|
|
|
|
|
Para facilitar a criação do cluster, podemos criar um template de execução para que os nodos iniciem com o Docker instalado:
|
|
Para facilitar a criação do cluster, podemos criar um template de execução para que os nodos iniciem com o Docker instalado:
|
... | @@ -81,20 +81,19 @@ Para facilitar a criação do cluster, podemos criar um template de execução p |
... | @@ -81,20 +81,19 @@ Para facilitar a criação do cluster, podemos criar um template de execução p |
|
5. Na seção **Amazon Machine Image** selecionar `Amazon Linux 2 AMI`
|
|
5. Na seção **Amazon Machine Image** selecionar `Amazon Linux 2 AMI`
|
|
6. Na seção **Instance Type** selecionar o tipo `t2.micro` (*free tier*)
|
|
6. Na seção **Instance Type** selecionar o tipo `t2.micro` (*free tier*)
|
|
7. Na seção **Key pair** clicar em **Create New Key Pair**
|
|
7. Na seção **Key pair** clicar em **Create New Key Pair**
|
|
- Inserir um nome (ex.: `workshop-app`) e clicar em **Create New Key Pair**
|
|
- Inserir um nome (ex.: `workshop-app`) e clicar em **Create New Key Pair**
|
|
> :warning: baixe o arquivo pois a AWS não realiza backup deste certificado!)
|
|
- :warning: Baixe o arquivo pois a AWS não realiza backup deste certificado!
|
|
8. Na seção **Network Configuration** selecionar o grupo de segurança criado (ex.: `swarm-sg`)
|
|
8. Na seção **Network Configuration** selecionar o grupo de segurança criado (ex.: `swarm-sg`)
|
|
9. Na seção **Advanced Details** acessar o campo de texto **User Data** e inserir o seguinte *shell scrpit*:
|
|
9. Na seção **Advanced Details** acessar o campo de texto **User Data** e inserir o seguinte *shell scrpit*:
|
|
|
|
```sh
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
```sh
|
|
# install docker
|
|
#!/bin/bash
|
|
yum update -y
|
|
|
|
amazon-linux-extras install docker -y
|
|
# install docker
|
|
service docker start
|
|
yum update -y
|
|
sudo usermod -a -G docker ec2-user
|
|
amazon-linux-extras install docker -y
|
|
```
|
|
service docker start
|
|
|
|
sudo usermod -a -G docker ec2-user
|
|
|
|
```
|
|
|
|
|
|
|
|
Por fim, vamos executar os nodos a partir do modelo criado:
|
|
Por fim, vamos executar os nodos a partir do modelo criado:
|
|
|
|
|
... | @@ -113,22 +112,22 @@ Para configurar o cluster Swarm é necessário que seja feito o SSH em cada uma |
... | @@ -113,22 +112,22 @@ Para configurar o cluster Swarm é necessário que seja feito o SSH em cada uma |
|
2. No menu lateral, acessar **Instances**
|
|
2. No menu lateral, acessar **Instances**
|
|
3. Verificar as instâncias (nodos) criadas e buscar **Public IPV4 Address**
|
|
3. Verificar as instâncias (nodos) criadas e buscar **Public IPV4 Address**
|
|
4. Para a primeira instância executar
|
|
4. Para a primeira instância executar
|
|
```sh
|
|
```sh
|
|
# acessar via SSH
|
|
# acessar via SSH
|
|
$ ssh -i <certificado> ec2-user@<ipv4-publico-ec2>
|
|
$ ssh -i <certificado> ec2-user@<ipv4-publico-ec2>
|
|
|
|
|
|
# iniciar a nodo como mestre Swarm
|
|
# iniciar a nodo como mestre Swarm
|
|
$ docker swarm init
|
|
$ docker swarm init
|
|
```
|
|
```
|
|
5. Nomear esta máquina de `swarm master` no menu **Instances**
|
|
5. Nomear esta máquina de `swarm-master` no menu **Instances**
|
|
6. Para as demais instâncias (caso existam), executar:
|
|
6. Para as demais instâncias (caso existam), executar:
|
|
```sh
|
|
```sh
|
|
# acessar nodo via SSH
|
|
# acessar nodo via SSH
|
|
$ ssh -i <certificado> ec2-user@<ipv4-publico-ec2>
|
|
$ ssh -i <certificado> ec2-user@<ipv4-publico-ec2>
|
|
|
|
|
|
# iniciar nodo como escravo Swarm
|
|
# iniciar nodo como escravo Swarm
|
|
$ docker swarm join --token <token-swarm> <ip-interno-swarm-master>
|
|
$ docker swarm join --token <token-swarm> <ip-interno-swarm-master>
|
|
```
|
|
```
|
|
7. Nomear as demais máquinas de `swarm-node-<numero>` no menu **Instances**
|
|
7. Nomear as demais máquinas de `swarm-node-<numero>` no menu **Instances**
|
|
|
|
|
|
### Parte 4 - Execução das aplicações
|
|
### Parte 4 - Execução das aplicações
|
... | | ... | |