AWS CodeCommit
CI/CD Developer Associate DevOps Engineer Professional Solutions Architect Associate

AWS CodeCommit

AWS CodeCommit

W pelni zarzadzany hosting prywatnych repozytoriów Git w AWS. Pull requesty, branch policies, szyfrowanie KMS i integracja z calym ekosystemem AWS CI/CD.

AWS CodeCommit to w pelni zarzadzany serwis hostingu repozytoriów Git. Dziala jak prywatny GitHub/GitLab, ale w pelni zintegrowany z ekosystemem AWS - autoryzacja przez IAM, szyfrowanie danych przez KMS, triggery do Lambda i SNS, oraz natywna integracja z CodeBuild i CodePipeline.

Wazne: AWS oglosil, ze CodeCommit jest w fazie wygaszania (phase out) - od lipca 2024 nowi klienci nie moga tworzyc repozytoriów. Istniejacy uzytkownicy moga nadal korzystac z serwisu, ale AWS zaleca migracje do alternatyw (np. GitHub, GitLab, Bitbucket). Warto znac CodeCommit na potrzeby egzaminów certyfikacyjnych i istniejacych wdrozen.

Czy wiesz, ze...

CodeCommit automatycznie szyfruje wszystkie dane at rest za pomoca AWS KMS - nie musisz niczego konfigurowac. Kazdy push i pull jest logowany w CloudTrail, co daje pelny audyt kto, kiedy i co zmienil w repozytorium. To sprawialo, ze CodeCommit byl popularny w branzy finansowej i healthcare, gdzie compliance jest kluczowy.

Pro Tip

Jesli uzywasz CodeCommit, skonfiguruj credential helper AWS CLI zamiast statycznych Git credentials. Komenda: git config --global credential.helper "!aws codecommit credential-helper $@" pozwala na bezproblemowa autoryzacje przez IAM. Przy migracji z CodeCommit rozważ GitHub z OIDC federation do AWS - zachowasz bezpieczna integracje z pipeline CI/CD.

AWS CodeCommit to w pelni zarzadzany serwis repozytoriow Git, ktory eliminuje potrzebe hostowania wlasnej infrastruktury. Ponizej przedstawiamy caly proces pracy z repozytorium - od utworzenia po automatyzacje.

1

Utworzenie repozytorium

Tworzysz repozytorium przez konsole AWS, CLI lub CloudFormation. Repozytorium jest automatycznie szyfrowane (AWS KMS), replokowane w wielu AZ w danym regionie i nie ma limitu na rozmiar. Mozesz dodac opis, tagi i domyslna galaz (zazwyczaj main). Kazde repozytorium otrzymuje unikalne URL-e HTTPS i SSH.

2

Klonowanie repozytorium (HTTPS/SSH)

CodeCommit wspiera dwa protokoly: HTTPS z credential helperem AWS CLI (zalecane - uzywa IAM) oraz SSH z kluczami publicznymi uploadowanymi do IAM User. Przy HTTPS nie musisz zarzadzac kluczami SSH - AWS CLI automatycznie podpisuje requesty Twoimi credentialami IAM. Klonujesz standardowym poleceniem git clone z URL-em z konsoli.

3

Pushowanie kodu

Praca z CodeCommit wyglada identycznie jak z kazdym innym repozytorium Git - git add, git commit, git push. CodeCommit obsluguje wszystkie standardowe operacje Git wlacznie z LFS (Large File Storage) dla duzych plikow binarnych. Maksymalny rozmiar pojedynczego pliku to 2 GB, a pojedynczego pusha (batch) to 6 MB przez HTTPS.

4

Tworzenie galezi (branching)

Galerie tworzysz standardowym git checkout -b lub przez konsole AWS. CodeCommit nie narzuca modelu branchowania - mozesz uzywac GitFlow, trunk-based development lub dowolnego innego. W konsoli widzisz porownanie galezi, historii commitow i roznic miedzy branchami. Galerie mozesz chronic regalami branch protection.

5

Pull Requesty i code review

Pull Requesty (PR) w CodeCommit wspieraja komentarze liniowe, approval rules (wymagana liczba approverow z okreslonej grupy), automatyczne sprawdzanie konfliktow i merge strategies (fast-forward, squash, three-way). Approval rules moga wymagac np. 2 approverow z zespolu backend i 1 z zespolu security. Po spelnieniu regul PR mozna zmergowac.

6

Triggery i notyfikacje

CodeCommit moze wywolywasc triggery przy kazdym pushu - wysylajac eventy do SNS lub uruchamiajac Lambde. Notyfikacje (przez AWS CodeStar Notifications) informuja o nowych PR, komentarzach i mergeach przez SNS, Slack lub Chatbot. Najczesciej trigger na push uruchamia CodePipeline, ktory automatycznie buduje i deployuje kod.

Praktyczne wskazowki z pracy z CodeCommit w srodowiskach produkcyjnych - od konfiguracji dostepu po integracje z innymi serwisami AWS.

Dostep oparty na IAM - bez oddzielnych credentiali

CodeCommit nie wymaga tworzenia oddzielnych nazw uzytkownikow i hasel jak GitHub/GitLab. Uzywasz IAM policies do kontroli dostepu - mozesz ograniczyc dostep do konkretnych repozytoriow, galezi (np. blokada pusha do main), a nawet sciezek plikow. Credential helper AWS CLI automatycznie podpisuje requesty Git Twoimi IAM credentialami.

Poczatkujacy

Git credential helper - konfiguracja

Skonfiguruj git config --global credential.helper "!aws codecommit credential-helper $@" aby AWS CLI automatycznie generowal tymczasowe tokeny dla HTTPS. Dziala to z profilami AWS (--profile), MFA i assumed roles. Dla CI/CD uzywaj IAM Role zamiast dlugoterminowych access keys - CodeBuild ma natywna integracje z CodeCommit.

Poczatkujacy

Approval rules na Pull Requestach

Approval rule templates pozwalaja zdefiniowac wymagania raz i stosowac automatycznie do kazdego nowego PR. Ustawisz np. regule: "2 approverow z grupy IAM senior-devs" lub "1 approval z zespolu security dla zmian w /infra/**". Templates mozesz przypisac do wybranych repozytoriow lub do wszystkich w koncie. To kluczowe dla compliance i audytu.

Zaawansowany

Integracja z Amazon CodeGuru Reviewer

CodeGuru Reviewer automatycznie analizuje kod przy kazdym Pull Requescie - wykrywa bugi, problemy z bezpieczenstwem (np. hardcoded credentials, SQL injection) i sugeruje best practices. Integracja to jedno klikniecie w konsoli. CodeGuru wspiera Javex, Python i JavaScript. Koszt to ok. $0.75 za 100 linii kodu - oplacalny przy duzych zespolach.

Zaawansowany

Migracja z GitHub/GitLab

Migracja to standardowy git push --mirror do nowego remote. CodeCommit obsluguje wszystkie standardowe funkcje Git, wiec historia commitow, branche i tagi sa zachowane. Pamietaj o migracji webhookow na triggery CodeCommit oraz CI/CD pipeline na CodePipeline. Mozesz tez utrzymywac mirror - push do obu repozytoriow jednoczesnie.

Poczatkujacy

Dostep cross-account

Dla organizacji z wieloma kontami AWS skonfiguruj cross-account access przez IAM roles. Developer w koncie A assume role w koncie B, ktory ma uprawnienia do repozytorium. Uzyj resource-based policy na repozytorium lub AWS Organizations SCP. To pozwala na centralne repozytorium kodu dostepne z wielu kont bez duplikacji.

Zaawansowany

Screenshoty z AWS Console

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

Do czego sluzy AWS CodeCommit?

01

Prywatne repozytoria kodu

Hosting kodu zródlowego z pelna kontrola dostepu przez IAM policies. Brak limitu na wielkosc repozytorium.

02

Pipeline CI/CD w AWS

Natywne zródlo kodu dla CodePipeline i CodeBuild. Push do repozytorium automatycznie triggeruje pipeline.

03

Code Review z Pull Requests

Pull requesty z komentarzami, approval rules i automatyczna walidacja przed merge.

04

Compliance i audyt

Szyfrowanie at rest (KMS), CloudTrail logging kazdej operacji Git, cross-account access przez IAM roles.

Co musisz wiedziec?

Repository

Repozytorium Git hostowane w AWS. Obsluguje HTTPS i SSH. Brak limitu na wielkosc repo, pojedynczy plik do 2 GB.

Pull Request

Mechanizm code review. Umozliwia komentowanie kodu, dyskusje i wymaga approvals przed merge do docelowej galezi.

Approval Rule Template

Szablon regul zatwierdzania PR - np. wymóg minimum 2 approvals, wymagani konkretni reviewerzy lub czlonkowie okreslonej grupy IAM.

Trigger

Automatyczna reakcja na zdarzenia w repozytorium (push, merge, PR). Moze wywolac funkcje Lambda lub wyslac powiadomienie SNS.

Notification Rule

Regula powiadomien o zdarzeniach w repo (nowy PR, komentarz, merge). Wysyla powiadomienia przez SNS lub AWS Chatbot (Slack).

Architektura: CI/CD Pipeline z CodeCommit

Typowy pipeline CI/CD oparty na CodeCommit jako zrodle kodu. Developer pushuje kod, co automatycznie uruchamia build, testy i deployment. Notyfikacje informuja zespol o statusie na kazdym etapie.

Developer git push do repozytorium CodeCommit
git push
AWS CodeCommit
AWS CodeCommit Zarzadzane repozytorium Git, trigger na push uruchamia pipeline
Trigger
AWS CodePipeline
AWS CodePipeline Orkiestracja pipeline - source, build, test, deploy stages
Build stage
AWS CodeBuild
AWS CodeBuild Kompilacja kodu, uruchomienie testow, budowanie artefaktow
Notify
Amazon SNS
Amazon SNS Notyfikacje o statusie pipeline do Slacka, emaila lub Chatbota
Skonfiguruj branch-based pipeline - osobny pipeline dla main (produkcja) i develop (staging), aby oddzielic sciezki deploymentu.
Uzyj CodeCommit triggers z Lambda do walidacji commitow przed mergerem - np. sprawdzenie formatu commit message lub blokada plikow z secrets.
Wlacz AWS CloudTrail dla CodeCommit, aby miec pelny audit log: kto wykonal push, kto zatwierdził PR, kto zmergeowal galaz.

Ile kosztuje AWS CodeCommit?

Free Tier (zawsze)

5 aktywnych uzytkowników miesiecznie z nieograniczona liczba repozytoriów. Obejmuje 50 GB storage i 10 000 requestów Git.

5 uzytkowników + nieograniczone repozytoria = $0

Dodatkowi uzytkownicy

Kazdy dodatkowy aktywny uzytkownik ponad 5 w danym miesiacu.

$1.00 za dodatkowego uzytkownika/miesiac

Dodatkowy storage/requesty

Oplata za przekroczenie limitów Free Tier na storage i requesty Git.

$0.06/GB za storage, $0.001 za request Git ponad limit

Przyklady AWS CLI

Utwórz repozytorium

Tworzy nowe repozytorium Git w CodeCommit

aws codecommit create-repository \
 --repository-name moja-aplikacja \
 --repository-description "Repozytorium backendu aplikacji" \
 --tags Team=Backend,Environment=Production

Utwórz pull request

Tworzy PR z galezi feature do main

aws codecommit create-pull-request \
 --title "Dodaj modul platnosci" \
 --description "Implementacja integracji z Stripe" \
 --targets repositoryName=moja-aplikacja,sourceReference=feature/payments,destinationReference=main

Utwórz approval rule

Dodaje regule wymagajaca 2 approvals na PR

aws codecommit create-pull-request-approval-rule \
 --pull-request-id 42 \
 --approval-rule-name "Wymaga-2-approvals" \
 --approval-rule-content '{"Version":"2018-11-08","Statements":[{"Type":"Approvers","NumberOfApprovalsNeeded":2}]}'

Lista repozytoriów

Wyswietla wszystkie repozytoria na koncie

aws codecommit list-repositories \
 --sort-by repositoryName \
 --order ascending

Quiz: AWS CodeCommit

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

Twoj wynik: 0 / 3

1. Ile aktywnych uzytkowników obejmuje Free Tier CodeCommit?

2. Jaki jest obecny status serwisu CodeCommit?

3. Jakie metody dostepu do repozytorium obsluguje CodeCommit?

Chcesz poznac AWS CodeCommit w praktyce?

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

Zacznij darmowy kurs Wszystkie serwisy