본문 바로가기

전체 글16

ECS Fargate Task 실행 에러 : exec format error 문제상황로컬에서 ECS에 docker push 완료 후 테스크가 실행되지 않는 오류가 발생했다.콘솔에 들어가서 확인해보니 컨테이너 시작-중지가 계속 반복되고 있었다. Cloudwatch Logs를 통해 로그를 확인했다.원인을 찾아보니..현재 Mac M1에서 작업을 진행중인데 Fargate 테스크의 기본 아키텍쳐는 X86_64고 해당 부분을 ARM 아키텍쳐로 별도로 지정해주지 않은 것이 문제였다. (아무생각없이 빌드해버림..)https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform Amazon ECS task definition parameters for the Farg.. 2025. 6. 11.
AWS 컨테이너 서비스 3-Tier w/테라폼 & CI/CD 구성하기 - (3) Terraform으로 AWS 아키텍쳐 구성하기 (ECS) 인프라 아키텍쳐 소개프론트엔드 : S3에 정적 파일을 저장하고, CloudFront를 통해 전달백엔드 : ECS Fargate에서 컨테이너화된 Springboot 애플리케이션을 실행하고 ALB로 트래픽 분산데이터베이스 : RDS for PostgreSQL 사용 주요 특징루트 도메인은 keembucha.shopTerraform 상태 파일 (terraform.tfstate)을 저장하기 위해 S3 버킷, DynamoDB을 사용했다.DynamoDB의 Lock 기능을 통해 여러명이 동시에 Terraform 실행 시 상태 파일 충돌을 방지할 수 있다.VPC 구성은 Public, Private, Database 서브넷으로 분리했다. 특히 Database 서브넷은 variables.tf에서 해당 CIDR 목록을 선언.. 2025. 6. 6.
AWS 컨테이너 서비스 3-Tier w/테라폼 & CI/CD 구성하기 - (2) 데모 애플리케이션 개발 본격적인 아키텍쳐 구축에 앞서 간단한 방문자 기록 애플리케이션을 개발할 것이다.데모 애플리케이션 구조 개요프론트엔드 : React (정적 페이지) → S3 + CloudFront에 배포백엔드 : Springboot (REST API) → ECS / EKS 에 배포 백엔드 (Springboot) 애플리케이션 개발API/health : 헬스 체크/api/visit : POST 요청으로 이름 + 방문 시간 저장/api/visits : GET 요청으로 전체 방문기록 반환Spring Initializer 설정하기https://start.spring.io/현재 로컬 환경에 Java 21 버전이 설치되어있어 21버전으로 맞춰서 생성해줬다.코드 구조build.gradledependencies { ... // JP.. 2025. 6. 2.
AWS 네트워크 - VPC 간 연결(VPC Peering, Transit Gateway), 온프레미스-VPC 연결 (Direct Connect, Site-to-Site VPN) VPC 란 AWS에서 제공하는 가상 네트워크 서비스.하나의 VPC에 다양한 역할을 하는 시스템을 두면 VPC 내부의 통신 제어가 복잡해지므로, 일반적으로 몇개의 VPC 혹은 여러개의 AWS 계정에 나누어 시스템을 배치시킨다.VPC는 독립된 네트워크 공간으로, 다른 시스템들 사이에 임의로 통신을 수행할 수 없다. 따라서 VPC간 통신을 위해서는 VPC 피어링, AWS Transit Gateway 라는 별도의 서비스가 필요하다. VPC 간 연결VPC PeeringVPC 사이를 연결하는 기능을 제공한다.연결한 VPC는 각각의 VPC에 상대 VPC의 CIDR로의 라우팅을 설정해 상대 VPC의 가상 서버와 통신할 수 있다. 서로 다른 리전에 위치한 VPC간 피어링 설정 시에는 프라이빗 IP를 통해 통신 가능하다... 2025. 6. 1.
AWS 컨테이너 서비스 3-Tier w/테라폼 & CI/CD 구성하기 - (1) 개요 및 상세 아키텍쳐 개요AWS 환경의 대표적인 컨테이너 서비스인 ECS와 EKS 기반의 3 -Tier 아키텍쳐를 구축하고 CI/CD 자동화 파이프라인을 구성해 각 환경을 비교해볼 예정이다.공통 구성요소Terraform 활용 IaC 기반 인프라 구성Spring Boot 애플리케이션은 JAR + Docker 방식으로 패키징내장 tomcat을 사용해서 별도의 WAS 없이 자체적으로 구동된다.CI/CD는 GitHub Actions, Jenkins, ArgoCD, CodeDeploy 등 상황에 맞게 구성Github 레파지토리 : 백엔드, 프론트엔드 프로젝트 및 Terraform 코드 저장소로 활용NAT : 프라이빗 서브넷에 위치한 리소스가 인터넷 접근이 필요할 때의 경로 상세 아키텍쳐1. AWS ECS + Fargate 기반 3-T.. 2025. 5. 30.
Ubuntu 22.04에서 awscli 설치 관련 이슈 문제상황ubuntu에서 awscli 설치하려고 하니 다음과 같은 에러가 발생했다.Ubuntu 22.04에서는 awscli가 apt 패키지로 제공되지 않는다.→ Ubuntu 24.04용 패키지(noble)는 제공되지 않는다는 의미“Candidate 없음” → 설치할 수 있는 버전이 없다는 것해결 방안pipx로 설치하기→ Ubuntu는 시스템의 Python 환경을 보호하기 위해 pip로 직접 시스템 전역에 설치하는 걸 금지하기때문에 pip보다는 pipx 권장됨# 파이썬 설치sudo apt update && sudo apt install python3.12-venv# 가상환경 디렉토리 생성 및 가상환경 활성화python3 -m venv venv && source venv/bin/activatepip insta.. 2025. 4. 15.