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.
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.
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.
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.
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.
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.
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.
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.
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.
ZaawansowanyCross-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.
ZaawansowanyGitHub 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).
PoczatkujacyManual 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.
PoczatkujacySzyfrowanie 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.
ZaawansowanyPipeline 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.
ZaawansowanyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS CodePipeline bezposrednio w konsoli AWS.
Do czego sluzy AWS CodePipeline?
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.
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.
Infrastructure as Code deployment
Pipeline wdraża zmiany CloudFormation: Source (git) ➔ Change Set ➔ Manual Approval ➔ Execute Change Set. Bezpieczny deployment infrastruktury z review.
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.
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.
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?
Czesto uzywane razem z AWS CodePipeline
Czytaj więcej o AWS CodePipeline
Chcesz poznac AWS CodePipeline w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS CodePipeline krok po kroku. Teoria + praktyka od zera.