GitHub Actions와 OIDC, 액세스 키 없이 AWS에 배포하는 원리
GitHub Actions에서 OIDC를 쓰면 저장소에 AWS 액세스 키를 두지 않고도 배포할 수 있다. 대신 AWS가 어떤 저장소의 어떤 작업을 믿을지 역할의 신뢰 조건에 적어야 하고, 옛 키는 따로 찾아 지워야 한다.
배포에 관한 7개의 기록을 모았습니다.
GitHub Actions에서 OIDC를 쓰면 저장소에 AWS 액세스 키를 두지 않고도 배포할 수 있다. 대신 AWS가 어떤 저장소의 어떤 작업을 믿을지 역할의 신뢰 조건에 적어야 하고, 옛 키는 따로 찾아 지워야 한다.
ECS 서비스는 원하는 개수의 태스크를 계속 띄워 두고, 새 버전으로 바꿀 때는 최소 정상 비율과 최대 비율 안에서 조금씩 교체한다. 기본값은 새 태스크를 먼저 띄우는 방식이라 남는 자원이 없으면 배포가 멈춘다.
웹은 이전 파일로 되돌리면 되지만, 사용자 기기에 설치된 앱은 거둬들일 수 없다. 스토어 심사와 단계적 출시가 어떻게 동작하는지, 그래서 어떤 값을 앱 대신 서버에 두는지 정리한다.
컨테이너는 프로그램과 실행에 필요한 파일을 이미지로 묶어 어느 서버에서나 같은 조합으로 실행한다. 이미지와 컨테이너의 차이, 가상 머신과 다른 점, 설정과 데이터를 이미지 밖에 두는 이유를 기초부터 설명한다.
코드를 올리면 빌드와 테스트가 자동으로 돌고, 통과한 결과만 운영 서버로 나간다. CI와 CD가 각각 무엇을 가리키는지, 산출물을 왜 한 번만 만드는지, 검사에 걸리면 무엇이 멈추는지 정리한다.
프레임워크 문서에 나오는 SSG는 페이지의 HTML을 방문 전에 빌드로 만들어 두는 방식이다. 요청 때 조립하는 방식과 무엇이 다른지, 어떤 화면에 맞고 어디서 실패하는지 설명한다.
package.json에는 허용할 버전 범위만 적혀 있어서 설치할 때마다 다른 버전이 골라질 수 있다. lockfile이 무엇을 기록하는지, 배포에서는 왜 npm install 대신 npm ci를 쓰는지 설명한다.