게시글
질문&답변
2024.04.09
ECS, LightSail 선택 고민
안녕하세요~ Lightsail, ECS 각각 얼마나 잘 아는지가 매우 중요한 선택 기준 이 될 수 있다고 생각해요. 만약 이제 막 새로 시작하는 서비스여도 ECS를 이미 잘 아신다면 ECS로 시작하는게 더 좋다고 봐요. ECS를 잘 안다면 ECS로 배포하는게 Lightsail 대비 드라마틱하게 시간이 늘어나지 않거든요. 하지만 빠르게 시제품을 만들거나 사이드프로젝트를 하면서 이것저것 배워가는 시기라고 하면 더 중요한 부분에 학습 시간을 투자하는게 좋겠죠. (디비 설계, 백엔드, 프론트 코드 등)
- 0
- 1
- 61
질문&답변
2024.04.05
lightsail instance를 종료해도 서버를 연결된 상태로 유지하려면 어떻게 해야 할까요?
안녕하세요~ 강의 계속 보시면 pm2로 배포하는 방법 나옵니다! pm2 쓰시면 터미널이 끊기고 나서도 계속 돌아갑니다
- 0
- 1
- 62
질문&답변
2024.03.10
await 관련해서 질문드릴게 있습니다!!
A 가 어떤 함수이죠?
- 0
- 2
- 94
질문&답변
2024.03.05
npm run dev 실행 시 에러 발생
redis를 먼저 실행해줘야 합니다! 연결할 redis가 없어서 발생하는 문제입니다
- 0
- 2
- 147
질문&답변
2024.03.04
npm run dev 실행할 때 오류가 발생합니다.
npm run dev 실행하실 때 package.json이 있는 파일 경로에서 실행하셔야 합니다
- 0
- 1
- 100
질문&답변
2024.03.02
deploy.yml 실행이 안되네요.
이렇게만 봐서는 제가 도와드릴 수가 없어요. 로그를 확인해보시길 바랍니다
- 0
- 1
- 85
질문&답변
2024.02.29
혹시 수업 자료가 제공되나요?
따로 공개하고 있지는 않습니다. 강의 특성상 코드가 많지 않을뿐더러 화면 캡처보다 직접 타이핑 하시면서 따라해보시는게 학습에 훨씬 좋다고 생각합니다!
- 0
- 1
- 93
질문&답변
2024.02.25
ECS Launch Type 고민 : EC2 vs Fargate
그렇게 하는게 더 좋을 수도 있습니다. 하지만 전에 답변드렸듯이 3초 vs 3분은 배포 과정에서 큰 의미가 없습니다. 수십분이 걸리는게 아닌 이상 성공적으로 CICD 파이프라인이 정상적으로만 가동되면 됩니다. 그리고 task 배포가 3분까지 걸리지 않을거에요. npm install, test, docker build, docker push 이 가정들이 보통 더 걸릴거에요. 그리고 가격면에서 그런 차이가 있지만 그것도 단순 1:1 비교는 어려워요. 저도 구체적으로 측정을 해보지는 않아서 확실하게 말 할 수는 없지만 EC2 1vCPU 가 Fargate 1vCPU보다 성능이 떨어질 수도 있습니다. 제가 알기로 fargate에서 할당된 CPU, memory는 task가 온전하게 사용되는 리소스이고 EC2는 운영체제, ECS 데몬 등 기본으로 돌아가는걸 고려하면 실제 사용되는 리소스는 약간 줄어 들 수 있어요. 체감상 Fargate의 0.5vCPU가 Lightsail 1vCPU보다 더 성능이 좋았던적이 있었어요. (구체적인 벤치마킹은 해보거나 찾아보셔야 할듯 합니다.) 그리고 비율로 보면 가격 차이가 커 보일 수 있는데 절대적으로 보면 유의미한 차이가 아닐 수도 있어요! 일반적인 백엔드를 배포하시는거라면 서버 비용이 그냥 절대적으로 낮게 나올거거든요. 15만원 낼거 10만원 낼 수는 있어요. 하지만 보통 데이터베이스 비용이 훨씬 많이 나오거든요 (보통 10배 이상). 그래서 백엔드 비용 최적화가 큰 의미가 없을 수도 있어요. 다만 spike가 발생했을 때 autoscale로 대응할 수 있느냐는 중요하겠죠. 비용을 떠나서 서버거 죽으면 안되니깐요. 저는 개인적으로 ECS 비용이 백만원 단위를 넘어가지 않는다면 EC2 launch type은 고려하지 않을듯 해요. 그리고 백엔드 서버만으로 ECS 비용이 백만원 넘어가면 이미 회사는 돈이 넘쳐날겁니다 ㅎㅎ 서버는 그냥 최대한 신경 안써도 되는게 좋아요. 그런면에서 조금이라도 변수를 줄이기 약간의 비용이 추가되더라도 serverless를 쓰는게 좋다고 생각합니다. 즉, 상황에 따라서 선택하시면 됩니다! 서버 리소스를 많이 사용하는 서비스일 수도 있으니깐요
- 1
- 2
- 446
질문&답변
2024.02.25
ECS 의 Service 가 여러개인 경우, Load Balancer 의 갯수와 비용
https://www.inflearn.com/questions/1187855/comment/320671 여기에 답변 남겼습니다!
- 0
- 1
- 56
질문&답변
2024.02.24
ECS 의 Task 업데이트 속도 문제
이건 ECS의 문제가 아니고 Fargate를 쓰느냐 EC2 같은 VM을 쓰느냐 차이에요. 배포 시간이 다소 느려져 보이지만 serverless fargate의 장점이 전 더 크다고 봅니다. 쿠버네티스로 하면 당연히 빨라요. 이미 여유 서버 리소스를 부여한 상태자나요(EC2로 한것과 동일한 설정)? 쿠베에서 클러스터를 만드실 때 노드를 보통 여유 있게 설정합니다. 예를 들어 3개의 컨테이너만 돌릴거지만 9개의 컨테이너까지 돌릴 수 있도록 여유 있게 노드를 설정했다고 생각해보죠. 그러면 9개까지는 사실상 즉시 scale up이 됩니다. 이미 리소스가 확보되어 있으니깐요. 하지만 그 이상 scale 해야한다면? 그 때는 클라우드에서 쿠베 설정하실 때 노드를 최대 몇개까지 확장 가능하도록 설정을 하실건데요. 이 노드가 추가 되면 비슷하게 느려집니다. 노드를 돌릴 새로운 VM을 확보하는거니깐요. 그런데 잘 생각해보면 빠르게 auto scale이 되기 위해서는 결국 노드에 여유 리소스를 확보해둬야 하자나요? 이건 autoscale 개념과 모순되는 행위입니다. 컨테이너가 안돌아갈뿐 리소스 비용을 내고 있자나요. auto scale을 하는 목적이 애초에 비용 최적화란 말이죠. 즉, 여유 리소스 환경에서 auto scale이 이루어지는건 일반적으로 큰 의미가 없습니다. EC2 launch type을 이용하게 되면 주어진 리소스 안에서는 빠르게 배포가 됩니다. 그런데 개발할 때야 3분이면 개발 못할정도로 너무 길지만 일반적으로 배포할 때 이정도 시간 차이는 큰 의미가 없어요. 어짜피 테스트 코드 돌리고 프러덕션 빌드 등등 하면 이정도 시간을 먹게 되죠. 하지만 상황에 따라서 이런 이점은 있을 수는 있어요. micro service들을 돌리는데 서비스 A에 부하가 많이 갔다가 B로 부하가 넘어갔다. 예를 들어 A 컨테이너를 10개에서 3개로 줄이고 B를 3개에서 10개로 늘리고. 이런식으로 주어진 리소스 안에서 컨테이너들이 자주 교체되면 EC2 launch type을 고려해볼 수 있어요. 하지만 MSA를 하더라도 경험상 이렇게 부하가 한쪽에서 다른 쪽으로 넘어가는 경우는 극히 드물어요. 보통은 비례합니다. 예를 들어 A가 컨테이어 3개 필요할 때 B는 1개면 된다. A가 부하를 많이 받아서 9개 되면 B는 어느정도 비례해서 3개 정도이면 되는거죠. 즉, scale up할 때 보통 모든 서비스들이 scale up하고 scale down할 때는 보통 모두 같이 내려가요. 즉, 주어진 리소스 안에서 서비스끼리 리소스가 왔다갔다 하는 경우는 매우 드뭅니다. 만약 이런 예외라면 EC2 launch type을 고려할 수 있을듯 해요. 하지만 VM은 관리포인트가 늘기도 하고 실무적으로 이런 경우는 드물기 때문에 전 왠만하면 fargate를 쓸듯합니다.
- 1
- 1
- 84