AWS Secrets & ECS SpringBoot 설정 (1): Secret 생성
·
AWS/ECS, ECR
이전 포스트에서는 로컬 환경에서 RDS를 SpringBoot 프로젝트와 연결하는 데 성공했다. 이번에는 AWS의 CodePipeline을 CI/CD구축을 해서 ECS로 배포에 성공한 SpringBoot 프로젝트의 tomcat에 이 RDS(postgreSQL)를 연결해 주도록 하자 이 포스트에서는 우선 Secret을 생성하는 방법에 대해서 소개한다. 1. AWS Secrets Manager를 사용하는 이유 1-1. Secrets Manager를 사용하는 이유 AWS Secrets Manager를 사용하는 이유는 보안 때문이다. 예를 들어, GitHub 같은 공개된 저장소에 데이터베이스 접속 정보나 API 키 같은 민감한 정보를 yml 파일에 그대로 넣어두면, 누구나 그 정보를 볼 수 있게 되고, 이는 심각..
AWS - ALB를 적용시킨 ECS의 동적 포트 할당관계 동작원리
·
AWS/ECS, ECR
ALB를 적용시킨 ECS의 동작원리 이전 포스트에서 배포를 완료하고 실행했는데 ALB의 DNS주소 뒤에 8081포트를 입력하고 접속하니 접속이 불가능했는데 아무런 포트를 입력하지 않고 접속하니 잘 동작했다. 이에 ALB(Application Load Balancer)를 적용시킨 ECS(Elastic Container Service)의 동작원리를 알아보고 이 포스트를 작성한다. 1. ALB 리스너 포트 설정 ALB의 리스너 포트를 80으로 설정하면, ALB는 클라이언트로부터 80 포트에서 들어오는 요청을 수신한다. 클라이언트는 이 경우 ALB의 DNS 주소만 입력하여 접속할 수 있다 (예: http://ALB-DNS-Address/). 아래와 같이 80 포트를 ALB의 리스너 포트로 설정한 상황이다. 2...
AWS CI/CD: CodePipeline 배포 최종 점검 (8편)
·
AWS/CodePipeline, CICD
저번 포스트에서는 Deploy단계에서 S3에서 이미지를 불러와서 오류가 발생했던 부분을 수정했었다. 이번에는 그 다음에 새롭게 발생한 ECS 실행 오류를 해결한다. 1. 배포오류 (Memory 부족 문제) 1-1. 오류 파악 저번 포스트에 이어서 빌드를 진행했더니 아래와 같이 배포단계에서 무한로딩이 발생했다. 계속 진행중이 떠서 답답해서 ECS 클러스터에 들어가서 확인해 봤다. 아래와 같이 배포에서 실패한 작업이3번이었다. 1-2. 이벤트 메시지 확인 이벤트의 메시지를 확인해봤더니 다음과 같았다. "Amazon ECS가 recipia-member-service 서비스의 요구 사항을 충족하는 컨테이너 인스턴스를 찾지 못했음을 나타낸다." 특히, 가장 근접한 매치인 컨테이너 인스턴스 15ce592c56944..
AWS CI/CD: CodePipeline 배포 오류 수정 (7편)
·
AWS/CodePipeline, CICD
열심히 빌드오류를 수정해서 고쳤다. 근데 근데!! 이번에는 Deploy 배포단계에서 오류가 생겼다 당장 해결해보도록 하자 1. 배포 오류 파악하기 1-1 .오류 파악 아래와 같이 Deploy에서 빨갛게 실패라고 나왔다... 1-2. 아래의 오류가 발생했다. Unable to access the artifact with Amazon S3 object key 'recipia-member-git-n/BuildArtif/IejGhqN' located in the Amazon S3 artifact bucket 'codepipeline-ap-northeast-2-555139989952'. The artifact object key is not found. 1-3. 오류 해석 이 오류는 AWS CodePipeline..
AWS CI/CD: CodePipeline 배포 및 검토 (3편)
·
AWS/CodePipeline, CICD
이번에는 2편에 이어서 Step4 배포 스테이지와 Step5 검토를 작성한다. 1. Step4: 배포 스테이지 추가 1-1. 배포 스테이지 추가 Step3에서 다음을 누른다면 아래와 같은 배포 스테이지 추가 화면으로 이동된다. 1-2. 배포 공급자 선택 배포 공급자 하단의 박스를 눌러서 Amazon ECS를 선택해 준다. 1-3. 배포 스테이지 추가하기 이전에 만든 ECS 클러스터를 선택하고 서비스도 선택한다. 여기서 중요한게 이미지 정의 파일인데 이것때문에 배포시 오류가 발생했다. (배포단계를 설명할 때 오류 해결사항을 적도록 하겠다.) 2. 검토 2-1. 검토하기 이 단계에서는 지금까지 작성한 내용들을 하나하나 검토한다. 4단계까지 전부 확인했을때 문제가 없다면 하단의 "파이프라인 생성" 버튼을 누른..
AWS - ALB(로드 밸런서)없이 ECS 생성하기
·
AWS/ECS, ECR
이번 포스트에서는 ALB(로드 밸런서)를 사용하지 않고 AWS의 ECS를 생성하고 SpringBoot의 jar 파일를 dockerfile로 이미지 변환하고 배포해 보도록 하자 이 글을 따라하기 전에 ECR을 먼저 만들고 오는것을 추천한다. 2023.10.27 - [AWS] - AWS ECR로 Docker 이미지 관리하기: 완벽 가이드 AWS ECR로 Docker 이미지 관리하기: 완벽 가이드 코딩은 글쓰기라고 생각한다. 꾸준히 기록하며 내 개발 실력을 키울것이다. curiousjinan.tistory.com 1. Task 정의하기 1-1. ECS 좌측의 메뉴바에서 “태스크 정의”를 클릭한다. 1-2. 우측의 “새 태스크 정의 생성”을 클릭한다. 1-3. 이동한 페이지 좌측에 있는 “새로운 ECS환경” 버..
AWS ECR로 Docker 이미지 관리하기: 완벽 가이드
·
AWS/ECS, ECR
Docker 이미지를 관리해 주는 DockerHub의 AWS버전인 ECR(Elastic Container Registry)을 생성해 보자 1. ECR 생성하기 1-1. ECR생성페이지 이동 ECR 리포지토리를 생성하기 위해서 AWS의 ECR 페이지로 이동 (웹 검색으로 들어와도 된다.) 1-2. ECR 리포지토리 생성버튼 클릭 프라이빗으로 선택하고 간단하게 리포지토리 이름을 작성해 준다. 1-3. 리포지토리 생성하기 다 작성하고 하단의 "리포지토리 생성" 버튼을 클릭한다. 1-4. ECR 생성완료 2. ECR에 이미지 push하기 (dockerfile 이용, ARM(애플 M1) 아키텍처 제외버전) 2-1. 우측 상단에 “푸시 명령 보기” 버튼을 클릭한다. 2-2. 아래와 같이 푸시 명령 정보가 나온다. ..
AWS EC2 인스턴스 생성 및 Termius를 이용한 접속 방법: 초보자 가이드
·
AWS/EC2
이번 포스트에서는 앞으로 많은 포스트의 기본이 될 AWS의 EC2를 생성하고 AWS CLI가 아닌 외부 터미널인 Termius(무료버전)을 사용해서 접속하는 방법까지 설명하도록 하겠다. 1. EC2 생성하기 1-1. AWS에서 로그인을 하고 EC2 대시보드에 들어간다. 1-2. 인스턴스 시작 버튼을 클릭한다. 1-3. 이름 및 태그 작성 1-4. 애플리케이션 및 OS 이미지 선택 하단의 AMI 부분 박스를 선택해서 다른 종료의 Ubuntu도 선택이 가능하다 1-5. 인스턴스 유형 선택 인스턴스 유형도 하단의 박스를 선택해서 변경이 가능하다. (요금 검색을 통해 선택하도록 하자) https://calculator.aws/#/addService/ec2-enhancement (여기서 선택해서 요금을 계산하고 ..