AWS14 [Lambda] 람다를 활용한 image resize 람다를 활용한 image resize 에 관한 내용은 많다 AWS 에서 자체 자습서 자료를 만들었을 정도로 대표적인 활용 방식인 것 같다. 근데 이제 내가 이를 구현하면서 마주했던 에러를 이야기 해보자한다. 문제 상황 1. 그냥 안됨 => 코드상의 문제이다, 파일 경로와 문법 실수를 유의하자 2. 무한 재귀 => 람다 트리거를 잘못 설정한 경우 s3 버킷을 하나로 사용하는데 조건을 이미지가 업로드 시로 통으로 걸어버리면 이미지 리사이징한 것을 올릴 때에도 트리거가 발동되어 무한으로 이미지 리사이징을 즐길 수 있다 내가 진짜 골치 아팠던것은 3. 이미지 리사이징이 진짜 가끔식 되고 대부분의 케이스에서는 제대로 동작하지 않는 경우였다. 코드는 아무리 뜯어봐도 문제가 없고 계속 테스트 해보다 보면 간간히 한 .. TIL/삽질 기록소 2022. 11. 2. [BE] preSignedUrl을 활용한 업로드 다운로드 구현 중 고민 [BE] 이미지 업로드, 다운로드 시의 고민 (feat. preSigned URL) — Registro (tistory.com) [BE] 이미지 업로드, 다운로드 시의 고민1 (feat. preSigned URL) 이미지나 동영상을 업로드하고 다운로드하는 경우가 많음 이러한 작업을 서버단에서 처리해줄 때 EC2에 띄워져 있는 서버에 이미지를 받아서 이를 S3에 저장하는 방법이 있을 것이고 유저가 바 lackofwillpower.tistory.com 이전에 작성했던 글을 내용을 실제로 구현하면서 느꼈던 고민과 과정을 기록하고자한다. 우선 구현하면서 느꼈던 고민에 대해서 이야기해려고 한다. 정확히는 나의 경우는 게시글과 이미지/동영상 등을 처리할 두 테이블을 따로 만들어 게시글 하나에 여러개의 이미지/동영상.. TIL/BackEnd 2022. 7. 31. [BE] 이미지 업로드, 다운로드 시의 고민 (feat. preSigned URL) 이미지나 동영상을 업로드하고 다운로드하는 경우가 많음 이러한 작업을 서버단에서 처리해줄 때 EC2에 띄워져 있는 서버에 이미지를 받아서 이를 S3에 저장하는 방법이 있을 것이고 유저가 바로 S3에 이미지를 업로드하고 받아오는 방법이 있을 것이다. 그냥 바로 성능적인면을 보면 상식적으로 생각하면 두번 이동해야하는 방법보다 한번에 바로 업로드하는 방법이 효율적일 것이다. 또한 서버가 이미지가 들어오는 트래픽을 처리해야 하는 점에서 서버에 부하가 걸리는 것까지 비용이 될 것이다. 그렇다면 바로 S3에 저장하는 것이 무조건 옳은 것인가?? 라고 하면 걱정이 되는 부분은 보안이다. S3에 접근하기 위해 AWS 관련된 키라던지 보안적으로 위험한 요소를 클라이언트 쪽이 들고 있게 될 것이다. 이러한 점을 보완하기에 .. TIL/BackEnd 2022. 7. 26. [AWS] AWS 볶음밥 11 CloudFront - 엣지 캐싱 사용자가 요청시 처음에는 원래 데이터가 있는 곳(S3 버킷이나 서버 등)에서 가져오지만, 자주 쓰는 데이터를 CloudFront에 저장해두고 추후의 요청시에는 CloudFront에서 데이터를 제공한다 => 지연 시간 감소, 보안 강화 글로벌 콘텐츠 전송 네트워크(CDN: Content Delivery Network) WAF, Shield와 결합 정적 또는 동적 컨텐츠 캐싱 내장된 보안 기능 요청이 최적의 엣지 로케이션으로 라우팅되기에 지연시간, 비용 측면에서 이득 TIL/AWS 2022. 7. 22. [AWS] AWS 볶음밥10 (서버리스) 서버리스란 서버가 없는게 아니라 서버관리를 AWS가 해준다 즉 프로비저닝하거나 관리할 인프라가 없는 것 종량제 요금 소비 단위에 따라 자동으로 크기 조정 (AutoScaling) 내장된 보안, 고가용성 컴퓨팅 서버리스 아키텍처 게임 개발 시 AWS Lambda를 통한 서버리스 아키텍처 활용하기 | Amazon Web Services 한국 블로그 유지관리가 아닌 개발에 집중할 수 있음 소결합되고 확장성이 뛰어난 워크로드 생성 총 소유 비용이 절감된다 Amazon API Gateway 애플리케이션을 위한 진입점 생성 수천건의 동시 API 호출 처리 인터넷 연결 또는 내부 트래픽만 선택 여러 마이크로 서비스를 위한 통합 API 프론트엔드를 생성 WAF 와 연동되어 DDoS 보호 및 제한 기능 제공 벡엔드에 대.. TIL/AWS 2022. 7. 22. [AWS] AWS 볶음밥 9 (자동화) 배포 자동화가 왜 필요한가? 규모가 커질수록 배포 자동화가 필수적 EC2 인스턴스가 50개라면 일일이 다들어가서 수정 vs 자동으로 해줌 AWS Elastic Beanstalk 호스트, OS, 언어 인터프리터, 어플리케이션 서버, HTTP서버 까지 제공 및 관리 즉 사용자 대신 어플리케이션 스택을 관리 CloudFormation 코드형 인프라(IaC) 아키텍처 템플릿 - JSON, YAML 로 만듬 (코드), 코드이기에 깃허브, 코드 커밋 등 활용 가능 => CloudFormation 엔진에 보내면 아키텍처 스택(인프라의 논리적인 모습)을 만들어줌 => 스택을 활용해서 인프라 구축 복제, 재배포 및 용도 변경 인프라 및 어플리케이션에서 버전 관리 제어 드리프트를 탐지 - 스택으로 인프라를 만든 후에 보안.. TIL/AWS 2022. 7. 22. [AWS] AWS 볶음밥8 (컨테이너) 컨테이너에서 실행되는 비율 30% 정도 그중 90% 이상이 Docker Kubernetes도 늘고 있음 점점 늘어날 것으로 예상됨 마이크로서비스 밀결합 - 각각의 웹서버가 애플리케이션 서버들과 다들 연결되어 있는 상태, 복잡함, 새로운 서버 연결하려면 다 연결해줘야함 => 소결합으로 만드는 것이 훨씬 안정적 ELB(실시간, 동기성 어플리케이션)나 SQS (비동기성, 배치성 어플리케이션에 사용)를 사용해서 중간에서 트래픽 처리해주는 것 모놀리식 포럼 어플리케이션 = 각각의 역할을 하는 것을 한 어플리케이션에 넣는 방식, 일부 수정시 전체 부분 수정해야 하는 불편함 있음 마이크로서비스 포럼 어플리케이션 = 역할별로 개별 어플리케이션으로 구성하고 API 형식으로 통신하는 방식 자율적, 전문화 가능 컨테이너 코.. TIL/AWS 2022. 7. 22. [AWS] AWS 볶음밥7 (모니터링, 스케일링) 모니터링을 왜 하는가? 운영 상태 : 운영 가시성 (제대로 운영되고 있는지?) 및 인사이트 확보 어플리케이션 성능 리소스 사용율 보안 감사 를 보고 서비스를 잘 운영하기 위해 Amazon CloudWatch 지표 및 로그를 거의 실시간으로 수집 모니터링 데이터를 한 곳에서 엑세스 경보 생성, 알림 전송 주요 기능 수집 모니터링 대응 분석 예를 들어 데이터를 수집하고 리소스의 사용률을 모니터링하다가 특정 수치 이상을 넘으면 이벤트 발생시켜 스케일링 등의 대응할 수 있음 로그 유형 Aws CloudTrail - 사용자 활동 및 API 사용량을 추적 VPC Flow Logs - 네트워크 인터페이스에서 송수신되는 IP 트래픽에 대한 정보를 수집 사용자 지정 로그 - 애플리케이션 인스턴스에서 생성된 사용자 지정 .. TIL/AWS 2022. 7. 21. [AWS] AWS 볶음밥6 (스토리지) 클라우드 스토리지 블록 스토리지 원시 스토리지 데이터가 관련 없는 블록의 배열로 구성 AWS 에선 EBS ex) 하드 디스크, 스토리지 영역 네트워크(SAN), 스토리지 어레이 파일 스토리지 파일 시스템이 관련 없는 데이터 블록 관리 네이티브 파일 시스템이 디스크에 데이터를 배치 AWS 에선 EFS, FSX ex) 네트워크 연결 스토리지(NAS), 어플라이언스, 윈도우 파일 서버 객체 스토리지 데이터, 데이터 속성, 메타 데이터, 객체 ID를 캡슐화하는 가상 컨테이너를 저장 AWS는 S3 ex) Ceph, OpenStack Swift Amazon S3 내구성이 뛰난 객체 스토리지 솔루션 [파일+ Metadata(크기, 속성) +Key(URL 등)] => 객체 하나라도 바뀌면 다 새로 저장 => 정적 데이.. TIL/AWS 2022. 7. 21. [AWS]AWS 볶음밥5 (데이터베이스) Amazon RDS(Amazon Relational Database Service) Amazon Aurora Amazon RedShift Amazon ElasticCache Amazon KeySpaces 관계형 데이터베이스 비관계형 데이터베이스 데이터 스토리지 행과 열로 이뤄진 테이블 키 값, 와이드 컬럼, 그래프, 문서 또는 기타 모델 스키마 고정 동적 예시 Amazon RDS, RedShift, Aurora DynamoDB, ElasticCache 관계형 데이터베이스 데이터는 테이블로 구분 고도로 정형화됨 관계는 키를 통해 설정됨 데이터 정확성 및 일관성을 제공 엄격한 스키마 규칙 및 데이터 품질 적용 필요 과도한 읽기/쓰기 용량 필요X 비관계형 데이터베이스 수평 스케일링 해야함 데이터가 기존 스키마.. TIL/AWS 2022. 7. 21. [AWS]AWS 볶음밥4 (컴퓨팅) AWS 클라우드 컴퓨팅 발전사 물리적 onPromise 서버 => 가상화 (Amazon EC2) => 컨테이너화 (Amazon Elastic Container Service) => 서버리스 (AWS Lambda) => 서버리스 컨테이너화 (AWS Fargate) => 특화 프로세서 (AWS Gravition 프로세스) EC2 인스턴스 AWS의 가상서버다 생성 과정 AMI(Amazon Machine Image)를 사용해서 OS를 정함 사전 구축(AWS가 제공), AWS MarketPlace 자체 생성 Instance Type : FGAS (Family,Generation,Attribute,Size)로 표기 ex) t3a.large EBS: 물리적으로 떨어져 있는 Storage 서버, 네트워크로 연결, 데이.. TIL/AWS 2022. 7. 21. [AWS] AWS 볶음밥3 (네트워크) CIDR(Classless Inter Domain Routing) 주소 범위 지정, /뒤의 숫자 만큼의 비트를 고정 중첩 허용X ex) 0.0.0.0/0 = 모든 IP 10.22.33.44/32 = 10.22.33.44 10.22.33.0/24 = 10.22.33.* 10.22.0.0/16 = 10.22.*.* 공인 IP 주소는 인터넷을 통해 연결할 수 있음 PIP: ec2 만들 때 자동 생성 => ec2 인스턴스를 껏다 킬 때 IP가 바뀔 수 있음 EIP(Elastic IP): 고정 공인 IP 사설 IP 주소는 인터넷으로 엑세스할 수 없음 VPC(Virtual Private Cloud) 원래 모든 가용 영역을 포함해서 생성된다 리전 내에 생성된다 격리의 단위 => VPC가 다르면 통신이 안됨 고가용성을.. TIL/AWS 2022. 7. 20. 이전 1 2 다음 반응형