Backend/공통

EC2, RDS 등 컴퓨팅 설정 및 ECS 설명

Dean83 2025. 11. 7. 15:11

가상 컴퓨터 설정시 T 계열은 저 성능을 유지하다가 필요할때 버스트 하여 성능을 올린다.  무제한으로 쓰는것은 아니고, 크래딧이 있는데 해당 크래딧을 다 쓰면 성능이 많이 떨어진다. 또한 크래딧 구매를 할 수 있는데 비용이 비싼 편이다. 따라서 상황에 맞게 선택하되, DB 같이 일정 상태를 유지를 하기 위해서는 T 계열을 피해야 한다.

 

  • ECR
    • 도커 이미지 등 컨테이너 이미지를 올려놓는 공간. 도커 허브 같은것.
    • 도커 이미지를 ECR로 올리는 것은 여기 참조 (https://dean83.tistory.com/366)
    • ECS와 연계 가능

  •  ECS
    • 컨테이너를 이용하여 서버 구현. Task 설정, Cluster -> 서비스 설정을 통해 구현한다.
    • 전체 구성을 요약해보면, 아래와 같다 
      • 클러스터 생성
      • 테스크 생성
      • 클러스터 -> 서비스 생성 
      • RDS의 Security 그룹에서 해당 서비스 인바운드 규칙 추가.
  •  
    • 클러스터 - 인프라 스트럭쳐 정의
      • Fargate 방식, self 방식이 있음
      • Fargate : cpu, mem 스펙 및 개수를 지정하면 알아서 AWS 에서 관리
        • 무료가 없음. 좀 더 비쌈
        • 관리 하기가 편함
      • Self 방식 (EC2 이용) 
        • EC2 인스턴스들을 여러개 생성하여 클러스터 구성.
        • 관리 하기가 어려우나 비용을 낮출 수 있음
    • IAM 에서 task 에 필요한 role 생성 필요
      • IAM - role 에서 새로 생성하여, ECSTaskExecution, SSMFullAccess 추가 (필요할 경우 더 추가)
    • Task 정의
      • Task 는 실제 동작하는 주체이고(메인 컨테이너 + 필요시 모니터링 등 유틸성 컨테이너), 이를 묶어서 관리하는것이 서비스. 서비스들을 묶은것이 클러스터 이다.
      • 전체 시스템 사용 관련 설정
      • Task execution role
        • Task를 실행하기 위한 롤 설정으로 , 위의 IAM 에서 설정한 role 이다. ECSTaskExecution 이 대표적이다.
      • Task role
        • 이 Task가 할 수 있는 역할에 대한 정보이다. 예를들어 S3를 접근해야 할 경우 환경설정에 Access, Secret key를 추가 하는 대신, S3 접근 권한을 주면 접근 할 수 있게 된다.
      • 포함될 컨테이너 이미지 등 (ECR에서 불러옴) 설정
      • 환경설정
        • 컨테이너 수행시 주입해줄 환경 설정
          • 하나씩 추가 해 줄 수도 있고, 파일(env 파일) 로부터 읽어올 수 있다.
            • 개별 추가시 직접 타이핑 할 수도 있고, ValueFrom 을 통해 SSM을 이용해 가져올 수 있다.
          • 파일의 경우 s3 에 올려두어야 하므로, 위의 role 생성에서 S3 권한도 추가 해야 한다.
    • 클러스터 정의 계속 (생성된 클러스터 클릭 -> 새 서비스 생성)
      • 위에 정의한 task 를 불러와 설정
      • 네트워크 세팅에서 VPC 설정을 필히 살펴 볼것
        • 서브넷 퍼블릭만 적용
        • DB 접속 가능하도록 VPC 설정
        • 로드밸런싱 설정 필요시 설정
          • health check 설정 해야 하므로, 간단히 actuator(https://dean83.tistory.com/367)를 이용하여 설정하면 좋다.
          • 기본적으로 ALB를 이용한다.
            • 포트포워딩 설정 할 수 있다 (Target group이 받는쪽 포트)
  • Parameter store 
    • 파라메터 주입을 위한 서비스로, system manager parameter store 에서 관리한다.
    • url 형식으로 path를 정의 하고, 값을 넣어서 추가한다.
      • 형식이 String, SecureString이 있는데, SecureString이 비밀번호 등 감추고 싶은 정보일 경우 이렇게 한다.
    • Task 에서 환경변수 설정시 ValueFrom 으로 불러와 쓸 수 있다.

'Backend > 공통' 카테고리의 다른 글

Github Action을 통한 AWS CI/CD (2)  (0) 2025.11.11
Github Action을 통한 AWS CI/CD (1)  (0) 2025.11.11
REST API, RESTful API  (0) 2025.09.19
AWS S3 버킷 웹설정 (CloudFront, Route 53)  (0) 2024.11.13
AWS 에 nginx 설치  (0) 2024.10.25