AWS/Project 36

여러 Account 및 VPC에서 하나의 CodePipeline 공유

참고 자료: https://youtu.be/F5ZPD3Z53so?si=DOOXLH6oAMIRY1yp여러 Account 및 VPC에서 여러 CodePipeline 구성 Account 및 VPC 갯수가 많은 대규모 시스템일 경우, 환경별 CodePipeline을 구성하고 Sync하는 방식으로 진행하는 것이 옳을 것 같다.하지만 비용 및 공수가 환경별로 들며, 푸시를 환경별로 해야하는 부담이 있다. 여러 Account 및 VPC에서 하나의 CodePipeline 구성Account 및 VPC 갯수가 많지 않은 시스템을 구성하고 있을 경우,하나의 코드파이프라인을 환경별 계정에서 공유하는 방식을 권장한다. Cloud A 계정에 CodePipeline을 구성하고, 환경별 Account(Dev, Product) 및 V..

AWS/Project 2024.07.13

CodeSeries를 활용한 CI/CD - TroubleShooting

An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied참고 사이트: https://sarc.io/index.php/aws/1588-s3-bucket-sync S3 Access 권한이 없어서 뜨는 문제이다.AWS CodeBuild가 S3 Access 권한을 가지고 있어야 한다. CORS ERROR 프론트 버킷(website s3) : 정적 웹 호스팅용파일 버킷 (content s3) : 프론트 웹에 담긴 파일들 보관용 현재 상황파일 버킷(content s3)의 CORS 설정: 프론트 버킷(website s3)에서 파일 버킷(content s3) 접근 가능필요한 상황백엔드 코드에서 API 호출을 통해 파일..

AWS/Project 2024.07.01

CodeSeries를 활용한 CI/CD 구성 (Backend Pipeline)

구성도Backend CI/CD Pipeline CodeCommit에 Dev, Prod 브랜치 생성 (two-branch 전략) 환경별(Dev,Prod) 프론트, 백엔드 파이프라인 구성 (총 4개)  -- 이 페이지에서는 백엔드파이프라인만 설명!CodeBuild는 buildspec.yml(dev-buildspec.yml과 prd-buildspec.yml)을 통해 빌드 및 테스트 진행CodeDeploy는 appspec.yml을 통해 S3 내 아티팩트를 가져와 EC2 및 Auto Scaling Group에 배포Dev 환경은 EC2에 In-place 배포, Prod환경에서는 Auto Scaling Group에 Blue/Green 배포 전략 상이함* CodePipeline은 승인자의 허가에 의해 진행된다. 이 글..

AWS/Project 2024.06.28

CodeSeries를 활용한 CI/CD 구성 (Frontend Pipeline)

구성도Frontend CI/CD PipelineCodeCommit에 Dev, Prod 브랜치 생성 (two-branch 전략)dev 환경은 dev 브랜치에서 개발 및 검증 진행. 이후 master 브랜치에 병합하여 prod 환경 배포 예정 환경별(Dev,Prod) 프론트, 백엔드 파이프라인 구성 (총 4개)  -- 이 페이지에서는 프론트 파이프라인만 설명하겠음!!CodeBuild는 buildspec.yml(dev-buildspec.yml과 prd-buildspec.yml)을 통해 빌드 및 테스트 진행CodePipeline에서 배포 단계는 각 환경별 S3 버킷으로 정적 웹사이트 배포 * CodePipeline은 승인자의 허가에 의해 진행된다.  이 글 내용은 Frontend CI/CD Pipeline 구성..

AWS/Project 2024.06.28

[Terraform] TroubleShooting

MFA 정책으로 인한 배포 불가ErrorUnauthorizedOperation - SCP 권한 없음 Cause리소스에 접근하기 전 Organizations SCP 정책인 MFA 인증을 받아야 하나, sts 토큰 인증을 받지 못하여 발생하는 문제 Solve토큰을 받아 설정하는 방식이 2 가지 (수동과 자동) 있다.필자는 자동을 권고한다. 이 글은 자동으로 쉘 스크립트를 작성하여 토큰을 받아 설정하였다.물론 토큰은 12시간동안만 유효하다. (수동) aws cli로 sts session token 발급하여 환경 변수 또는 aws configure에 등록 후 provider에 경로 지정aws sts get-session-token --profile default --serial-number ${mfa_arn} ..

AWS/Project 2024.06.22

[CI/CD] TroubleShooting

CI/CD 구성 중 발생하는 모든 TroubleShooting 항목을 정리해둔 페이지이다.  Unable to locate package kubelet, kubeadm, kubectl 에러Error  Solve명령어 잘못 쳐서 저렇게 뜨는 경우가 있다. 복붙 말고 직접 다시 입력해도 안된다면... 아래처럼 시도echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.listcurl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Rele..

AWS/Project 2024.06.22

[CI/CD] 환경 구성 - ECR(Elastic Container Registry) 구성

k8s 노드들을 배포할 때 사용할 이미지 저장소인 ECR을 생성한다.생성 후 k8s 노드들과 ecr 연동도 진행한다. ECR 생성 프라이빗 레포지토리를 생성한다.    ECR에 접근할 IAM 역할 생성이제 EC2가 ECR에 접근하기 위한 IAM 권한을 생성한다.AmazonEC2ContainerRegistryFullAccess 정책이 AWS 관리형으로 이미 생성되어있어, 이걸 인스턴스 프로파일에 연결해주었다.만약 레파지토리를 Public으로 만들었을 경우, AmazonEC2ContainerRegistryPublicFullAccess 으로 추가해야한다!그럼 aws configure을 설정하지 않아도 ECR에 접근이 된다.     K8S(EC2)와 ECR 연동생성한 ECR에 들어가서 푸시 명령 보기를 누른다...

AWS/Project 2024.06.22