현재 서비스하는 서버에는 DB에 직접 접근하지 않거나 이벤트 성으로 관리할 것들은 람다로 관리한다. 그러다보니 람다가 계속해서 늘어나는데, 각각의 람다들을 매번 콘솔에서 람다를 관리하기는 꽤나 번거롭다. 이럴 때 여러 serverless 서비스(AWS Lambda의 Event나 function)을 관리하기 위한 도구가 있다. Serverless framework인데, BE 개발만 하던 나에겐 좀 생소해서 가볍게 사용해보면서 사용법을 익혀보려고 한다. Installation 패키지 매니저로 yarn을 사용할 것이다. npm 설치, yarn 설치 sudo apt install npm sudo npm install --global yarn serverless 설치 npm install -g serverless..
최근에 여러 일이 겹쳐 오랜만에 포스팅한다. 현재 담당하고 서비스의 개발은 대부분 RDB를 사용한다. 때문에 NoSQL DB를 접할 일이 많이 없었다. 이번에 이벤트성으로 개발할 일이 생겼는데, 이 개발에는 AWS DynamoDB를 사용해보자고 했다. 선택에는 별 다른 이유는 없었는데, 이벤트성 사용하고 치울 데이터를 메인 RDB에 저장할 필요가 없다고 느껴서였다. 그러나 저런 단순한 이유를 차치하더라도, AWS DynamoDB는 충분히 좋은 DB이다. 어떤 특성이 있는지 알아보자. DynamoDB란? Amazon DynamoDB는 키 값과 문서 데이터 모델을 지원하는 서버리스 NoSQL 데이터베이스 서비스의 일종입니다. 개발자는 Amazon DynamoDB를 사용하여 소규모로 시작하여 전 세계로 규모를..
로컬 호스트 서버에서 댓글 서비스의 웹훅을 사용해야되는데 문제가 생겼다. 웹훅을 사용하기 위해 서버의 URL을 입력해야하는 상황이었는데, localhost를 입력할 수는 없으니 말이다. 그래서 중간다리로 AWS SQS를 써보기로 했다. 파이프라인은 댓글 서버 웹훅 -> AWS Lambda -> AWS SQS -> local(SQS Listener) 구조로 잡고 구현을 시작했다. 들어가기전에 SQS가 뭔지 짚고 넘어가자. Amazon Simple Queue Service (Amazon SQS)란? Amazon Simple Queue Service (Amazon SQS)는 분산 소프트웨어 시스템 및 구성 요소를 통합 및 분리할 수 있는 안전하고 안정적이며 사용 가능한 호스팅 대기열을 제공합니다. Amazon..
계속해서 쓸 곳이 생길 것 같길래 따로 분리해서 포스팅한다. 작업 환경은 Windwos 10에서 진행했다. AWS 외부에서 AWS 서비스에 접근하려면 액세스 키가 필요하다. 액세스 키 생성을 위해 AWS 로그인 후 우측 상단의 본인 계정을 클릭 한 후 보안 자격 증명을 클릭한다. 보안 자격 증명 클릭 그러면 내 보안 자격 증명 페이지에 들어와지는데 아래로 쭉 내리다보면 엑세스 키 탭이 있다. 액세스 키 만들기 버튼을 클릭한다. CLI를 사용할 것이기 CLI 선택후 다음 버튼 클릭 비밀 액세스 키를 표시한다음에 잘 저장해 두어야 한다. 이 페이지를 벗어나면 비밀 액세스 키를 다시는 볼 수 없으니 다운로드를 받아놓거나 복사를 잘 해놓자. 그리고 User > [pc 이름] > .aws 폴더 아래에 creden..
얼마전에 비슷한 주제로 글을 하나 썼었다. 위 내용은 AWS S3 SDK 1.x 버전을 기준으로 작성했었다. 왜 1.x 버전을 선택했냐를 묻는다면 별 이유가 없었다. 그냥 구글링을하다가 가장 먼저 나왔던걸 사용했었는데, 이게 의외의 곳에서 문제를 일으켰다. 로컬에선 정상적으로 동작하는데, dev 서버에 배포되면 S3 SDK 매서드들이 Access Deny 문제로 사용이 불가능해졌다. dev 서버에 default로 지정된 AWS의 credential이 있는데도, 계속해서 문제를 일으켰는데 알고보니 SDK 버전이 문제였다. https://github.com/aws/aws-sdk-java-v2/issues/1470 요약하면 eks 환경에서 디폴트로 지정된 경로의 credential을 가져올 수 없으니 SDK ..
입사 후 온프레미스 환경에서 클라우드 환경으로 넘어오면서 AWS 인프라를 많이 활용해 보고 있다. 그 중에서도 리소스를 저장하기 위해 S3를 가장 많이 사용하고 있는데, 스프링부트에서 연동해서 사용하는 법을 알아보자. 주의!! 이 글은 S3 버킷을 생성하는 부분은 따로 언급하지 않았습니다. AWS S3란? Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. 모든 규모와 업종의 고객은 Amazon S3를 사용하여 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터 분석 등 다양한 사용 사례에서 원하는 양의 데이터를..
이전 글에서 EC2 환경을 구축하고 Docker를 설치한 후 Tomcat을 통해 웹 서버를 배포까지 진행 해봤다. 그런데, EC2에 Docker를 설치 후 Dockerfile로 Build하는 과정에서 정상적으로 진행되지 않고 자꾸 프리징이 발생했다. 여기서 부터 2편을 시작해 보려고 한다. 1편과의 간격이 너무 길었지만 3편과의 간격이 더 길 수도 있다. 1. 스왑 메모리(swap memory) 적용 EC2에서 제공하는 t2.micro 인스턴스는 램의 크기가 1GB이다. 여기에 리눅스를 올리고 Docker 까지 설치하고, Docker 내부에서 Gradle 빌드까지하기엔, t2.micro의 메모리는 매우매우 부족하다, 그래서 프리징 현상이 발생하게 되고, 이를 해결하기 위해서 스왑 메모리라는 기법을 사용했..
DB가 필요해... 이직을 하기 전에는, 사내 DB를 개인용 프로젝트에 써먹었었다. 이직이 결정된 이후에 인프라를 만지작 거리려니까 DB가 문제가 됐다. 어떻게 써야할까 고민하다가 그냥 인프라 구축을 위해 띄워놓은 EC2에 MySQL 서버를 띄우기로 했다. 아쉬운 점은, 난 그동안 오라클만 써왔다는 것이다. 하지만 오라클은 유료라 과감히 버린다. (Oracle 이미지는 Docker Hub에서도 내려버렸다...) AWS EC2 / Docker 설정 및 설치 멈춰버린 인프라 관련 글에 잘 써놨다. MySQL Docker 설치 Docker Hub에 저장된 공식 이미지를 사용하면, 별도의 설치파일 없이 편하게 사용할 수 있다. docker pull mysql:latest 설치 후 아래와 같이 뜨면 정상적으로 설..
- Total
- Today
- Yesterday
- OpenFeign
- java
- 스프링부트
- ChatGPT
- OpenAI
- 티스토리챌린지
- elasticsearch
- 오블완
- serverless
- CloudFront
- AWS
- AWS EC2
- lambda
- openAI API
- Spring
- Elastic cloud
- AOP
- cache
- EKS
- GIT
- JWT
- Log
- MySQL
- springboot
- docker
- terraform
- S3
- Kotlin
- 후쿠오카
- 람다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |