AWS na przykładzie
Piotr Woszczyk @ 2019
Kiedy?
- Zmienne obciążenie
- Możliwe skalowanie
- Generowanie obciążenia
-
Wysokie HA

Po co?
- Oszczędność $
- Brak ograniczeń
- Wysoka jakość
- Ekologia
Przykład
- Webserwer, np. nginx
- Runtime, np. PHP
- Baza relacyjna, np. MySQL
- Baza noSQL, np. Redis
- Storage
Założenia
- Docker
- Szybkie skalowanie
- Łatwa implementacja
- Użycie gotowych usług
Plan

Wymagania wstępne
- Konto AWS + podpięta karta (free tier)
- AWS CLI: https://aws.amazon.com/cli/
- Docker
ALB - load balancer
Co to?
- Load balancer od AWS
- Wbudowany HealthCheck
- Obsługa wielu AZ
Jak?
- Wybieramy protokół, port i AZ
- Wybieramy certyfikat SSL
- Określamy ustawienia bezpieczeństwa
- Określamy "target group"
- Rejestrujemy "target"
ALB - nazwa, port, AZ

ALB - target group

ECR
Co to?
- Prywatne repozytorium obrazów Docker
Jak?
- Tworzymy repozytorium w ECR
- Logujemy się do ECR przez AWS CLI
- Budujemy obrazy
- Wypychamy obrazy do ECR
ECR

ECR
# Logowanie z użyciem AWS CLI
$(aws ecr get-login --no-include-email --region eu-west-1)
docker build --tag $NGINX_REPOSITORY:$TAG --file nginx/Dockerfile .
docker build --tag $PHP_REPOSITORY:$TAG --file php/Dockerfile .
docker push $NGINX_REPOSITORY:$TAG
docker push $PHP_REPOSITORY:$TAGECR

ECS: Fargate - orchestration
Co to?
- "Orchestration" do AWS dla Docker
- Skaluje kontenery uruchomione w ramach klastra
- Fargate to prosztsza wersja bez konieczności wybierania typów maszyn czy ustawiania sieci
- Współpracuje z innymi usługami, np. Cloud Watch
Jak?
- Tworzymy "cluster"
- Tworzymy "task definition"
- Tworzymy "service"
ECS: Fargate - cluster

ECS: Fargate - task def.

ECS: Fargate - task def.

ECS: Fargate - service

ECS: Fargate - service

ECS: Fargate - service

ECS: Fargate

RDS - baza danych
Co to?
- Usługa oferująca różne silniki baz danych, np. MySQL, PostgreSQL, MSSQL
- Oferuje autorski silnik Aurora kompatybilny z MySQL lub PostgreSQL, który jest kilkukrotnie szybszy
- Oferuje usługi serverless
Jak?
- Wybieramy silnik, wersję i lokalizację
- Określamy sposób działania (predefiniowane instancje vs serverless)
- Ustawiamy dostępy i replikację
- Określamy polityke backupów
RDS

RDS

RDS

RDS

Ile to kosztuje?!
Co?
- Bardzo prosta aplikacja z minimalnym obciążeniem
- ALB + ECS:Fargate + RDS + ElasticCache
Ile?!
- Około 50zł /miesiąc przy użyciu free tier
- Około 200zł / miesiąc bez free tier
Co dalej?
- Analiza i optymalizacja
- Włączanie dodatkowych usług
- Code Pipeline
- Cloud Watch
- Batch
- SES
- Optymalizacja kosztów, np. reserved instance, spot instance
Linki
Dziękuję za uwagę!
AWS
By Piotr Woszczyk
AWS
- 68