# Fargate

27개의 포스트

ECS, ECR, EKS & Fargate

Docker in AWS! ECS Elastic Container Service ECS Solution Architecture 예시 EventBridge를 이용한 ECS Task 실행 예) S3 Bucket에 파일이 업로드되면 EventBridge에 Event 트리거-> ECS Task 실행 -> Task에는 S3 Bucket에서 파일을 가져와 처리한 후 DynamoDB에 저장하는 등 다양한 행동 수행 예) EventBridge에 1시간 단위로 EVENT 트리거 -> ECS Task 실행 -> S3 Batch Processing 등의 다양한 행동 수행 SQS Queue 예) SQS Queue로 Message를 받음, ECS Task가 Message Polling및 처리 수행: 이떄 ECS Service Auto Scaling기능을 통해 메세지 양에 따른 자원 조절이 가능! EventBridge를 이용한 ECS Task 종료 Intercept ECS Task 종

2023년 9월 6일
·
0개의 댓글
·

Next.js 13 -> Docker -> ECS

Next.js 13 을 standalone 빌드해서 Docker로 말아서 ECS에 업로드 하고 실행 -> 503 에러!! 많은 삽질과 검색 > node 버전 문제!! > 해결책 : Node 버전을 기존 18에서 16으로 낮춘다. 결과: 잘 된다! (3일 걸림 ㅠㅠ)

2023년 8월 23일
·
0개의 댓글
·
post-thumbnail

AWS ECS 인프라 구축(3)

시스템 구성도 AWS ECS 인프라 구축(2) 편에서 스프링부트 애플리케이션을 ecs 클러스터의 private subnet에 배포했고, parameter store에서 값을 잘 받아오는것도 확인했다. code pipeline을 사용해 깃헙의 커밋을 감지하고 ecr에 이미지를 푸시, ecs 클러스터에 자동배포하는 환경을 만들어보려고한다. 추가로, 일반적인 방법으로는 NLB에 ssl 인증서를 등록할 수 없는것같아 NLB를 ALB로 바꾸려고한다. CodePipeline ![](https://velog.velcdn.com/images/hbjs9

2023년 8월 4일
·
0개의 댓글
·
post-thumbnail

AWS ECS 인프라 구축(2)

시스템 구성도 AWS ECS 인프라 구축(1) 편에서 네트워크 구성 후 배포테스트에 성공했다. 이번에는 테스트용 ecs 클러스터를 제거하고 spring boot 애플리케이션을 배포해보려고한다. 시스템 구성도는 다음과같이 수정되었다. > 수정사항 vpc 외부에서 public subnet으로 향하는 NLB 제거 public subnet의 테스트용 ecs 클러스터 제거 secret manager 대신 parameter store 사용 이번에는 두 AZ를 포함하는 private subnet에 spring boot 애플리케이션을 배포해보려고한다. 환경변수

2023년 8월 3일
·
1개의 댓글
·
post-thumbnail

AWS ECS 인프라 구축(1)

시스템 구성도 구성도를 보면 ECS 클러스터가 public, private subnet을 걸쳐 2개가 있는데, AWS ECS 인프라 구축(1) 편에서 간단히 테스트하기 위해 public subnet에 ecs 클러스터를 배치했다. 추후 public subnet의 ecs 클러스터는 없어질 예정이며, NLB를 통해 private subnet으로 요청하게 만들 예정이다. VPC 초기화 ![](https://velog.velcdn.com/images/hbjs97/post/087f87d9-efd5-4035-8e55-37514a85

2023년 7월 31일
·
0개의 댓글
·
post-thumbnail

AWS Workshop - EKS로 웹 애플리케이션 구축(2)

1편은 여기로 이어서 진행 합니다 6. Fargate 배포하기 컨테이너에 적합한 서버리스 컴퓨팅 엔진 AWS ECS, EKS에서 모두 동작 pod를 배포하기 위해서는 pod가 실행될때 하나 이상의 fargate profile을 정의해야 함 fargate 생성 및 확인 ![](https://velog.velcdn.com/images/dotlike/post/4c944954-ca08-4473-9347-7016acb2d933/image.

2023년 6월 28일
·
0개의 댓글
·
post-thumbnail

[AWS] ECS Fargate Outbound 고정 IP 설정

서론 만약 운영중인 인스턴스가 써드파티 어플리케이션을 사용하는데 사용하는 어플의 방화벽에서 화이트리스트 ip등록이 필요할때 인스턴스의 아웃바운드 ip 는 고정이여야 한다. 필자는 해당 이슈가 생겼을때 관련 자료가 많이 없었어서 고통을 받았는데 같은 이슈로 고통받는분들한테 조금이라도 도움이 되고자 해당 포스트를 작성한다. VPC 생성 VPC 콘솔에서 VPC 생성을 클릭 한 후 이름 태그, IPv4 항목을 규칙에 맞춰 채워준다. 서브넷 생성 그 후 위에서 생성한 VPC로, 서브넷을 생성 해 준다 Priv

2023년 6월 28일
·
0개의 댓글
·
post-thumbnail

3일차. 메시지 대기열 및 추가 컴퓨팅 서비스

Ⅰ. 메시지 대기열 1. 모놀리딕 애플리케이션과 마이크로 서비스 아키텍처를 구성하는 방식에는 밀결합과 소결합이 있다. 밀결합된 아키텍처는 애플리케이션 A가 애플리케이션 B에 메시지를 직접 보내는 시스템이다. 따라서 구성 요소 하나가 고장이 나거나 변경이 되면 다른 구성요소 또는 시스템 전체에 문제가 발생할 수 있다. 따라서 소결합된 아키텍처가 더 안정적이라 할 수 있다. 소결합된 아키텍처는 특정 구성 요소에 장애가 발생하더라도 장애가 구성 요소 안에 격리되기 때문에 전체 시스템 장애로 확장되지 않는다. 즉, 애플리케이션 B에 장애가 발생하더라도 애플리케이션 A에는 중단이 발생하지 않는다. A는 B의 상태에 상관 없이 메시지를 대기열로 전송하며, 메시지는 B에서 처리될 때까지 안전하게 대기열에 보관된다. ![](https://velog.velcdn.com/images/gmlstjq123/post/6f200a0d-a9b5-4842-bb17-3a94048fab62/image

2023년 6월 23일
·
0개의 댓글
·
post-thumbnail

Karpenter

이번 포스팅에서는 Karpenter에 대해서 알아보겠다. Karpenter? > Karpenter automatically launches just the right compute resources to handle your cluster's applications. It is designed to let you take full advantage of the cloud with fast and simple compute provisioning for Kubernetes clusters. 공홈의 정의를 보면 CA를 할 때 빠르고 간편하게 프로비저닝이 가능하게 하는 기능이라고 설명이 되어있다. 실제로 CSP와 연동되는 CA를 사용하다 보면, 가장 큰 단점이 느리다는 것이다. k8s의 리소스와 CSP의

2023년 5월 27일
·
0개의 댓글
·

ArgoCD 설치(fargate)

EKS Fargate 환경 설치 가이드 EKS Fargate 간단 설치 Argocd 배포 Helm을 이용하여 배포 Profile 추가 (console 환경) namespace: argocd namespace:argocd 추가 Helm repo 추가 설치 TooManyRedirections 문제해결 > apiVersion: v1 kind: ConfigMap metadata: labels: app.kubernetes.io/name: argocd-cmd-params-cm app.kubernetes.io/part-of: argocd name: argocd-cmd-params-cm data: server.insecure: "true" server

2023년 4월 25일
·
0개의 댓글
·

EKS Fargate 간단 설치

VPC 설치 CloudFormation으로 VPC 생성 URL EKS Console에서 생성 EKS Cluster 역할 아래 링크를 참고하여 역할 생성 후 EKS Cluster에 적용 VPC 설정 서브넷 private 두개로 설정 cluster endpoint - private :private로 하여 외부에서 접근을 못하게 함. EC2(Bastion) 생성 VPC - 이전에 만든 vpc-public으로 생성 후 join inbound 추가 ( eks cluster security group에 inbound sg-ec2 추가) cli 설정 aws cli 설치 jq 설치 bash completion(skip) git 설치 Helm 설치 kubectl 설치 eksctl 설치 update kubeconfig : kubectl 설정 r

2023년 4월 25일
·
0개의 댓글
·
post-thumbnail

[AWS] ECS - Fargate (service)

1.service 생성 [경로] 클러스터 → (cluster name) 생성 클릭 시작 유형 - FARGATE 운영 체제 패밀리 - Linux 작업 정의 - (Task Definition) 플랫폼 버전 - LATEST 클러스터 - (cluster name) 서비스 - skills-svc 작업 개수 - (ECS server 개수) 배포 유형 - 롤

2023년 4월 3일
·
0개의 댓글
·
post-thumbnail

[AWS] ECS-Fargate(Task Definition)

Task Definition 생성 [경로] ECS → Task Definition → now task Definition 생성 클릭 FARGATE 선택 다음 단계 테스크 정의 이름 - skills-td 테스크 역할 - ecsTaskEXecutionRole 운영 체제 패밀리 - Linux 작업 실행 역할 - ecsTaskEXecutionRole 작업 메모리

2023년 4월 3일
·
0개의 댓글
·
post-thumbnail

[2023 기능대회 준비] 9. ECS 실습 - Fargate

실습 저번엔 EC2로 생성을 해봤으니까 이번엔 Fargate 형식으로 배포해보자. Fargate 배포가 적합한 형식은 아래와 같다. 단기간에 엄청난 CPU 연산이 필요한 상황 15분을 넘겨 Lambda 에서는 실행이 불가능한 상황 주기적으로 실행되는 스크립트 클러스터 Fargate 형식으로 진행할 것이기 때문에 네트워킹 전용을 클릭 이후 클러스터 이름만 지정하면 클러스터 생성이 끝난다. ec2 형식보다 굉장히 간편해졌다. 작업 정의 새 작업 정의 생성 클릭 ![](https://velog.velcdn.co

2023년 3월 21일
·
0개의 댓글
·
post-thumbnail

Legacy PHP 서비스 Fargate로 이사하기

PHP에 대하여 현재 저희 회사에는 영카트 기반의 서비스가 하나 있습니다. 제가 알기로는 지금으로부터 약 6년 전에 외주를 통해 만들어진 서비스입니다. 지금 회사에 합류하게 된 2022년 3월 말 기준으로, 서비스는 계속 이뤄지고 있었지만 유지보수는 거의 이뤄지지 않았다고 봐도 무방했습니다. PHP라는 언어가 이제는 국내에서 하락세를 걷고 있어서 개발자를 구하는게 쉽지도 않고, 아시는 분들은 아시겠지만 영카트의 경우 상당히 오래전에 개발된 프레임워크이기 때문에 모던하지 않은 구조를 갖고 있습니다. 과거 PHP의 전형적인 형태로 개발됐죠. 즉, 유지보수하기가 좀 까다로운 코드 퀄리티를 갖고 있습니다. 어떻기에 유지보수하기가 힘든가를 얘기해보기 전에, PHP의 특징에 대해 간략히 짚어보겠습니다. PHP의 특징 1. 인터프리터 언어입니다. js나 python과 비슷합니다. 2. 클래스 기반의

2023년 1월 27일
·
2개의 댓글
·
post-thumbnail

[AWS] ECS Task 덤프 생성 자동화 구축

1. 자동화 구성도 2. GitLab Pipeline > * package : Lambda 함수에서 필요한 파일만 압축 파일로 생성 > * configuration : Lambda 환경 변수와 예약된 동시성 업데이트 수행 env.json 파일에 환경변수로 선언한 변수명들을 모아놓고 sed 명령으로 치환한 다음, aws cli 동작할 때 env.json 파일 내용을 출력하도록 만들어서 환경 변수를 업데이트 처리 ![](https://velog.velcdn.com/images/dongdorrong/post/e

2022년 11월 22일
·
0개의 댓글
·
post-thumbnail

서버리스 / AWS의 Container Management

서버리스 > 완전관리형 서비스를 서버리스 컴퓨팅이라고 한다. 완전관리형 서비스라는 것은 개발자가 인프라(서버)를 직접 관리할 필요가 없다는 것이다. 비용효율적, 운영 효율적, 접근성과 확장성이 높다 코드수정이 적다 운영의 자동화가 가능하다 개발자는 그저 fuction만 배치하면 된다. AWS에는 Fargate, Lambda, API Gateway, Aurora Serverless 등이 서버리스다. 💡 서버리스는 직역하면 "서버가 없다"이다. 하지만 실제로는 서버가 없는 것이 아니고 특정 작업을 수행하기 위해서 컴퓨터를 혹은 가상머신에 서버를 설정하고 이를 통해 처리하는 것이 아닌 BaaS, Faas에 의존하여 작업을 처리한다는 것이다. Lambda > 개발자가 원하는 작업을 람다 함수로 만들어서 람다와 통합된 특정 리소스에 data가 들어왓을 때 함수가 실행되어 원하는 작업을 수행할 수 있다. 개발자는 기능만 구현할 뿐 지속적으로 관리하는

2022년 11월 16일
·
0개의 댓글
·

[fargate] 시간대 설정하기

AWS ECS fargate 환경에 컨테이너를 배포했을 때 그 내부 컨테이너의 시간 설정은 어떻게 해야 하는가? 정답: 컨테이너가 괜히 존재하는 것이 아니다. 도커 컨테이너 만들 때 dockerfile에 설정해주면 된다. 코드: https://ingnoh.tistory.com/131 당연한 말이긴 한데... docker와 인프라 이해 없이 무작정 fargate 를 써본 사람으로서 이 문제를 해결하려고 했을 때 앜ㅋㅋdockerfile설정하면되잖음ㅋㅋ 이라는 답이 바로 도출이 안 되었기에 기록으로 남겨 본다. 추가로, 스프링 부트 코드 내에서 설정 뭔가 인프라는 인프라로 남겨둬야 할 것 같아서 채택하지 않음. 기본 설정으로는 실행되는 컴퓨터 localtime 따라감, 그리고 docker 컨테이너의 기본은 UTC임 fargate task definition 환경 변수로 지정 가능 컨테이너가 여러개인데 그것들이 다른 시간대로 맞춰져야

2022년 10월 27일
·
0개의 댓글
·

8. AWS - 컨테이너

ㅇ 소결합 관리형 솔루션을 시스템 계층간의 중개자 중간자가 구성 요소, 계층의 장애 및 스케일링을 자동으로 처리 로드 밸런서, 메시지 대기열 ㅇ 마이크로 서비스 독립 서비스로 구성된 애플리케이션으로 SW 및 서비스를 제공, 스케일링 자율적: 각 구성 요소 서비스는 다른 서비스에 영향 주지 않고 개발, 배포, 운용 및 스케일링 가능 전문적: 일련의 기능을 제공하며 집중적으로 특정 문제 해결 ㅇ 컨테이너 서버에 설치된 운영 체제를 공유, 리소스가 격리된 프로세스 형태로 실행 환경 상관없이 빠르고 안정적, 일관된 배포 보장 반복 가능, 독립적 환경, VM보다 빠른 가동/중단 속도, 이동성, 확장성 각 마이크로서비스를 컨테이너에 구축 가능 컨테이너 EC2 인스턴스에 실행하는 것이 일반적 ㅇ Amazon ECS Docker 컨테이너 지원하는 확장성 뛰어난 고성능 컨테이너 관리

2022년 8월 1일
·
0개의 댓글
·
post-thumbnail

컴퓨팅 Part

📒 Amazon EC2 실행 중인 인스턴스 내에 있는 인스턴스 메타데이터의 모든 범주를 보려면 다음 URL을 사용 최대 절전모드로 전환하면 디스크 일시 중단을 수행하도록 신호를 보낸다. RAM의 내용을 EBS 루트 볼륨에 저장할 수 있다. EBS 루트 볼륨과 연결된 모든 EBS 데이터 볼륨을 유지한다. 인스턴스를 다시 시작할 때 EBS 루트 볼륨이 이전 상태로 복원, RAM 내용이 다시 로드, 이전에 인스턴스에서 실행되었던 프로세스가 재개, 이전에 연결된 데이터 볼륨이 다시 연결되고, 인스턴스는 해당 인스턴스 ID를 유지한다. 🔔 EC2 비용 | 상태 | 청구 내용 | |----|:----| |Pending|미청구 | |Running|청구 | |Stopping|중지 준비 중인 경우 미청구, 최대 절전모드로 전환 준비 중인 경우 청구 | |Stopped, Shutt

2022년 8월 1일
·
0개의 댓글
·