fbpx

Uruchom kontenery w chmurze AWS

Mikroserwisy na stałe zagościły jako podstawowa architektura naszych systemów. Rozwiązują kilka problemów, ale chcemy, żeby nie tworzyły kolejnych. Dlatego na warsztatach zapoznasz się z możliwościami, jakie oferuje Ci AWS w zakresie tworzenia i zarządzania kontenerami. Poznasz usługi Elastic Container Service (ECS), Elastic Kubernetes Service (EKS) i AWS Fargate. Wdrożysz swój własny kontener i zobaczysz, że to nie takie straszne.

Warsztaty live w ramach AWSowego tygodnia ➡️ https://www.akademiaarchitektait.pl/plan-wydarzen-awsowego-tygodnia/


Wymagane oprogramowanie

Docker

Pobierz i zainstaluj https://docs.docker.com/get-docker/

.Net SDK

Pobierz i zainstaluj .NET SDK z https://dotnet.microsoft.com/download
Instalację możesz sprawdzić komendą:

dotnet

Instalacja Copilot

brew install aws/tap/copilot-cli

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Copilot.html#copilot-install

AWS CDK

npm install -g aws-cdk

Aplikacja

dotnet new blazorwasm -o BlazorApp
cd BlazorApp
code .
dotnet watch run
dotnet publish -c Release -o published

Plik nginx.conf

events { }
http {
    include mime.types;
    types {
        application/wasm wasm;
    }

    server {
        listen 80;

        location / {
            root /usr/share/nginx/html;
            try_files $uri $uri/ /index.html =404;
        }
    }
}

Plik Dockerfile

# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src

COPY *.csproj .
RUN dotnet restore
COPY . . 
RUN dotnet build -c Release -o /app/build

FROM build AS publish
RUN dotnet publish -c Release -o /app/published

FROM nginx:alpine AS final
WORKDIR /usr/share/nginx/html
COPY --from=publish /app/published/wwwroot .
COPY nginx.conf /etc/nginx/nginx.conf
docker build -t blazorasm-docker .
docker images
docker run -p 8080:80 blazorasm-docker
docker run -d -p 8080:80 blazorasm-docker 
docker ps
docker stop **id**

Copilot

copilot init
copilot app show
copilot svc show
copilot app delete

AWS Fargate – budowa w CDK

cdk init --language typescript
npm install @aws-cdk/aws-ecs-patterns
npm run build
cdk deploy

Eksport docker image

docker tag blazorasm-docker ***adres uri repozytorium***
aws ecr get-login-password | docker login --username AWS --password-stdin ***adres rejestru***
docker push ***adres uri repozytorium***

Czyszczenie

cdk destroy

Szafrański Michał
Uczę programistów efektywnego wykorzystania chmury AWS do ich pracy twórczej.