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ą:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dotnet
dotnet
dotnet

Instalacja Copilot

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
brew install aws/tap/copilot-cli
brew install aws/tap/copilot-cli
brew install aws/tap/copilot-cli

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

AWS CDK

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
npm install -g aws-cdk
npm install -g aws-cdk
npm install -g aws-cdk

Aplikacja

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dotnet new blazorwasm -o BlazorApp
cd BlazorApp
code .
dotnet watch run
dotnet publish -c Release -o published
dotnet new blazorwasm -o BlazorApp cd BlazorApp code . dotnet watch run dotnet publish -c Release -o published
dotnet new blazorwasm -o BlazorApp
cd BlazorApp
code .
dotnet watch run
dotnet publish -c Release -o published

Plik nginx.conf

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
}
}
}
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; } } }
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# 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
# 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
# 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
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker build -t blazorasm-docker .
docker build -t blazorasm-docker .
docker build -t blazorasm-docker .
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker images
docker images
docker images
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker run -p 8080:80 blazorasm-docker
docker run -p 8080:80 blazorasm-docker
docker run -p 8080:80 blazorasm-docker
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker run -d -p 8080:80 blazorasm-docker
docker run -d -p 8080:80 blazorasm-docker
docker run -d -p 8080:80 blazorasm-docker 
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker ps
docker ps
docker ps
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker stop **id**
docker stop **id**
docker stop **id**

Copilot

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
copilot init
copilot init
copilot init
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
copilot app show
copilot app show
copilot app show
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
copilot svc show
copilot svc show
copilot svc show
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
copilot app delete
copilot app delete
copilot app delete

AWS Fargate – budowa w CDK

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cdk init --language typescript
cdk init --language typescript
cdk init --language typescript
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
npm install @aws-cdk/aws-ecs-patterns
npm install @aws-cdk/aws-ecs-patterns
npm install @aws-cdk/aws-ecs-patterns
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
npm run build
cdk deploy
npm run build cdk deploy
npm run build
cdk deploy

Eksport docker image

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker tag blazorasm-docker ***adres uri repozytorium***
docker tag blazorasm-docker ***adres uri repozytorium***
docker tag blazorasm-docker ***adres uri repozytorium***
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
aws ecr get-login-password | docker login --username AWS --password-stdin ***adres rejestru***
aws ecr get-login-password | docker login --username AWS --password-stdin ***adres rejestru***
aws ecr get-login-password | docker login --username AWS --password-stdin ***adres rejestru***
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker push ***adres uri repozytorium***
docker push ***adres uri repozytorium***
docker push ***adres uri repozytorium***

Czyszczenie

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cdk destroy
cdk destroy
cdk destroy

Szafrański Michał
Jako Architekt IT, nie tylko projektuję systemy informatyczne, ale również moje życie jest zaprojektowane w taki sposób, aby działać jak dobrze zaprojektowany system - jestem zawsze gotowy na wszelkie wyzwania i problemy. Podobnie jak każdy system, który projektuję, staram się być skalowalny i elastyczny, a czasem trudno przewidzieć, kiedy potrzebna będzie aktualizacja. Często słyszę pytanie: "Kiedy zostanie wydany update twojego życia?" A ja odpowiadam: "Kiedyś, ale zanim to nastąpi, muszę zebrać więcej danych i przeprowadzić odpowiednie testy." Moje życie to nie tylko kodowanie i projektowanie, ale również ciągłe doskonalenie i uczenie się nowych technologii. Nieustannie próbuję wprowadzać ulepszenia, zarówno w moim życiu osobistym, jak i zawodowym. A jeśli coś nie działa, nie boję się eksperymentować i próbować różnych rozwiązań, aby znaleźć najlepsze rozwiązanie. Nie jestem tylko architektem IT - jestem również architektem swojego życia, zaprojektowanym w taki sposób, aby działał jak dobrze zaprojektowany system.

Leave a Reply Text

undefined