AWS CodePipeline
CI/CD Cloud Practitioner Developer Associate

AWS CodePipeline

AWS CodePipeline

W pełni zarządzany serwis CI/CD. Automatyzuj budowanie, testowanie i wdrażanie kodu przy każdym commit. Od GitHub do produkcji w minuty.

AWS CodePipeline to w pełni zarządzany serwis Continuous Integration / Continuous Delivery (CI/CD), który automatyzuje proces budowania, testowania i wdrażania aplikacji. Definiujesz pipeline jako serię etapów (stages) - np. Source (pobierz kod z GitHub), Build (zbuduj z CodeBuild), Deploy (wdróż na ECS/Lambda/EC2) - i CodePipeline wykonuje je automatycznie przy każdym commit.

CodePipeline integruje się natywnie z GitHub, CodeCommit, CodeBuild, CodeDeploy, CloudFormation, ECS, Lambda i Elastic Beanstalk. Możesz też dodać manual approval - np. przed wdrożeniem na produkcję ktoś musi kliknąć "Approve". To pozwala budować pipeline od prostego push-to-deploy do zaawansowanych procesów z testami, code review i staged rollout.

Czy wiesz, ze...

CodePipeline obsługuje cross-region deployments - możesz z jednego pipeline wdrożyć aplikację do wielu regionów AWS jednocześnie. Pierwszy pipeline jest darmowy - na zawsze.

Pro Tip

Konfiguruj pipeline jako kod używając CloudFormation lub CDK zamiast klikania w konsoli. Możesz wersjonować konfigurację CI/CD w git, odtwarzać pipeline na nowym koncie w minuty i stosować code review na zmiany w procesie deploy.

CodePipeline to w pelni zarzadzany serwis CI/CD, ktory automatyzuje caly proces dostarczania oprogramowania - od pobrania kodu zrodlowego po wdrozenie na produkcje. Pipeline sklada sie z etapow (stages), a kazdy etap zawiera akcje (actions), ktore wykonuja konkretne operacje. CodePipeline orkiestruje przeplyw artefaktow miedzy etapami, zapewniajac powtarzalnosc i audytowalnosc kazdego wdrozenia.

1

Source Stage - zrodlo kodu

Pierwszy etap pipeline pobiera kod zrodlowy z repozytorium. Wspierane zrodla to GitHub (przez GitHub App connection - zalecane zamiast OAuth), CodeCommit, Bitbucket Cloud, S3 bucket i ECR (dla obrazow kontenerowych). Kazda zmiana w repozytorium (push, merge) automatycznie triggeruje pipeline. Dla GitHub uzywaj CodeStar Connections - daje pelna kontrole nad webhookami i nie wymaga osobistego tokena.

2

Build Stage - budowanie artefaktow

Etap budowania kompiluje kod, uruchamia testy jednostkowe i generuje artefakty wdrozeniowe. CodeBuild to natywna integracja - definiujesz buildspec.yml z komendami build/test. Artefakty (np. ZIP z aplikacja, obraz Docker, szablon CloudFormation) sa przechowywane w S3 Artifact Store i przekazywane do kolejnych etapow. Mozesz tez uzywac Jenkins lub TeamCity jako providerow build.

3

Test Stage - testy integracyjne i bezpieczenstwa

Osobny etap testowy uruchamia testy integracyjne, end-to-end, testy bezpieczenstwa (SAST/DAST) i skany podatnosci. Mozesz uzyc CodeBuild z osobnym buildspec-test.yml, zewnetrznych narzedzi (np. Selenium, OWASP ZAP) lub serwisow trzecich (np. Snyk, SonarQube). Wiele projektow lacze Build i Test w jednym etapie, ale rozdzielenie daje lepszy wglad w to, co dokladnie zawodzi.

4

Deploy Stage - wdrozenie aplikacji

Etap deploy wdraza artefakty na docelowe srodowisko. Wspierane providery: CodeDeploy (EC2, Lambda, ECS z blue/green), CloudFormation (infrastruktura jako kod), ECS (bezposredni deploy taskow), S3 (pliki statyczne), Elastic Beanstalk, Service Catalog. Dla ECS zalecany jest blue/green deployment przez CodeDeploy - daje automatyczny rollback i kontrole ruchu. Dla Lambda uzywaj CodeDeploy z aliasami i traffic shifting.

5

Manual Approval - kontrola wdrozen produkcyjnych

Akcja Manual Approval wstrzymuje pipeline i czeka na zatwierdzenie czlowieka. Kluczowa dla wdrozen produkcyjnych - pozwala przejrzec wyniki testow, zmiany infrastruktury (Change Set) i metryki przed kontynuacja. Mozesz skonfigurowac SNS notification, zeby powiadomic zespol o oczekujacym approval. Approval ma konfigurowalny timeout (domyslnie 7 dni). Wymagaj approval od innej osoby niz autor zmian.

6

Notyfikacje i monitoring pipeline

CodePipeline emituje zdarzenia do EventBridge przy kazdej zmianie stanu pipeline, etapu i akcji. Skonfiguruj powiadomienia SNS (email, Slack przez Chatbot) o niepowodzeniach pipeline i oczekujacych approval. CloudWatch Metrics dostarcza metryki: czas wykonania, wskaznik sukcesu, czas oczekiwania na approval. Ustaw alarm na metryki failed pipelines - szybka reakcja na zlamany pipeline jest kluczowa.

Sprawdzone praktyki budowania pipeline CI/CD z CodePipeline - od rownoleglych akcji po strategie multi-region deployment.

Parallel Actions - przyspieszanie pipeline

Kazdy etap moze zawierac wiele akcji dzialajacych rownolegle (ten sam runOrder). Wykorzystaj to do rownoleglego uruchamiania testow jednostkowych, integracyjnych i bezpieczenstwa w jednym etapie. Rownolegle mozesz tez deployowac na wiele regionow lub srodowisk jednoczesnie. Akcje z roznym runOrder wykonuja sie sekwencyjnie w ramach etapu. Optymalizacja rownoleglych akcji potrafi skrocic pipeline z 30 do 10 minut.

Zaawansowany

Cross-Region Deployment

CodePipeline natywnie wspiera akcje w roznych regionach AWS. Pipeline zdefiniowany w eu-west-1 moze deployowac do us-east-1 i ap-southeast-1 rownolegle. Artefakty sa automatycznie replikowane do S3 bucket w docelowym regionie. Kazdy region wymaga osobnego Artifact Store (S3 bucket). Uzywaj tego do wdrazan globalnych aplikacji z jednego centralnego pipeline zamiast duplikowania pipeline per region.

Zaawansowany

GitHub Actions vs CodePipeline - kiedy co wybrac

GitHub Actions jest lepszy dla projektow open-source, prostych CI/CD i ekosystemu GitHub. CodePipeline wygrywa w integracji z serwisami AWS (CodeDeploy blue/green, CloudFormation Change Sets, ECS deploy), srodowiskach multi-account, compliance (CloudTrail audit) i gdy pipeline musi reagowac na zdarzenia AWS (nie tylko git push). Czeste podejscie hybrydowe: GitHub Actions do CI (build+test), CodePipeline do CD (deploy na AWS).

Poczatkujacy

Manual Approval dla produkcji - obowiazkowy krok

Nigdy nie wdrazaj automatycznie na produkcje bez Manual Approval. Skonfiguruj approval z: URL do Change Seta lub diff zmian (CustomData), SNS topic powiadamiajacy kana Slack/Teams, wymaganiem approval od osoby innej niz autor commita. W pipeline wieloetapowym (dev -> staging -> prod) automatic deploy na dev/staging, manual approval tylko przed prod. Approval timeout ustaw na 24h - dluze blokuje pipeline.

Poczatkujacy

Szyfrowanie artefaktow - KMS Customer Managed Key

Domyslnie CodePipeline szyfruje artefakty w S3 kluczem AWS managed (aws/s3). Dla srodowisk wymagajacych compliance (PCI-DSS, HIPAA) uzyj Customer Managed KMS Key. Pozwala to na: kontrole dostepu do artefaktow przez KMS key policy, audyt uzycia klucza w CloudTrail, rotacje kluczy. W pipeline cross-account klucz KMS musi byc wspoldzielony miedzy kontami przez key policy.

Zaawansowany

Pipeline as Code - CloudFormation lub CDK

Definiuj pipeline w CloudFormation lub CDK zamiast recznego klikania w konsoli. CDK Pipelines (construct library) to najwygodniejszy sposob - pipeline, ktory sam siebie aktualizuje (self-mutating pipeline). Zmiana w kodzie pipeline automatycznie aktualizuje pipeline przed uruchomieniem dalszych etapow. Przechowuj definicje pipeline w tym samym repozytorium co kod aplikacji. To zapewnia wersjonowanie, code review i powtarzalnosc.

Zaawansowany

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS CodePipeline bezposrednio w konsoli AWS.

Do czego sluzy AWS CodePipeline?

01

Automatyczne wdrażanie na ECS/Fargate

Push do GitHub uruchamia pipeline: CodeBuild buduje Docker image, wrzuca do ECR, CodePipeline aktualizuje ECS service z nowym obrazem. Zero downtime z blue/green deployment.

02

Serverless CI/CD z Lambda

Pipeline buduje pakiet Lambda, uruchamia testy, wdraża nową wersję przez CloudFormation/SAM. Z aliasami Lambda możesz robić canary deployments.

03

Infrastructure as Code deployment

Pipeline wdraża zmiany CloudFormation: Source (git) ➔ Change Set ➔ Manual Approval ➔ Execute Change Set. Bezpieczny deployment infrastruktury z review.

04

Multi-environment deployment

Jeden pipeline wdraża kolejno: dev ➔ testy integracyjne ➔ staging ➔ manual approval ➔ produkcja. Każdy environment w osobnym stage.

Co musisz wiedziec?

Pipeline

Cały przepływ CI/CD - od pobrania kodu źródłowego do wdrożenia na produkcji. Składa się z etapów (Stages) wykonywanych sekwencyjnie.

Stage (Etap)

Krok w pipeline. Np. Source, Build, Deploy. Stages wykonują się sekwencyjnie. Każdy stage ma jedną lub więcej actions.

Action (Akcja)

Konkretna operacja w stage: pobranie z GitHub, build w CodeBuild, deploy na ECS, manual approval. Akcje w jednym stage mogą działać równolegle.

Artifact

Plik lub zbiór plików przekazywany między stages. Np. Source artifact = kod z git, Build artifact = zbudowana aplikacja. Przechowywane w S3.

Manual Approval

Ręczne zatwierdzenie między stages. Pipeline czeka aż ktoś kliknie Approve/Reject. Idealne przed wdrożeniem na produkcję.

Architektura: CI/CD Pipeline z CodePipeline

Kompletny pipeline CI/CD od commita w GitHub po wdrozenie na ECS. CodePipeline orkiestruje caly proces, integrujac CodeBuild do budowania, CodeDeploy do blue/green deployment i SNS do powiadomien o statusie.

GitHub
GitHub Repozytorium kodu, triggeruje pipeline na push/merge do main
webhook trigger
CodePipeline
CodePipeline Orkiestruje etapy: source, build, test, approval, deploy
build + test
CodeBuild
CodeBuild Kompilacja kodu, testy jednostkowe, budowanie obrazu Docker
artefakty OK
Manual Approval Zatwierdzenie wdrozenia produkcyjnego przez czlonka zespolu
approved
CodeDeploy
CodeDeploy Blue/green deployment z automatycznym rollbackiem
deploy
ECS / EC2
ECS / EC2 Docelowe srodowisko uruchomieniowe aplikacji
notyfikacje
SNS
SNS Powiadomienia o statusie pipeline (Slack, email)
Parallel Actions w etapach Build i Test przyspieszaja pipeline - testy jednostkowe i bezpieczenstwa dzialaja jednoczesnie.
Manual Approval przed produkcja zapewnia kontrole czlowieka nad kazdym wdrozeniem.
CodeDeploy blue/green pozwala na natychmiastowy rollback bez downtime w razie problemow.

Ile kosztuje AWS CodePipeline?

Per pipeline

Płacisz za liczbę aktywnych pipeline. Aktywny = istnieje >30 dni i wykonał się przynajmniej raz.

$1.00/miesiąc za aktywny pipeline

CodeBuild (build time)

Czas budowania rozliczany per minuta. Różne instancje build.

build.general1.small: $0.005/min

Artefakty (S3)

Pipeline przechowuje artefakty w S3 - standardowy cennik S3.

Kilka centów/miesiąc dla małych projektów

Free Tier

1 aktywny pipeline za darmo - permanentnie. CodeBuild: 100 minut/miesiąc gratis przez 12 miesięcy.

1 darmowy pipeline + 100 min build/mies.

Przyklady AWS CLI

Lista pipeline'ów

Wyświetl wszystkie pipeline na koncie

aws codepipeline list-pipelines \
 --query "pipelines[].{Name:name,Created:created,Updated:updated}" \
 --output table

Uruchom pipeline ręcznie

Wymusza wykonanie pipeline (np. po naprawieniu błędu)

aws codepipeline start-pipeline-execution \
 --name moja-aplikacja-pipeline

Sprawdź status pipeline

Szczegóły ostatniego wykonania

aws codepipeline get-pipeline-state \
 --name moja-aplikacja-pipeline \
 --query "stageStates[].{Stage:stageName,Status:latestExecution.status}" \
 --output table

Quiz: AWS CodePipeline

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 3

1. Ile kosztuje pierwszy pipeline w CodePipeline?

2. Co to jest Manual Approval w pipeline?

3. Z jakiego serwisu CodePipeline NIE może pobierać kodu?

Chcesz poznac AWS CodePipeline w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS CodePipeline krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy