![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/c1l6lH/btspZEdM4hH/KKNGR7oUQgknQHDE2FJ461/img.png)
로컬 호스트 서버에서 댓글 서비스의 웹훅을 사용해야되는데 문제가 생겼다. 웹훅을 사용하기 위해 서버의 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..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bXPpIe/btsqfAhq9Sq/4ucwkkd9XXZo6yxfK4KoR0/img.png)
계속해서 쓸 곳이 생길 것 같길래 따로 분리해서 포스팅한다. 작업 환경은 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 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bEYTxd/btsiNakAqob/JKJCqSn4pYwuxsskTbzCtK/img.png)
입사 후 온프레미스 환경에서 클라우드 환경으로 넘어오면서 AWS 인프라를 많이 활용해 보고 있다. 그 중에서도 리소스를 저장하기 위해 S3를 가장 많이 사용하고 있는데, 스프링부트에서 연동해서 사용하는 법을 알아보자. 주의!! 이 글은 S3 버킷을 생성하는 부분은 따로 언급하지 않았습니다. AWS S3란? Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. 모든 규모와 업종의 고객은 Amazon S3를 사용하여 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터 분석 등 다양한 사용 사례에서 원하는 양의 데이터를..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cvwq0F/btsd9NT19hn/iFNysfIN4M8ZBSxjdIB72k/img.png)
이전 글에서 EC2 환경을 구축하고 Docker를 설치한 후 Tomcat을 통해 웹 서버를 배포까지 진행 해봤다. 그런데, EC2에 Docker를 설치 후 Dockerfile로 Build하는 과정에서 정상적으로 진행되지 않고 자꾸 프리징이 발생했다. 여기서 부터 2편을 시작해 보려고 한다. 1편과의 간격이 너무 길었지만 3편과의 간격이 더 길 수도 있다. 1. 스왑 메모리(swap memory) 적용 EC2에서 제공하는 t2.micro 인스턴스는 램의 크기가 1GB이다. 여기에 리눅스를 올리고 Docker 까지 설치하고, Docker 내부에서 Gradle 빌드까지하기엔, t2.micro의 메모리는 매우매우 부족하다, 그래서 프리징 현상이 발생하게 되고, 이를 해결하기 위해서 스왑 메모리라는 기법을 사용했..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bS7hfF/btr6GrrTQMT/MBuc6Nk4h468WiDYLBb4V1/img.png)
DB가 필요해... 이직을 하기 전에는, 사내 DB를 개인용 프로젝트에 써먹었었다. 이직이 결정된 이후에 인프라를 만지작 거리려니까 DB가 문제가 됐다. 어떻게 써야할까 고민하다가 그냥 인프라 구축을 위해 띄워놓은 EC2에 MySQL 서버를 띄우기로 했다. 아쉬운 점은, 난 그동안 오라클만 써왔다는 것이다. 하지만 오라클은 유료라 과감히 버린다. (Oracle 이미지는 Docker Hub에서도 내려버렸다...) AWS EC2 / Docker 설정 및 설치 멈춰버린 인프라 관련 글에 잘 써놨다. MySQL Docker 설치 Docker Hub에 저장된 공식 이미지를 사용하면, 별도의 설치파일 없이 편하게 사용할 수 있다. docker pull mysql:latest 설치 후 아래와 같이 뜨면 정상적으로 설..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/neeED/btrXbtjWnuL/rK7n25rFtFD8LtcCkQRXaK/img.png)
앞서 언급한 적이 있지만, 내가 담당하고 있는 서비스는 CI/CD가 없다. 하지만, 관리해야할 서버군은 요청을 앞단에서 받아줄 Apache Httpd 서버 6개, WAS가 있는 API 서버 6개, 실시간 위치정보를 다루는 WAS 3개, 배치서버 4개다. 한번 배포하는데만 시간 단위로 걸리고, 배포용 WAR파일을 수동으로 올리는데만도 몇 분씩 걸린다... 자사 서비스가 아니다보니 요청하기 어려 운점은 이해하겠지만 솔직히 말이 안된다고 생각한다. 심지어 TC도 따로 없고 데일리 빌드도 하지않으며, 프로젝트에 참여한 개발자가 개별 commit을 하고, pull request로 관리하지 않는다. 불만만 토로하게 되었는데 이러한 사항들 때문에, 다른 서비스는 어떻게 배포 과정을 갖는지 공부하게되는 계기가 됐고, ..
- Total
- Today
- Yesterday
- openAI API
- lambda
- terraform
- Kotlin
- MySQL
- AWS
- S3
- chat GPT
- 코딩테스트
- Spring
- jenkins
- Elastic cloud
- AOP
- ChatGPT
- awskrug
- Log
- elasticsearch
- java
- 스프링부트
- AWS EC2
- CloudFront
- serverless
- JWT
- OpenAI
- GIT
- cache
- docker
- springboot
- 람다
- EKS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |