AWS 11

[트러블슈팅] ECS 배포 실패(ELB Health Check 실패)

1. 문제 상황ECS 서비스 배포 시 Task가 정상 기동되지 않고 반복적으로 종료됨ECS 이벤트 메시지:Task failed ELB health checksALB 타겟 그룹에서 대상이 unhealthy 상태로 판단됨2. 의심 1: 애플리케이션 자체의 문제?2.1 확인한 것ECS 로그 확인Spring Boot 로그에서 다음 메시지 확인Started PlaylistApplication in 90.515 seconds2.2 결론애플리케이션은 정상적으로 기동 완료→ 런타임 예외나 즉시 충돌 문제는 아님3. 의심 2: 헬스체크 엔드포인트 문제?3.1 확인한 것ALB 타겟 그룹 헬스체크 경로:/actuator/health로컬에서 직접 확인:{ "status": "UP", "components": { "d..

[트러블슈팅] S3

1. 문제 상황Playlist 프로젝트에서 프로필 이미지 / 콘텐츠 파일 / 로그 파일을 S3로 관리함ECS Fargate 환경에서 애플리케이션 실행S3 업로드/삭제는 서버가 수행조회는 브라우저에서 직접 이미지 URL 접근배포 이후 이미지 조회 불가, 권한 오류, 접근 방식 혼란 등 S3 관련 문제가 반복적으로 발생2. 초기에 흔들렸던 개념2.1 IAM 권한 vs 퍼블릭 접근 개념 혼동TaskRole에 부여한 S3 관련 정책(PlaylistS3TaskPolicy)에 s3:GetObject가 있으므로 브라우저에서도 GET 가능할 것이라고 오해실제로는:IAM 정책은 ECS Task Role(서버) 에만 적용브라우저는 익명 사용자 → IAM 정책과 무관→ IAM 권한 ≠ 퍼블릭 접근 권한2.2 S3 퍼블릭 액..

ECS(Fargate)와 ElastiCache Redis 연결 시 고려사항

동일한 VPC 내에서 네트워킹 및 보안 그룹 설정 중요1. 동일 VPC 및 서브넷 구성ElastiCache 클러스터는 프라이빗 서브넷 그룹에 위치해야 고가용성 보장ECS(Fargate)도 동일한 프라이빗 서브넷 그룹에서 실행되도록 구성2. 보안 그룹 설정ElastiCache 보안 그룹:인바운드 규칙: ElastiCache Redis 포트(기본값: 6379, 서버리스: 6379/6380)소스: ECS에 할당된 보안그룹 ID(특정 보안 그룹에 속한 리소스만 접근 가능해짐)ECS(Fargate) 보안 그룹:아웃바운드 규칙: Redis 포트를 사용하여 ElastiCache 보안 그룹으로 트래픽 허용 일반적으로 기본 아웃바운드 규칙은 모든 트래픽을 허용하지만 명시적으로 확인하는 것이 좋음3. ElastiCach..

DevOps & Cloud/AWS 2025.12.11

AWS ElastiCache

1. AWS ElastiCache란?ElastiCache는 AWS에서 제공하는 관리형 인메모리 캐시 서비스즉, 서버에서 직접 Redis나 Memcached를 설치/운영할 필요 없이, AWS가 캐시 서버를 관리해주고 스케일링, 장애 복구, 모니터링 등을 지원해줌장점실시간 성능: 모든 데이터가 메모리에 저장되기 때문에 읽기/쓰기 속도가 빠름자동 관리: 백업, 패치, 모니터링, 장애 복구 등 AWS가 알아서 해줌유연한 스케일링: 트래픽이 늘어나면 노드 추가/제거 가능고가용성: Multi-AZ 배포 지원으로 장애 발생 시 자동 페일오버2. ElastiCache를 사용하는 이유애플리케이션 서버 메모리 부담 감소이전에 ECS 태스크에 App + Redis를 같이 띄우면서 OOM 발생→ ElastiCache로 분리하..

DevOps & Cloud/AWS 2025.12.10

S3 버킷 정책(get요청만 public으로 전환하는 법)

모든 퍼블릭 액세스 차단은 항상 켜두기!1. GetObject 요청만 public으로 받는 법그리고 아래의 버킷 정책을 추가하면 GetObject 요청만 public으로 받을 수 있음{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadForGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::{버킷명}/*" } ]} 이 경우에는 다음과 같이 url을 생성하면 됨 private S..

DevOps & Cloud/AWS 2025.11.27

[TID] CICD 워크플로 구축하기

1. CI와 CD1) CI(Continuous Integration, 지속적 통합)코드가 GitHub에 push 될 때 자동으로빌드 → 테스트 → 도커 이미지 생성이미지 레지스트리(예: AWS ECR)에 push목적: 코드 퀄리티 보장 + 배포 준비 완료 이미지 생성2) CD(Continuous Deployment/Delivery, 지속적 배포/전달)이미지가 준비되면 자동/수동으로 서버(AWS EC2, ECS 등)에 배포목적: 빠르고 안정적인 배포2. AWS 옵션 정리1) 서버 선택서비스장점단점 / 특징EC2서버 직접 제어 가능, 자유도 높음서버 관리 필요(보안, 스케일링, 업데이트)ECS (Fargate)서버리스 컨테이너 실행, 스케일링 자동초기 설정 조금 복잡EKSKubernetes 기반, 복잡한 컨..

[AWS] ECS

1. 컨테이너 오케스트레이션(Container Orchestration)컨테이너애플리케이션과 그 실행 환경(라이브러리, 의존성 등)을 패키징하여 어디서든 동일하게 실행할 수 있는 기술실제 운영 환경에서는 수십~수백 개의 컨테이너를 동시에 실행하고 관리→ 컨테이너 오케스트레이션 활용하는 일(자동 수행):컨테이너 배치 (어떤 서버에 컨테이너를 올릴지)컨테이너 상태 모니터링 (죽으면 자동으로 재시작)확장/축소 (트래픽에 맞춰 개수를 늘리거나 줄임)네트워크 연결 및 로드밸런싱예:Kubernetes, Amazon ECS, Docker Swarm 등2. Amazom ECSAWS가 제공하는 완전관리형 컨테이너 오케스트레이션 서비스Cluster → Task Definition → Task → Service의 흐름Clu..

DevOps & Cloud/AWS 2025.08.31

[AWS] RDS

1. RDS 개념과 특징RDS(Relational Database Service)AWS에서 제공하는 관계형 데이터 베이스 서비스직접 DB를 서버를 설치/운영하지 않고, 클라우드 제공업체(AWS, Azure, GCP 등)가 관리하는 DB 사용특징:구분 전통적인 DB 관리 RDS (관리형 DB)설치사용자가 직접 설치자동 설치 제공보안 패치수동 업데이트 필요자동 업데이트백업직접 스크립트 작성자동 백업 지원모니터링별도 툴 설치 필요기본 제공 (CloudWatch 등)확장성서버 증설 직접 수행클릭 몇 번으로 확장 가능PostgreSQL RDSRDS는 다양한 엔진을 지원하지만, 실무에서는 PostgreSQL이 많이 사용됨이유: 오픈소스, ACID 보장, JSON 타입 지원, 풍부한 함수와 확장성장점:기능 설명JSO..

DevOps & Cloud/AWS 2025.08.30
728x90