전체 글

하다보니 재미있는 개발에 빠져있는 평양냉면7 문의사항: ysoil8811@gmail.com
· AWS
Secrets Manager 이용해서 환경변수 적용하기(IAM 정책, Spring Boot 코드 수정) 지난 포스팅에서 ECS 태스크에서 Secrets Manager에 접근할 수 없어서 태스크 정의가 생성되지도 않았다. 이번 포스팅에서 IAM 정책을 추가해 주고 에러를 해결해 보자. 1. IAM 정책 연결해 주기 ECS 태스크가 Secrets Manager에 접근할 수 있도록 ecsTaskExecutionRole 역할에 권한을 부여해야 한다. 1. IAM > 역할 화면에 들어가서 내게 필요한 ecsTaskExecutionRole을 검색한다. 2. 역할 이름을 클릭해서 들어가면 나에게 필요한 'SecretsManagerReadWrite' 권한이 없다. 현재 ecsTaskExecutionRole에 연결된 권..
· AWS
Secrets Manager 이용해서 환경변수 적용하기 Spring Boot와 RDS를 직접 연동까지는 성공했다. 그리고 나는 모든 소스를 GitHub에 올리기 때문에 직접 데이터베이스 접속 정보가 코드상에 노출되면 안 된다. 이 문제를 해결하기 위해 AWS Secrets Manager 서비스를 이용해 중요한 접속 정보를 코드에 직접 포함시키지 않고 환경 변수를 통해 프로젝트를 실행시켜 보자. 1. Secret 생성하기 1. AWS Secrets Manager 접속하기 https://aws.amazon.com/ko/secrets-manager/ 클라우드 암호 관리 - AWS Secrets Manager - AWS AWS Secrets Manager는 수명 주기에 걸쳐 데이터베이스 보안 인증 정보, API..
· AWS
SpringBoot와 PostgreSQL 연동하기 지난 포스팅에서 RDS PostgreSQL을 생성했다. 이제 Spring boot에 Database를 연결해 보자. 1. build.gradle 파일을 수정해 준다. dependencies { .. 기존 코드들 // postgreSQL runtimeOnly 'org.postgresql:postgresql' } 2. 그리고 우측 상단에 코끼리 모양 버튼을 눌러줘야 한다. (Load Gradle Changes) 2. application.yml 파일을 수정해 준다. url 부분에 엔드 포인트는 본인이 생성한 RDS > 데이터베이스 개요에 [연결 및 보안] 탭에서 "엔드포인트"를 확인하면 된다. spring: datasource: driver-class-nam..
· AWS
PostgreSQL 생성하기 1. RDS PostgreSQL 생성하기 1. AWS RDS 페이지 접속하기 https://aws.amazon.com/ko/rds/ 데이터베이스 관리 시스템 | 관계형 RDS | Amazon Web Services 닫기 이 다이어그램은 Amazon Relational Database Service(RDS)의 주요 기능과 이점을 보여줍니다. 왼쪽에서 오른쪽으로 세 개의 섹션이 표시되어 있습니다. 첫 번째 섹션에는 노트북 그림이 있습니다. 첫 aws.amazon.com 2. RDS 대시보드 접속해서 [데이터베이스 생성] 버튼 클릭한다. 3. 데이터베이스 생성 방식 선택에서 '표준 생성'을 선택한다. 4. 엔진 옵션은 'PostgreSQL'을 선택한다 5. 엔진 버전은 기본으로 선..
· AWS
CodePipeline - 배포 오류 해결 (S3 거치지 않고 ECR에서 이미지 가져오기) 지난 게시글에서 GitHub main 브랜치에 push가 되면 CodePipeline이 trigger 되고 CI/CD가 적용되는 모습을 봤다. 중간에 Build 단계에서 오류가 났던걸 해결했다. 그리고 이제 Deploy 단계에서 발생하는 에러들을 해결해 보자. 1. 배포 Deploy 오류 발생 (S3 관련 오류) 1-1. Build 단계가 잘 넘어가더니 이번엔 Deploy 단계에서 에러가 발생했다. 1-2. 아래와 같은 오류가 발생했다. Unable to access the artifact with Amazon S3 object key 'recipia-member-git-n/BuildArtif/IejGhqN' lo..
· AWS
CodePipeline - 빌드 오류 해결 (IAM 역할에 권한 정책 연결) CodePipeline에서 겨우겨우 Build 단계에서 DOWNLOAD_SOURCE 에러를 해결했더니 이제 Build 단계에서 PRE_BUILD 관련 에러가 터졌다. 해당 에러를 해결하는 과적을 적어보겠다. 1. CodePipeline Build 단계 오류 발생 (PRE_BUILD 단계) 1-1. 이전 과정에서 에러를 해결하고 다시 파이프라인을 돌려보았다. S3 권한을 수정하고 [변경 사항 릴리스]를 클릭했다. 1-2. 빌드하는 곳으로 이동해서 하단의 [세부 정보]를 클릭한다. 1-3. 빌드의 “세부 정보”를 확인했더니 이번에는 기존에 발생했던 DOWNLOAD_SOURCE관련 에러는 사라졌다. 1-4. 대신 PRE_BUILD 단..
· AWS
CodePipeline 빌드 오류 해결 (S3 접근 권한) 지난번 포스팅에서 CodePipeline 파이프라인을 생성하고 동작시켰는데 계속 빌드 단계에서 오류가 났다. 해당 오류들을 하나하나씩 해결해 가는 과정을 작성해 보도록 하겠다. 1. CodePipeline 빌드 오류 발생 1-1. 빌드에서 오류가 발생해서 확인하기 위해 "CodeBuild에서 보기" 링크를 클릭한다. 1-2. 빌드 상태의 하단에 “단계 세부 정보” 목록을 클릭해서 확인했다. 1-3. DOWNLOAD_SOURCE단계에서 아래와 같은 오류가 발생했다. CLIENT_ERROR: RequestError: send request failed caused by: Get "": dial tcp #@$@#$:443: i/o timeout for..
· AWS
CodePipeline을 이용한 CI/CD - 파이프 라인 생성 지금까지 ECS 자동배포를 위한 ECR과 ALB를 생성하고 세팅했었다. 이제 AWS CodePipeline을 이용해 ECS 자동 배포를 시작해 보자. 일단 나는 GitHub main 브랜치에 Push가 되면 자동 배포를 trigger 하는 구성이다. 1. ECR, ECS 그리고 CodePipeline을 같이 사용하는 이유 AWS ECR (Elastic Container Registry), ECS (Elastic Container Service), 그리고 CodePipeline을 함께 사용하는 것은 매우 강력한 CI/CD (Continuous Integration/Continuous Deployment) 파이프라인을 구축할 수 있는 방법이다...
평양냉면7
하다보니 재미있는 개발