AWS
AWS Private Subnet S3 Data Transfer 비용
AWS Private Subnet S3 Data Transfer 비용
2024.11.05기존의 Private Subnet에서 동작하는 EC2와 Lambda 리소스들은 프로세싱을 작업을 위해서 S3에서 객체를 다운로드하고, 후처리 작업을 한다. 나는 이때 Compute Resource인 EC2와 Lambda에는 Data Transfer(이하 DT) 비용이 발생하지 않는 것으로 알고 있었다. 하지만 내 생각은 틀렸고 개선할 부분을 찾을 수 있었다. 우선 기존 아키텍처는 아래와 같다. 요청의 흐름은 다음과 같다. 1. Compute Resource -> Nat Gateway2. Nat Gateway -> Internet gateway3. Internet Gateway -> Internet4. Internet -> S35. 역순 이때 나는 S3는 같은 리전의 서비스가 접근할 때는 DT가 발생하지..
Aws Lambda 파일 시스템의 필요성
Aws Lambda 파일 시스템의 필요성
2024.10.24업무를 하다보니 파일을 읽어들이고 데이터를 생성하는 Lambda가 필요해졌다. S3에서 파일을 가져오는 방식으로 설계했지만 실패하고 결국 파일 시스템을 사용하게 됐다. 그 과정에서 생긴 이슈와 내가 놓친 부분들을 보려고 한다. Lambda와 S3 네트워크 나는 vpc endpoint gateway 유형을 사용하고 있었기에 Lambda에서 S3를 호출할 경우 Public 네트워크가 아닌 내부 네트워크를 이용하게 된다. 나는 이점에서 빠른 데이터를 다운로드 받을 수 있다고 생각했다. 하지만 난 틀렸다. 실제로 S3는 100Gbps를 지원한다. 내가 간과한 것은 Lambda의 네트워크 대역폭이었다. 실제로 AWS 측에서 세부적으로 밝힌 것은 없지만, 커뮤니티들을 살펴봤을 때 Lambda의 메모리를 올렸을 때 ..
저렴하게 실시간 분석 아키텍처 만들기 with aws, terraform
저렴하게 실시간 분석 아키텍처 만들기 with aws, terraform
2024.10.10서비스를 운영하며 수집되는 데이터는 방대하고 이러한 데이터들 속에서 어떻게 인사이트를 얻어서 서비스를 발전시킬 수 있을까?? 항상 진행하고 싶은 업무 중의 하나이다. 인사이트를 얻기 위해선 데이터를 분석할 수 있는 아키텍처가 필요하다. 이러한 아키텍처에서 요구되는 기능은 보통 아래와 같다. 1. 데이터 수집2. 데이터 처리 및 변환3. 변환 데이터 저장4. 데이터 분석 여기서 해당 기능들을 사용할 수 있는 다양한 서비스들을 사용할 수 있다. 하지만 나는 최대한 저렴하게 이용할 수 있는 아키텍처를 구성해보자.아키텍처 가격은 저렴하고, 확장성 있게 만들어보려고 한다. 그래서 나는 아래와 같이 선택했다. 1. 데이터 수집 -> Kinesis Data Firehose PUT API2. 데이터 처리 및 변환 ..
Terraform 모듈로 반복 리소스 선언 줄이기
Terraform 모듈로 반복 리소스 선언 줄이기
2024.10.09나는 Terraform(이하 테라폼)으로 cloud의 인프라 리소스를 관리하는 업무를 주로 맡고 있다. 테라폼은 모듈 구조를 지원하는데 활용법이 성숙도에 따라서 많이 달라진다고 느꼈다. 기존에 내가 모듈을 사용하는 방법은 여러 환경에서 환경 변수를 다르게 주입해서 리소스를 만들때 리소스 코드를 줄이기 위함이었다. 하지만 업무를 하다보니 틀은 동일하고 특정한 값만 바뀌는 리소스를 여러 개 생성하야 하는 경우가 많았다. 예를 들어서 서버리스로 서비스를 운영하는 경우 AWS 리소스인 Lambda를 주로 생성하게 된다. 그래서 나는 Lambda가 사용하는 리소스가 공통적으로 사용하는 틀을 모듈을 생성하는 방향을 생각했다. Terraform 구조 구조 자체는 간단하다. 1. 전체 리소스를 관리하는 main...
AWS S3 LifeCycle with Terraform
AWS S3 LifeCycle with Terraform
2024.09.28입사하고 빌링을 봤을 때 가장 많은 비용을 차지하는 게 S3 저장 비용이었다. 라이프 싸이클의 옵션을 알고 있었고, 비용 절감 가능성에 대해서 알고 있었다. 하지만 문제는 비즈니스의 이해였다. 객체들의 액세스 패턴을 알지 못했기에 섣불리 적용할 수 없었다. 비즈니스를 파악하고, 적용하며 얻었던 지식이다. S3 라이프 사이클 aws s3의 라이프 사이클 옵션은 aws s3 lifecycle docs에서 확인할 수 있고, 중요점만 살펴보자. 기본적으로 s3를 만들고 객체를 생성하면 Standard 객체 클래스로 생성된다. 범용성 있게 사용할 수 있는 옵션이지만 저장 가격은 높다고 볼 수 있다. (ap-northeast-2 seoul 기준 GB당 0.025USD) 그렇기에 객체 액세스 패턴을 살펴보고 가격..
Elastic Beanstalk 정복하기 - 11 (Terraform (opentofu) 활용하기)
Elastic Beanstalk 정복하기 - 11 (Terraform (opentofu) 활용하기)
2024.03.17EB 정복하기 - 1 EB 정복하기 - 2 EB 정복하기 - 3 EB 정복하기 - 4 EB 정복하기 - 5 EB 정복하기 - 6 EB 정복하기 - 7 EB 정복하기 - 8 EB 정복하기 - 9 EB 정복하기 - 10 테라폼이 유료화가 되면서, 테라폼 프로젝트에서 포그돼 Opentofu라는 프로젝트가 완성됐고 리눅스 파운데이션에 속해있다. 밑의 프로젝트는 테라폼으로 돼있지만, Opentofu로 변경해서 실행해도 무방하다. Github 레포에서 sample-code-version버전을 사용하면 된다. 테라폼은 일반적으로 모듈을 지원하는데, Github와 같이 원격 저장소에 있는 것도 사용할 수 있다. 해당 코드들은 작성자의 레포에서 임포트해서 사용한다. 실행 방법은 매우 간단하다. # 1. sample-co..