본문 바로가기
AWS/ECS

AWC ECS Service Connect 배포하기

by aws-evan 2024. 12. 11.
반응형

 

 

 

  • AWS ECS 서비스간 통신 방법 3가지 존재
    • Amazon ECS Service Discovery(활용)
      • DNS 사용하여 요청을 보낼 수 있도록 엔드포인트를 생성
        • 생성된 엔드포인트를 통하여 프론트 -> DNS를 통하여 백엔드 호출
      • AWS Cloud Map, Route53에 필요한 항목이 자동 등록
    • Amazon Elastic Load Balancer(ELB)
      • 많이 사용하는 방법이며 하나의 ELB의 대상 그룹을 지정하여 트래픽을 전달
      • 클라이언트 -> ELB 엔드포인트 호출
    • AWS App Mesh
      • Service Mesh 개념
      • Envoy 프록시를 사이트카 형태로 생성하여 하나의 네트워크를 구성
        • Task(작업 간) 트래픽을 프록시하고 상호 연결을 담당
        • Envoy 프록시를 사용할 경우 암호화, 인증 기능 제공
      • 복잡도 존재함

 

  • 참고

https://aws.amazon.com/ko/blogs/tech/run-microservices-easily-with-amazon-ecs-service-connect/

 

Amazon ECS Service Connect를 활용하여 손쉽게 마이크로서비스 운영하기 | Amazon Web Services

마이크로서비스 아키텍처는 최근 소프트웨어 개발의 가장 인기있는 방식으로, 애플리케이션을 작고 독립된 서비스로 나누어 분산 구성하여 운영할 수 있습니다. 이를 통해 고객은 기존의 모놀

aws.amazon.com

 

 

  • 구성도

 

 

  • 사전 조건
    • AWS ECS Cluster 생성

https://monta010.tistory.com/171

 

AWS ECS 콘솔 구축하기

AWS ECS컨테이너 애플리케이션을 쉽게 배포, 관리 및 확대할 수 있도록 도와주는 완전 관리형 컨테이너 오케스트레이션 서비스 1. ECS VPC 배포Cloudformation → VPC 생성    2. ECS ECR 생성 리포지토리

monta010.tistory.com

 

1. Backend Task

  • 태스트 이름 : backend
  • 시작 유형 : Amazon EC2 인스턴스
  • 운영 체제 : Linux X86_64 , 네트워크 모드 : bridge
  • 태스크 크기(스펙 선택)
    • CPU : 1 vCPU
    • 메모리 : 1 GB
  • 테스크 실행 역할 : ecsTaskExecutionRole

  • 컨테이너
    • 이름 : backend
    • 이미지 URL : Private ECR URL
    • 포트 매핑
      • 컨테이너 포트 : 3001

2. Backend Service

  • 시작 유형 : EC2

  • 애플리케이션 유형 : 서비스
  • 패밀리 : Backend , 버전
  • 서비스 이름 : backend-service

3. Backend 서비스 접속

 

4. Backend Service Connection 설정

  • 서비스 연결 켜기 : 활성화
  • 서비스 연결 구성 : 클라이언트 및 서버(백엔드)
  • 네임스페이스 : 네임스페이스 선택
  • 서비스 연결
    • 포트 별침 : backend-3001-tcp
    • 검색 : backend.local
    • DNS : backend.local(프론트 URL 사용)
    • 포트 : 3001

 

 

 

 

5. Front Task

  • 태스트 이름 : front
  • 시작 유형 : Amazon EC2 인스턴스
  • 운영 체제 : Linux X86_64 , 네트워크 모드 : bridge
  • 태스크 크기(스펙 선택)
    • CPU : 1 vCPU
    • 메모리 : 2 GB
  • 테스크 실행 역할 : ecsTaskExecutionRole

  • 컨테이너
    • 이름 : front
    • 이미지 URL : Private ECR URL
    • 포트 매핑
      • 컨테이너 포트 : 80

  • 시작 유형 : EC2

6. Front Service

  • 애플리케이션 유형 : 서비스
  • 패밀리 : front , 버전
  • 서비스 이름 : front-service

  • 서비스 연결 켜기 : 활성화
  • 서비스 연결 구성 : 클라이언트 측만 해당
  • 네임스페이스 : 네임스페이스 선택

 

7. nginx 변경

  • Nginx 설정
    • proxy_pass : backend-api.me 으로 변경
server {
    listen 80;
    server_name localhost;

    location / {
        root /usr/share/nginx/html;
        index index.html;
        try_files $uri $uri/ /index.html;
    }

    location /api/ {
        proxy_pass http://backend-api.me/api/;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

 

 

 

8. 서비스 확인

반응형

'AWS > ECS' 카테고리의 다른 글

AWS ECS 스토리지  (0) 2024.12.16
AWS ECS 콘솔 구축하기  (0) 2024.12.10
AWS Fargate ECS 구성하기  (0) 2021.08.30

댓글