베하 ~ 콩순이들 BTC_물콩입니닷
오늘은 Fargate를 통해 ECS 구성을 해보겠습니다 !
ECS (Elastic Container Service)란 ?
AWS에서 제공하는 서비스로, 컨테이너 기반의 애플리케이션을 쉽게 실행, 관리 및 배포할 수 있게 해주는 서비스입니다. ECS에서는 컨테이너를 실행하는 두 가지 실행 유형이 있습니다
1. ECS Fargate
- Fargate는 AWS에서 관리하는 완전 관리형 컨테이너 실행 환경을 제공합니다.
- 사용자는 EC2 인스턴스를 직접 관리할 필요 없이 컨테이너만에 집중할 수 있습니다.
- Fargate 클러스터를 생성하여 사용하며, 클러스터에서 컨테이너를 실행하기 위해 EC2 인스턴스를 프로비저닝하거나 관리할 필요가 없습니다.
- 컨테이너를 실행할 때, 사용자가 지불하는 요금은 컨테이너의 메모리와 CPU 사용량에 따라 책정됩니다.
Fargate는 더 간단한 비용 모델을 제공합니다.
- Fargate는 EC2 인스턴스의 확장, 클러스터 용량 관리 등과 같은 서버 인프라에 대한 걱정 없이 컨테이너를 실행할 수 있게 합니다.
2. ECS EC2
- EC2 실행 유형은 ECS를 사용하면서 EC2 인스턴스를 직접 관리하고자 할 때 선택하는 옵션입니다.
- EC2 실행 유형에서는 컨테이너를 실행하는 데 필요한 EC2 인스턴스를 먼저 프로비저닝해야 합니다.
- EC2 인스턴스에 Docker 데몬과 ECS 에이전트를 설치하여 컨테이너를 실행하고 클러스터를 관리합니다.
- EC2 실행 유형은 기존에 사용하던 EC2 인스턴스를 활용할 수 있고, 보다 세밀한 컨트롤과 사용자 정의가 필요한 경우 에 유용합니다.
- 사용자는 EC2 인스턴스의 유형, 크기, 운영 체제 등을 선택하여 컨테이너를 실행할 수 있습니다.
이때, EC2 실행 유형은 컨테이너 실행과 함께 EC2 인스턴스의 관리, 운영, 확장 등에 관련된 책임을 가지게 됩니다.
[실습과정]
1. EC2
- 웹 애플리케이션이나 서비스의 실행 환경과 코드 등을 포함한 패키지
- ECR에 올릴 이미지 생성
2. ECR
- Docker 이미지를 저장하는 완전관리형 Docker 컨테이너 레지스트리
- ECS에서 사용할 이미지 업로드
3. ECS
- Docker 컨테이너를 실행, 관리하기 위한 서비스
- Fargate로 인프라 환경 구성
[실습]
1. EC2에 ECR에 올릴 이미지 생성
# Docker Download
sudo -i
yum install docker -y
systemctl start docker
# Dockerfile 생성
vim Dockerfile
---
FROM httpd:2.4
COPY ./public-html/ /usr/local/apache2/htdocs/
---
mkdir public-html
EC2에 먼저 도커를 깔아준 다음 간단한 도커 파일을 생성해 줍니다 !
저는 Apach를 Dockerfile을 생성해 주었습니다 !!
2. ECR에 해당 Dockerfile Push
AWS 콘솔 -> EKS -> ECR로 접속해줍니다.
리포지토리를 프라이빗에 하나 생성 한 후,
리포지토리 이름을 클릭하고 들어가면 푸시 명령어를 확인하실 수 있습니다 !!
해당 명령어를 Dockerfile이 존재하는 EC2에 차례대로 쳐줍니다 !
이때, EC2에 AWS Configure 등록과, AWS CLI 설치는 필 수 !! 입니다 !
위 과정을 다 따라하면 리포지토리에 이미지 하나가 올라간 것을 확인하실 수 있습니다 ~
3. ECS에서 Fargate로 인프라 환경 구성
1) Task 정의
AWS 콘솔 -> ECS -> 태스크 정의
먼저 태스크 정의를 해줍니다.
태스크 정의 생성을 클릭 한 후,
컨테이너 세부 정보를 입력해줍니다!!.
이때 전 단계에서 생성했던 리포지토리의 이름과, Push 했던 이미지 URI를 입력해줍니당
앱 환경은 AWS Fargate(서버리스)로 선택하고 태스크 역할은 모두 기본값으로 설정해줄게욤
2 ) 클러스터 생성
AWS 콘솔 -> ECS -> 클러스터
다음은 클러스터 생성을 해줍니다 !
VPC와 Subnet을 선택하고,
Amazon EC2 인스턴스의 ASG를 선택해준 다음 클러스터 생성을 누르면 완성 !!
3) 서비스 생성
AWS 콘솔 -> ECS -> 클러스터 -> 서비스 생성
마지막으로 서비스를 생성해봅시다 !!
클러스터가 생성 된 후 해당 클러스터에서 서비스 생성을 클릭합니다 !!
시작유형은 Fargate로 선택해주시고 패밀리도 태스크 정의에서 생성했던 태스크를 선택해줍니다 !
그럼 보든 Fargate로 ECS를 구성하는 모든 과정이 끝났는데요 !!
서비스와 해당 컨테이너를 기반으로 태스크가 생성된 모습을 확인하실 수 있습니다 !!
두근두근 태스크의 퍼블릭 IP로 들어가면...!!
쨔란 ~~ Dockerfile로 생성했었던 Apache를 확인 할 수 있습니다 !!!
비록 저는 이번 실습에서 서비스와 태스크를 1개씩만 생성했지만,
여러분들이 실제로 서비스에 생성하신다면 태스크 여러개를 생성하여 타겟그룹에 등록한 후 ALB에 연결시키면
트래픽 분산도 하고 너무 좋겠쬬 ?!
그럼 다음 시간에 만나효 베 빠 ~~~
'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글
[AWS] AWS DLM (Data Lifecycle Manager) 실습 (0) | 2023.07.21 |
---|---|
[AWS] AWS Elemental MediaStore (0) | 2023.07.20 |
[AWS] CodePipeline (0) | 2023.07.19 |
[AWS] eks addon 3rd party Kubecost란? (0) | 2023.07.19 |
[AWS] Simple File Manager for Amazon EFS (0) | 2023.07.19 |
댓글