라벨이 aws인 게시물 표시

AWS 리소스를 활용한 Batch 작업 : AWS Batch(EC2) vs Lambda & Eventbridge(구 Cloudwatch)

AWS에서 배치 프로세싱을 구현하는 방법은 batch를 이용하는 방법 lambda를 이용하는 방법 이 있다. Batch를 이용하는 방법 AWS Batch -> AWS EC2 Instance를 의미한다. 이 방법은 ec2를 사용하기 때문에 완전한 Serverless는 아니다. AWS Batch가 Batch 작업을 돌리기 위해 EC2 인스턴스를 Spin up 한다. * live 상태로 만듬을 뜻함 문제는 배치 작업을 하지 않을 때에도 EC2의 최소 공간을 live 상태로 유지해야한다. 이는 배치 작업을 하지 않을 때에도 돈이 나간다는 것을 의미하고 때문에 다음의 방법이 보다 효율적이다. Lambda를 이용하는 방법 Cloudwatch( -> EventBridge )가 스케줄링 엔진으로서 작동한다. AWS Lambda를 Trigger한다. ( cron trigger ) 1. AWS EventBridge console pannel에서 스케줄링 엔진 rule을 추가한다. 2. lambda function을 구현한다. 견고한 배치 작업을 만드는 방법 testing worker chain - 어떤 에러가 발생하는지 - worker chain이 끝까지 도달하는지 - edge 케이스 테스팅을 통해   끝나지 않는 무한 루프를 도는 runaway worker chain,   시작되지 않는 worker chain 방지한다.    무한 루프를 돌 경우 높은 aws bill이 나올 수 있음. retry attempt 조정 asynchronous invocation에서 retry attempt를 0으로 세팅하기. 기본값은 2이다. -> batch lambda가 fail 하더라도 2번 더 실행됨. -> 같은 유저에게 메일이 3번 갈 수도 있음. unprocessed items 처리 가장 요청이 많이 들어오는, 바쁜 production환경에서도 성공적으로 배치 작업이 수행할 수 있게 concurent worker chains 튜닝

AWS RDS를 고려할 때 미리 확인하면 좋을 옵션들

 IOPS HDD, SSD 와 같은 정보 저장 장치를 벤치마킹 하는데 사용되는 성능 측정단위. 벤치마킹 프로그램에 따라 값이 달라진다. 벤치마킹 요소는 다음과 같다. - 임의 접근( Random Access ) 읽기/쓰기 - 순차 접근 ( Sequential Access ) 읽기/쓰기 - 벤치마크 프로그램의 쓰레드 개수 - 벤치마크 프로그램의 큐의 크기 - data block 크기 - 읽기/ 쓰기 비중 vCPU 가상 CPU의 개수. 정확한 물리적 스펙은 모르겠음. Storage SSD Magnetic  Provisioned IOPS SSD Multi-AZ 옵션 AWS RDS Multi-AZ 옵션으로 DB 서버를 동기화(Synchronous) 구성하면 특정 가용 영역(AZ)에 장애가 발생해도 다른 가용 영역에 복제된 데이터베이스를 바로 사용할 수 있도록 시스템이 자동 대체(Failover)되어 고가용성을 유지할 수 있습니다. -> 즉, 스탠드바이 시스템을 하나 더 만들어서 알아서 관리해주겠다는 얘기다. -> 더 해주겠다는거니까, 더 비싸다. 방금 간단하게 Multi-AZ 옵션만을 조절해서 요금을 비교해봤는데 <Multi-AZ를 쓸 경우> Amazon RDS PostgreSQL 인스턴스 비용 (monthly) = 107.31 USD 스토리지 요금 (monthly) = 8.28 USD 월별 총비용 =  115.59 USD <Single-AZ를 쓸 경우> Amazon RDS PostgreSQL 인스턴스 비용 (monthly)  = 53.655 USD 스토리지 요금 (monthly) = 3.93 USD 월별 총비용 : 57.59 USD AZ는 하나의 데이터 센터가 예상치 못하게 동작을 못할 때를 대비해 stand by로 운영되는 별개의 데이터 센터이다. AWS region에 동일한 파워, 네트워킹, 연결성을 보장한다. AWS RDS VS DBMS On EC2 AWS를 이용하여 DB를 운영할 때는 다음과...

AWS Lambda 개념, 유스케이스

AWS Lambda 람다는 무엇인가? 람다 자체로 이해하기보다는 EC2와 비교해서 보는 것이 더 이해하기 쉽다. EC2 Computing과 다른 형태의 Computing 자원이다. EC2는 사용자가 임의로 환경을 커스터마이징하여 Computing서버로서 사용할 수 있다. Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 한다. 개발자 입장에서는 서버 없이 쓸 수 있어서 serverless computing의 대표 사례이다. 람다 특징 Lambda는 필요 시에만 함수를 실행한다. 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 확장이 가능. 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되지 않는다. 꽤나 합리적일 것 같지만 트래픽 및 요청이 많은 비즈니스 로직에 람다를 쓰면 요금이 많이 부과될 수 있기에 잘 판단해야한다.  코드 용량이 최대 250MB 이다. 함수 실행 시간은 최대 15분이다. 첫 함수 호출시 Cold Start로 인한 지연시간이 발생한다. 언제 쓸 것인가 쓰는만큼 비용이 나간다는 양날의 칼을 가지고 있다. 때문에 트리거가 자주 일어나는 로직에 람다를 쓰기보다는 특정한 조건에만 실행시키는 경우에 유용하다. 서버 띄우지 않고 간단한 코드를 실행시키고 싶은 경우  -> 배치 작업   특정 주기로 코드를 실행시켜야 하는 경우                  -> 스케줄링 트리거가 실행될때만 코드를 실행시키고 싶은 경우       -> 이벤트 람다를 더 잘 활용하려면 아마존에서는 다음과 같은 선수 지식을 요구한다. Linux OS 및 명령어뿐만 아니라 프로세스, 스레드 및 파일 권한 과 같은 개념이 필요 클라우드 개념 및 IP 네트워킹 개념(프라이빗 및 퍼블릭 네트워크용) IPC(프로세스간 통...

이 블로그의 인기 게시물

실무진 면접 경험으로 정리하는 백엔드 (1) : 에듀 테크 기업 면접

Blogger 커스터마이징 : CSS 수정 (sticky-header)

Intel 14th gen CPU의 칩 충돌 사태와 해결 방법