Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Create a new issue
  • Jobs
  • Issue Boards
Collapse sidebar
  • workshop-ages-winter-2021
  • wiki
  • Wiki
  • Dia 2: Amazon Web Services (AWS)

Dia 2: Amazon Web Services (AWS) · Changes

Page history
Update Dia 2: Amazon Web Services (AWS) authored Jul 20, 2021 by Henrique Reis Kops's avatar Henrique Reis Kops
Show whitespace changes
Inline Side-by-side
Dia-2:-Amazon-Web-Services-(AWS).md
View page @ c7e93042
......@@ -26,10 +26,10 @@ Após vamos criar uma subrede dentro da VPC para conectar nossas VMs:
2. No menu lateral, acessar **Subnets**
3. Clicar em **Create Subnet**
4. Selecione a VPC criada (ex.: `swarm-vpc`)
5. Inserir um nome (ex.: swarm-subnet) e colocar o mesmo bloco CIDR (ex.: `172.30.0.0/24`)
5. Clicar em **Create VPC**
5. Inserir um nome (ex.: `swarm-subnet`) e colocar o mesmo bloco CIDR (ex.: `172.30.0.0/24`)
6. Clicar em **Create VPC**
Ainda é necessário que a nossa VPC tenha acesso à internet, portanto criaremos um Internet Gateway:
Ainda é necessário que a nossa VPC tenha acesso à rede externa, portanto criaremos um *gateway*:
1. Acessar o painel do serviço **VPC** no console da AWS
2. No menu lateral, acessar **Internet Gateways**
......@@ -39,7 +39,7 @@ Ainda é necessário que a nossa VPC tenha acesso à internet, portanto criaremo
7. Com o botão direito do mouse, clicar no novo Internet Gateway (*detached*) e escolher **attach to VPC**
8. Selecionar a VPC criada (ex.: `swarm-vpc`) e clicar em **Attach Internet Gateway**
Por fim, vamos criar modificar a Routing Table para endereçar o tráfego em `0.0.0.0/0` (rota padrão) para o Internet Gateway criado:
Por fim, vamos criar modificar a tabela de roteamento para endereçar o tráfego em `0.0.0.0/0` (rota padrão) para o *gateway* criado:
1. Acessar o painel do serviço **VPC** no console da AWS
2. No menu lateral, acessar **Route Tables**
......@@ -48,18 +48,58 @@ Por fim, vamos criar modificar a Routing Table para endereçar o tráfego em `0.
5. Clicar em **add route** e inserir `0.0.0.0/0` para **destination** e seu Internet Gateway para **target**
6. Clicar em **Save Changes**
### Parte 2 - Criação de Amazon EC2
### Parte 2 - Criação do cluster
Inicialmente é necessário definir quais portas das VMs estarão expostar na internet:
1. Acessar o painel do serviço **EC2** no console da AWS
2. No menu lateral, acessar **Security Groups**
3. Clicar em **Create Security Group*
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:
- **type** `HTTP` 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 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** `Custom TCP` e **port interval** `8080` e **origin** `0.0.0.0/0`
6. Clicar em **Create Security Group**
Para facilitar a criação do cluster, podemos criar um template de execução para que as VMs iniciem com o Docker instalado:
1. Acessar o painel do serviço **EC2** no console da AWS
2. No menu lateral, acessar **Launch Templates**
3. Clicar em **Create Launch Template*
4. Inserir um nome (ex.: `swarm-template`) e descrição
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*)
7. Na seção **Key pair** clicar em **Create New Key Pair**
8. Na seção **Network Configuration** selecionar o grupo de segurança criado (ex.: `swarm-sg`)
9. 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!)
10. Na seção **Advanced Details** acessar o campo de texto **User Data** e inserir o seguinte *shell scrpit*:
```sh
#!/bin/bash
# install docker
yum update -y
amazon-linux-extras install docker -y
service docker start
sudo usermod -a -G docker ec2-user
```
Por fim, vamos executar as VMs a partir do modelo criado:
1. Acessar o painel do serviço **EC2** no console da AWS
2. No menu lateral, acessar **Launch Templates**
3. Selecionar o modelo criado (ex.: `swarm-template`) e, em **actions**, selecionar **Execute From Launch Template**
4. Selecionar a quantidade de de instâncias para executar (ex.: `3`)
5. Clicar em **Execute From Launch Template**
### Parte 3 - Configuração do Docker Swarm
```sh
$ ssh -i ages-winter-2021.pem ec2-user@<ipv4-publico-ec2>
$ sudo yum update -y
$ sudo amazon-linux-extras install docker -y
$ sudo service docker start
$ sudo usermod -a -G docker ec2-user
$ logout
```
$ ssh -i ages-winter-2021.pem ec2-user@<ipv4-publico-ec2>
$ docker swarm init
$ docker swarm join --token <swarm-token> <swarm-master>
......@@ -70,3 +110,8 @@ $ docker swarm join --token <swarm-token> <swarm-master>
### Parte 5 - Publicação da imagem no Amazon ECR
### Parte 6 - Aplicação da imagem no Docker Swarm
## Links interessantes:
- https://medium.com/@fidelissauro/docker-swarm-02-quickstart-do-seu-cluster-de-ec2-na-amazon-aws-com-docker-1394d365cb04
\ No newline at end of file
Clone repository
  • Dia 1: Frontend, Backend e Git
  • Dia 2: Amazon Web Services (AWS)
  • Dia 3: Containers Docker e CI CD
  • Home