AWS 80

AWS CodePipeline

AWS CodePipeline 빠르고 안정적인 업데이트를 위한 파이프라인 자동화 워크플로우 모델링 AWS 서비스 및 3rd Party Tool 조합으로 커스텀하여 CodePipeline 구성 가능 파이프라인 자동화 및 시각적인 모니터링 가능 구성 요소 및 동작 순서 구분 내용 파이프라인(Pipeline) - 파이프라인 생성 시 각 파이프라인당 S3 버킷에 폴더 생성 - 파이프라인에서 배포 플세스가 실행되면 각 폴더에 '아티팩트' 저장 - AWS 계정당 리전별 300개의 파이프라인 생성 가능 단계(Stage) - 파이프라인의 워크플로우를 구분하는 단위 - 각 '스테이지'는 고유한 이름을 가지며 '작업'을 포함함 - 이전 '스테이지'가 수행 완료되어야만 다음 '스테이지'로 넘어갈 수 있음 - 스테이지는 하나..

AWS/Service 2023.12.17

AWS CodeDeploy

AWS CodeDeploy 파이프라인 단계 4. CodeBuild instance는 CodeCommit에 접근해서 소스코드 가져와서 빌드와 유닛테스트 진행. 결과물을 S3에 업로드 5. CodeDeploy는 S3에 업로드된 아티팩트를 가져오고 배포에 필요한 애플리케이션 사양파일(appspec.yml) 생성 6. CodeDeploy는 name 태그를 기반으로 배포 그룹(CodeDeploy-agent가 설치된 EC2들 or Autoscaling group)에게 아티팩트를 배포함. 구성 요소 및 동작 순서 구분 내용 애플리케이션 배포할 아티팩트(application)를 식별하는 이름 컴퓨팅 플랫폼 CodeDeploy가 애플리케이션을 배포하는 대상 플랫폼. 종류에는 EC2, Lambda, ECS가 있다. 애플리..

AWS/Service 2023.12.16

AWS CodeBuild

AWS CodeBuild 코드에 대한 빌드와 테스트 파이프라인 단계 1. 사용자가 소스 푸시(CodeCommit) 2. 트리거(소스 푸시) 걸려서 CodePipeline이 CodeBuild에게 빌드 시작 요청 (Codebuild) 3. CodeBuild가 빌드된 파일(buildspec.yml) 즉, 아티팩트를 S3 버킷(혹은 아티팩트 저장소)에 업로드 4. CodeBuild instance는 CodeCommit에 접근해서 소스코드 가져와서 빌드와 유닛테스트 진행. 결과물을 S3에 업로드 구성 요소 및 동작 순서 단계 내용 Source Control - CodeCommit, Github, S3 등의 소스 관리 툴에서 소스코드 불러오기 Build Project - Source Control에서 코드를 가져와..

AWS/Service 2023.12.16

EBS 인스턴스 종료시 비활성화 해제

EBS를 생성할 때, 인스턴스 종료시 비활성화를 yes로 해두었다면 CLI를 통해 No로 설정 수정이 가능하다. 굳이 해당 인스턴스에 접속하지 않아도 설정이 가능하다. 필자는 Cloudshell에서 진행하였다. 1. mapping.json 파일 생성 후 아래 내용 추가 [ { "DeviceName": "/dev/sdg", "Ebs": { "DeleteOnTermination": false } } ] 2. Access Key 및 Region 정보 설정 Access Key 발급을 위해 IAM 사용자를 생성한다. IAM 사용자 > 보안자격 증명 > 액세스 키 생성 AWS 컴퓨팅 서비스에서 실행되는 애플리케이션을 클릭하고 액세스 키를 발급받는다. $ aws configure > 발급받은 User의 Access ..

AWS/Project 2023.12.10

여러 Account 및 VPC 간 LB 통신

목표 cross account 환경에서의 nlb → alb → nlb 가능 작성중 NLB 인터넷 경계용 보안그룹 80 open 리스너의 프로토콜:포트 TCP:80 타겟그룹 ALB 지정 타겟그룹의 프로토콜:포트 TCP:80 ALB 인터넷 경계용 보안그룹 리스너의 프로토콜:포트 HTTPS:80 타겟그룹 NLB 지정 (NLB의 eni를 지정) 타겟그룹의 프로토콜:포트 HTTP:80 NLB 내부용 보안그룹 80 open 리스너의 프로토콜:포트 TCP:80 타겟그룹 ALB 지정 타겟그룹의 프로토콜:포트 TCP:80 SSL 적용 url창에 바로 NLB 도메인을 입력할 경우, ACM 적용 X Route53 퍼블릭 호스팅 영역에서 A 레코드로 NLB를 추가하여, 해당 서브 도메인을 url창에 입력해야 ACM 적용 O ..

AWS/Project 2023.12.10

Route53 Resolver

Route53 Resolver 구성 요소 항목 내용 Resolver 도메인 이름과 IP 주소를 상호 변환하는 기능. 라운드로빈 호스트명 하나에 IP를 여러 개 할당하고, IP 반환을 요청하면 제일 앞쪽 IP부터 연결하려는 특성을 이용하여, 접속할 때마다 IP주소를 반환하는 순서를 바꾸는 방식. 트래픽 흐름 서버의 부하와 가장 효율이 좋은 서버의 IP 주소를 반환하도록 조정 호스트 영역 DNS의 설정 단위로, 도메인 전체 혹은 서브도메인을 칭함 레코드 도메인 및 서브도메인에 설정하는 항목 쿼리 DNS에 대한 요청 사용하는상황 AWS Route53과 온프레미스의 프라이빗 도메인을 공유하고자 할 경우 Account A의 VPC와 Account B의 VPC는 Transit gateway로 연결되어 있으며, 프라..

AWS/Service 2023.12.02

S3 업로드 방식 및 웹 사이트용 주의사항

S3 업로드 방식 API와 SDK 사용 멀티 파트 업로드 AWS Transfer for SFTP AWS DataSync (온프레미스와 연결 업로드이므로 다루지 않겠음) API와 SDK 사용 서드 파티 도구를 활용해 파일을 업로드할 수 있다. IAM 사용자에게 액세스 키와 보안 액세스 키를 발행하여 사용하고 싶은 도구에 설정한다. 멀티 파트 업로드 객체를 여러 개 나누어 세트 하나로 업로드할 수 있다. 관리 콘솔, CLI는 큰 파일을 업로드할 때 멀티 파트 업로드로 전환된다. AWS Transfer for SFTP SFTP를 사용하여 파일을 전송할 수 있는 서비스다. SFTP 도구가 아닌 SFTP 서버를 제공하는 서비스이다. SFTP 서버 엔드포인트를 설정하면 서드 파티의 SFTP 도구를 사용할 수도 있다..

AWS/Service 2023.12.02

/etc/fstab(efs 마운트) 오류로 인스턴스 접속 불가

Problem /etc/fstab 파일 오류 /etc/fstab 파일 작성할 때, 기입해야 할 값을 빠뜨리거나 오타 기타 등등 이슈로 인해 재부팅 시, 오류난 /etc/fstab을 계속 실행 시도하면서 서버가 실행이 되지 않는다. Error Message Dependency failed for /efsdir Failed to mount efsdir.mount - /efsdir. Solution 오류난 ec2의 루트 볼륨(volume1)을 뗀다. (ec2가 중지되면 루트볼륨 떼기 가능) 새로운 ec2를 생성하여 보조 볼륨으로 오류난 루트 볼륨(volume1)을 붙인다. 새로운 ec2에 접속하여 /etc/fstab 파일을 올바르게 수정한다. 원리 volume은 서버와 마운트하면 기존 자기자신이 가진 파일시스..

AWS/TroubleShooting 2023.12.02

여러 Account 및 VPC 간 Route53 프라이빗 호스팅 영역 공유

상황 A Account: 프라이빗 호스팅 영역 존재 B Account: VPC 존재 필자는 각 계정마다 존재하는 CloudShell을 활용하여 설정했다. A Account 접속 aws route53 create-vpc-association-authorization \ --hosted-zone-id \ --vpc VPCRegion=ap-northeast-2,VPCId= \ --region ap-northeast-2 B Account 접속 aws route53 associate-vpc-with-hosted-zone \ --hosted-zone-id \ --vpc VPCRegion=ap-northeast-2,VPCId= \ --region ap-northeast-2 CLI로만 설정 가능하다. (AWS는 자주 ..

AWS/Project 2023.12.02