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.
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.
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.
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.
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.
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.
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.
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.
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.
PoczatkujacyGit 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.
PoczatkujacyApproval 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.
ZaawansowanyIntegracja 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.
ZaawansowanyMigracja 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.
PoczatkujacyDostep 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.
ZaawansowanyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS CodeCommit bezposrednio w konsoli AWS.
Do czego sluzy AWS CodeCommit?
Prywatne repozytoria kodu
Hosting kodu zródlowego z pelna kontrola dostepu przez IAM policies. Brak limitu na wielkosc repozytorium.
Pipeline CI/CD w AWS
Natywne zródlo kodu dla CodePipeline i CodeBuild. Push do repozytorium automatycznie triggeruje pipeline.
Code Review z Pull Requests
Pull requesty z komentarzami, approval rules i automatyczna walidacja przed merge.
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.
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.
1. Ile aktywnych uzytkowników obejmuje Free Tier CodeCommit?
2. Jaki jest obecny status serwisu CodeCommit?
3. Jakie metody dostepu do repozytorium obsluguje CodeCommit?
Czesto uzywane razem z AWS CodeCommit
Chcesz poznac AWS CodeCommit w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS CodeCommit krok po kroku. Teoria + praktyka od zera.