Inflearn brand logo image

인프런 커뮤니티 질문&답변

ehddbs452100님의 프로필 이미지
ehddbs452100

작성한 질문수

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

배치 처리, 시스템 종결의 서막💀

배치 람다 or ec2

작성

·

90

·

수정됨

1

웹/배치 리소스 사용 부분에서 배치는 필요 할 때만 실행이된다고 했는데 예전에 공공API를 한번 호출 할 때 오래 걸렸던걸로 기억이 난다.

 

외부API를 1번 호출 할 때 10개씩 가져오는데 약 1분이 걸린다면 1년치 데이터(약 40만건)을 적재를 했어야했다. AWS를 잘 모르지만 람다에서 함수 호출 1번 할 때 최대 15분이라 한번 배치를 돌려서 40만건을 쌓을려면 람다를 도입하기 힘들다고 판단했다. 필요 할 때만 이용하는 람다가 이점이긴하지만 1년치 데이터를 쌓는 부분에서 고민이된다. 아니면 람다를 반복 호출하는게 맞는지... 공공API 1번 호출 할 때 데이터 10건이라 데이터 약 40만건 쌓을려면 4만번 호출한다.

그래서 EC2를 도입했었는데, 1년치만 쌓을 때 EC2를 쓰고 그 이후에는 람다를 도입하는게 맞을지 궁금하다.


(반말 죄송합니다ㅠㅠ)

답변 1

1

KILL-9님의 프로필 이미지
KILL-9
지식공유자

[KILL-9@system]: 질문 수신됨
$ cat /var/log/appreciation.log

첫 질문 너무 소중하고 고맙다.
반말이 기본이다. 편하게 킬구형이라 불러라.
존댓말은 `rm -rf /communication/respect/*` 시전한다.
$ analyzing_user_question.sh --deep-parse

질문자의 질문 해석 중...
[■■■■■■■■■□□□□□□□] 57%

>>> 요약 추출 중...
>>> 구문 분석 중...
>>> 의도 파악 중...

질문 분석 프로세스 매핑:
1. 기존 강의 내용에 대한 의도 재확인 중: "웹/배치 리소스 사용 부분에서 배치는 필요 할 때만 실행이된다고 했는데"

$ echo "웹/배치 리소스 사용 부분에서 배치는 필요 할 때만 실행이된다고 했는데" 구문 분석 중..."

$ sudo memory --search="배치 리소스 사용" --context=full

잠깐만 기다려라. 내 강의 기록을 검색하고 있다. 금방 돌아와서 정확한 답변을 처형하겠다.

 

$ kill9_response --format="analysis_complete"


[분석 결과 출력]
그렇다. 너의 말대로 람다는 15분 제한이 있어 대용량/장기 배치 작업에는 적합하지 않다. 필요할 때만 실행하고 리소스를 반환한다는 관점에서 람다를 떠올린 것은 좋은 첫 발걸음이다.

너의 말대로 EC2도 나쁘지 않다. 1년치 데이터를 다 쌓고 나서 자원을 반환하는 것이 번거롭다는 점이 고민인 것으로 보인다.

$ ls -la /aws/batch_solutions/
>>> 대안 검색 중...

더 효율적인 방법이 있다. EC2 말고도:
- AWS Batch: 배치 워크로드에 최적화된 서비스
- Fargate: 컨테이너 환경에서 서버리스로 작업 실행
- ECS/EKS Job: 쿠버네티스/컨테이너 작업으로 실행

보통 실무에서도:
1. 컨테이너 기반으로 필요할 때만 리소스를 사용하게 하거나
2. 배치 전용 서버를 따로 두어 항상 운영하기도 한다

$ sudo recommend --final
한 가지 방법만이 정답은 아니다. 사용 환경, 배치 실행 빈도, 데이터 양에 따라 적절한 방법을 선택하라.

$ sudo analyze --situation="현재 상황" --realistic
감히 내가 너의 상황을 미루어 짐작해보자면, 당장 적용하고 싶다면 그냥 간편하게 EC2로 가라. 별도로 컨테이너 구성하거나 AWS의 다른 서비스를 알아보는 것이 부담된다면 말이다. 완벽한 솔루션보다 지금 바로 작동하는 솔루션이 더 가치 있을 때가 있다.
ehddbs452100님의 프로필 이미지
ehddbs452100

작성한 질문수

질문하기