본문 바로가기

BackEnd26

[AWS] AWS Lambda의 활용 Serverless란 무엇인가?많이들 오해 하는데, 서버리스라는게 백엔드 서버가 없다는 뜻이 아니다. 우리가 직접 서버를 관리하지 않아 신경 쓸 필요가 없다는 의미로 서버리스라고 부르는 것이다.  필요한 컴퓨팅 리소스와 스토리지만 동적으로 할당한 다음, 그 부분에 대해서만 비용을 청구하는 모델이다. 사용한만큼 비용이 청구되기 때문에 매우 경제적이며 자원을 효율적으로 사용이 가능. 비용도 굉장히 저렴하다.  300원에 200만뷰 소화하기 - 서버리스 아키텍처 AWS 람다(Lambda) 활용 사례 - 로켓펀치 공식 블로그  로켓펀치에서는 기본적인 웹 서비스 외에 제휴를 통해 로켓펀치의 채용 공고를 위젯 형식으로 노출하는 경우가 있습니다. (예 : 플래텀 오른쪽 사이드바 위젯) 이런 위젯들을 운영하다 보니bl.. 2024. 11. 9.
[DB] ElasticSearch Index 설정과 텍스트 분석 Index API의 개요ElasticSearch를 할 때 가장 기초가 되는 부분이다. 물론 데이터를 삽입할 때, Index가 없으면 자동으로 생성하지만... 사실 세부적으로 검색을 튜닝하려면 Index에 대한 세부적인 설정은 필수이다. Index API는 Index를 생성하고 설정을 하는 역할을 한다. 이 때, 데이터 모델링을 진행한다. 이때, 한번 생성한 맵핑 타입은 변경할 수 없으니 주의할 것! Index 설정 요청은 아래처럼 생겼다. 크게 setting 부분과 mapping 부분 이렇게 두개로 나뉜다고 보면 된다.PUT /complex_index{ "settings": { "analysis": { "analyzer": { "korean_analyzer": { .. 2024. 11. 8.
[DB] Elastic Search의 기초 Elastic Search란?방대한 양의 데이터를, 거의 실시간에 가깝게 저장, 검색, 분석 할 수 있도록 하는 오픈소스 분산 검색 엔진이다. ELK Stack이란?Elastic Search, Logstash, Kibana 3개를 합쳐 ELK라고 부른다. 보통 로그 분석으로 사용되며, 여기서 특히 Elastic Search가 범용성이 높아 단독으로 사용되는 경우가 많다.FileBeat : 로그 파일 Logstash에게 전달하기 위한 놈Logstash : 다양한 소스의 로그 또는 데이터를 수집, 집계, 파싱하여 ElasticSearch에게 전달하는 놈ElasticSearch : Logstash로 부터 받은 데이터를 검색 및 집계하는 역할Kibana : ElasticSearch로 검색한 데이터를 GUI로 시.. 2024. 11. 7.
[개발] Docker Compose로 검색용 OpenSearch 띄우기 기본적으로 Docker가 설치되있는 환경이란 가정이다. OpenSearch는 AWS와 Elastic은 라이선스 문제로 인해 싸웠고 (내용은 AWS가 오픈 소스 코드 기여를 별로 안하면서 ELK를 가져다가 금전적인 이득을 많이 취하고 있다는 내용), 그 결과 AWS는 ElasticSearch 7.10.2 버전을 끝으로 독립적인 프로젝트인 OpenSearch를 시작했다. 이후 Elastic은 Elasticsearch를 8.x 버전으로 발전시키며 자체적으로 개발을 이어가고 있고, AWS는 OpenSearch를 별도로 유지 및 발전시켜왔다. 따라서, AWS OpenSearch(ElasticSearch)같은 AWS 자체 관리 서비스로 Elastic Search를 운용할 경우, 7.10.2까지만 쓸 수 있다. 그런.. 2024. 11. 6.
[AWS] Lambda를 이용한 Image Resizing 소스 코드는 아래에서 확인하실 수 있습니다!  GitHub - mclub4/lambda_image_resize: aws lambda로 image resizeaws lambda로 image resize. Contribute to mclub4/lambda_image_resize development by creating an account on GitHub.github.com 1. Image Resizing 작업이 필요한 이유내가 "이음" 이라는 프로젝트를 진행하고 있는데, 여기서 진행중인 공모전을 보여주는 기능도 있다. 그런데, 이 공모전 리스트를 보여줄 때, 공모전 리스트에서 대표 이미지로 공모전 포스터를 보여준다. 하지만, 문제가 이 대표 이미지가 엄청나게 큰 공모전 포스터 원본 이미지를 사용한다는 것.. 2024. 7. 7.
[대규모 시스템 설계] 동시성 처리 동시성 처리, 왜 중요할까? 동시성 처리는 대규모 시스템 설계에서 중요한 부분이다. 왜냐하면 대규모 시스템에서는 엄청나게 많은 사용자가 동시에 접근할 것이고, 그러면 여러 스레드가 동시에 한 값에 접근하는 상황이 많이 발생할 것이다. 예시로, 외국민 프로젝트에서 게시글의 조회수/추천수를 증가시키는 기능이 있다고 해보자. 이 부분은 단지 “DB로 부터 값 읽기 → 값 증가” 이 과정이다보니 Race Condition이 발생할 가능성이 매우 크다. 100명이 추천을 동시에 눌렀는데, 실제 값은 82명 정도로 100명에 못미치는 값이 될 가능성이 매우 높다.  혹시 해당 현상이 발생하는 이유는 잘 모르겠다면, 아래 운영체제 동시성에 관련된 개념을 한번 읽어보길 바란다. [OS/OSTEP] 26.threads-.. 2024. 7. 4.
[배포] Route 53 + Nginx + Certbot으로 Https 적용하기 0. 시작하기전에도메인 관련 서비스는 좋은 것이 꽤 많다. 예를 들어, DNS로는 유명한 것이 AWS Route 53이 있고, ACM 같은 것을 이용하여 손쉽게 인증서를 구입하고 적용할 수 있을 것이다. 하지만, 이런 서비스들은 꽤나 비싸다.... (Route 53은 싸긴함) 그래서 학생들도 부담없이 HTTPS를 적용할 수 있는 방법인 Route 53 + Nginx + Certbot 방법을 소개하고자 한다. 일단 ACM 같은 인증서 관리 서비스에 들어가보면, 인증서마다 가격이 천차만별이다. 왜 그럴까? 인증서도 여러가지 종류가 있기 때문이다. 인증서 종류는 크게 DV/OV/EV 3가지로 나눌 수 있다. DV : Domain Validation, 즉 도메인 소유 정보만 검증하는 인증서이다. 그래서 발급하기.. 2024. 6. 23.