최근에 여러 일이 겹쳐 오랜만에 포스팅한다. 현재 담당하고 서비스의 개발은 대부분 RDB를 사용한다. 때문에 NoSQL DB를 접할 일이 많이 없었다. 이번에 이벤트성으로 개발할 일이 생겼는데, 이 개발에는 AWS DynamoDB를 사용해보자고 했다. 선택에는 별 다른 이유는 없었는데, 이벤트성 사용하고 치울 데이터를 메인 RDB에 저장할 필요가 없다고 느껴서였다. 그러나 저런 단순한 이유를 차치하더라도, AWS DynamoDB는 충분히 좋은 DB이다. 어떤 특성이 있는지 알아보자. DynamoDB란? Amazon DynamoDB는 키 값과 문서 데이터 모델을 지원하는 서버리스 NoSQL 데이터베이스 서비스의 일종입니다. 개발자는 Amazon DynamoDB를 사용하여 소규모로 시작하여 전 세계로 규모를..
이 문제는 아마도 모든 AWS JAVA SDK 1.0 에서 일어나는 문제일테니 주의가 필요하다.. S3 SDK를 처음 서버에 적용할 때도 발생했던 문제였는데, SQS 적용 과정에서도 똑같은 문제를 겪었다. 분명 로컬에서 테스트할 때는 잘 동작하는게, dev서버만 올라가면 제대로 동작하지 않는 문제가 있었다. 서버가 배포되는 과정에서 아래와 같은 WARNING을 띄웠다. { "@timestamp": "2023-08-04T09:26:57.140Z", "message": "Ignoring queue with name '[큐이름]': The queue does not exist or no access to perform action sqs:GetQueueUrl.; nested exception is com.am..
로컬 호스트 서버에서 댓글 서비스의 웹훅을 사용해야되는데 문제가 생겼다. 웹훅을 사용하기 위해 서버의 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의 기능만 제공하는 SDK를 알기 전에 있었던 일이다. build.gradle 설정을 아래와 같이 했다. implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' 의존성만 걸고 로컬에서 바로 실행을 한다면, 아마 gradle 빌드조차 되지 않을 것이다. yaml 프로파일에 추가 설정이 필요하다. cloud: aws: stack: auto: false region: static: ap-northeast-2 하지만 이 설정 후에도 빌드 타임이 갑자기 엄청 느려지면서 아래와 같은 에러가 발생한다. com.amazonaws.util.EC2MetadataUtils - Unable to retrieve the req..
입사 후 온프레미스 환경에서 클라우드 환경으로 넘어오면서 AWS 인프라를 많이 활용해 보고 있다. 그 중에서도 리소스를 저장하기 위해 S3를 가장 많이 사용하고 있는데, 스프링부트에서 연동해서 사용하는 법을 알아보자. 주의!! 이 글은 S3 버킷을 생성하는 부분은 따로 언급하지 않았습니다. AWS S3란? Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. 모든 규모와 업종의 고객은 Amazon S3를 사용하여 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터 분석 등 다양한 사용 사례에서 원하는 양의 데이터를..
정확히는 리눅스에서 프로세스를 실행하는 과정에서 발생하는 문제다. 만약 AWS EC2에서 서버 배포 시, 포어그라운드(foreground)에서 Spring boot로 구현한 jar를 실행시켜버리면 해당 서버에서 아무것도 할 수 없게 된다. 그리고, 로그인된 서버 세션이 끊어지게되면, 해당 프로세스도 종료되게 된다. 이런 문제를 해결하기 위해서 리눅스에서는 백그라운드에서 프로세스를 실행시킬 수 있게 해놨다. 1. 프로세스 백그라운드 실행 명령어 nohup 명령어를 쓰면 된다. nohup 명령어는 접속된 서버의 세션이 끊어져도 그 프로세스가 계속 유지되도록 하는 명령어인데, 여기서 프로세스가 백그라운드에서 게속 떠있게끔하는 설정이 있다. nohup java -jar demo-0.0.1-SNAPSHOT.war..
- Total
- Today
- Yesterday
- 람다
- 오블완
- cache
- Log
- AWS
- elasticsearch
- openAI API
- EKS
- 티스토리챌린지
- ChatGPT
- springboot
- Spring
- docker
- OpenFeign
- Kotlin
- terraform
- GIT
- S3
- OpenAI
- MySQL
- Elastic cloud
- java
- CloudFront
- AOP
- 스프링부트
- JWT
- 후쿠오카
- lambda
- AWS EC2
- serverless
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |