AWS 77

[CloudWatch] 필터 패턴을 활용한 CloudTrail 작업에 대한 경보 설정

CloudTrail 구성 변경에 대한 로그 지표 필터 및 경보가 설정되어 있는지 확인{ ($.eventSource = cloudtrail.amazonaws.com) && (($.eventName = CreateTrail) || ($.eventName = UpdateTrail) || ($.eventName = DeleteTrail) || ($.eventName = StartLogging) || ($.eventName = StopLogging)) }다음과 같은 지표 필터 패턴은 CloudTrail 기준이다. CloudTrailCloudTrail에 나와있는 eventName, eventTime, userName, eventSource, resourceType, resourceName 를 참조하여작성한 필터 패..

여러 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

AutoScaling 중 Scale-out 발생 시 구 버전 이미지(CI/CD) 배포

참고 사이트https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/integrations-aws-auto-scaling.html 배포 중 이벤트 확장  Amazon EC2 Autoscaling Group 와 CodeDeploy가 연동된 상황이다.CodeDeploy 배포가 진행되는 동안 Auto Scaling Scale-out 이벤트가 발생되면 해당 인스턴스는 최신 개정판이 아닌, 애플리케이션의 이전 개정판을 받는다.해당 인스턴스를 최신 상태로 만들기 위해 CodeDeploy는 자동으로 후속 배포를 시작하여 오래된 인스턴스를 업데이트해야 한다.  오래된 인스턴스에 대한 자동 업데이트 1. CodeDeploy API2. AWS CLI방식은 총 2가지가 ..

AWS/TroubleShooting 2024.07.02

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

GWLB(Gateway Loadbalancer)

GWLB의 로드밸런싱 프로세스 ① 인터넷 클라이언트가 92.75.20.100으로 FTP 접속한다.② IGW에 유입된 트래픽은 라우팅 테이블의 안내를 Endpoint로 이동한다.③ 엔드포인트에 유입된 트래픽은 Endpoint Service를 통과해 Appliance VPC의 GWLB로 액세스 한다.④ 2개의 어플라이언스 중 하나(13.246.50.101)를 채택한다. GWLB는 클라이언트가 보낸 트래픽을 GENEVE 헤더로 캡슐화해 13.246.50.101로 전달한다. 전송 시 UDP 6081 포트를 사용한다.⑤ 가상 어플라이언스에 도착한 GENEVE 패킷은 역캡슐화를 거쳐 원본 패킷으로 변환된다.통과된 패킷은 다시 GENEVE 헤더로 캡슐화되어 GWLB로 전달된다.⑥ GWLB는 전달된 트래픽의 GENEV..

AWS/Service 2024.06.24