이번에 입사한 회사에서 운 좋게도 경험할 수 있게 되었는데,해당 태스크를 진행하게 된 계기, 과정, 결과를 공유한다. 서버 비용 줄이기 태스크가 맨 처음 나에게 태스크로 할당 되어서 작업을 진행한 것은 아니였고, 우리 회사 서비스의 앱을 사용해 보는데, 앱 기본 동작이 너무 느렸다.친구 관계를 맺고, 댓글을 쓰고, 피드를 조회하는데 속도가 너무 느려서 너무너무 해결하고 싶었다. 이러한 경험은 고객 관점에서 최악으로 느껴졌고, 앱의 사용성 개선을 우선적으로 해결해야 할 태스크라고 느꼈다.그렇게 스스로 문제를 진단하고, 팀 내에 해당 태스크를 공유한 다음성능 최적화를 진행했다. 결과부터 말하자면 AWS 서버 비용을 3분의 1로 줄였고, 쿼리 조회 속도도 개선되었다.추가적으로 내가 적용했던 다양한 성능 최적화..
나는 평소 관계형 데이터베이스인 Postgresql, mariaDB밖에 접하지 못했었다 하지만 지금 다니고 있는 회사 서비스의 트래픽이 늘어남에 따라 서버 분산을 할 필요가 절실해졌다 Postgresql에서 AuroraDB로 변경하며 스케일 업 하였고 AuroraDB에서 4대의 수로 늘리는 스케일 아웃을 적용했다. (AuroraDB는 특정 시간에 트래픽이 몰리는 것에 특화되어 DB 수가 늘어나는 가용성이 보장되는 DB다) 하지만 이 마저도 우리 서비스의 트래픽으로 버티기가 힘들어 매일 20만 건의 댓글이 달리는 DB 부하를 줄이기 위해 특정 도메인들을 NoSQL에 저장하고자 한다 MongoDB는 스키마와 동일한 JSON 형식으로 저장할 수 있어 개발 시 장점과 5배 이상의 성능을 끌어올릴 수 있다고 한다..
호스팅 업체는 다양하게 있지만 EC2에서 Vlutr를 사용하게 된 가장 큰 이유는 서버비/비용이 저렴하기 때문이다. Vultr이라는 비교적 저렴한 가상 호스팅 사이트를 이용하여 토이프로젝트 백엔드 서버를 구축했다.vultr로 백엔드 서버를 구축하면서 공부한 내용과 나의 실수들을 작성하며 쉽게 복귀하고,누군가에게 도움이 되었으면 하는 마음으로 작성해 본다. 이번 포스팅은 다음과 같은 목차로 진행한다.🌠 목차✅ Vultr 이용하기 ㄴ 방화벽 설정 ㄴ 가비아 dns 등록 ㄴ 백엔드 배포 들어가기 전 나의 환경구성 정보1. 맥북 프로 m12. JAVA 113. Querydsl, JPA4. Springboot5. gradle 3.x.x6. 돈 없는 거지 Vultr로 서버 생성하기htt..
요즘은 간편 로그인(구글 로그인과, 네이버 로그인 등을 이용한 외부 서버 인증 방식)으로 처리하는 곳이 많지만해외 거주자가 있거나, 서비스의 고객층에 따라 간편 로그인이 낯설고, 예전 방식의 ID와 PW를 선호하는 사람들도 있기 때문에요구사항에 따라 ID와 PW 방식의 회원가입을 구현해야 하는 경우도 존재한다. 우리는 종종 DB가 털려서, 개인정보가 유출 됐다는 뉴스를 접하곤 한다. 일반적으로 사람은 ID와 PW를 대다수의 사이트에 동일하게 사용하곤 한다.하나의 사이트가 털려버리면, 내가 가입한 대다수의 사이트도 털려버릴 수 있기 때문에 큰 문제가 된다. 이 때문에 암호화에 관심이 생기게 되었고, 이번 포스팅에서는 어떻게 패스워드를 암호화해야 안전한지, 어떤 이유로 암호화 방식이 발전해 왔는지암호화에 ..
스프링시큐리티와, webconifg에 두가지 설정법을 다룬다. 토이 프로젝트를 진행 중에 CORS 문제를 만나게 되어 글을 작성하게 되었다. 우리 팀은리액트(3000 포트)와 스프링부트(8080 포트)를 이용해 개발 중에 있다. 토요일 주말, 쉬고 있던 중 한 팀원으로 부터 다음과 같은 연락을 받았다. "localhost:3000/api/find/team API에서 응답값이 나와요!" 응??? 나는 순간적으로 localhost:3000은 리액트 포트인데 무슨 소리지? 하면서 당황했다. 뭔가 착각한거 아니야?라는 마음으로 포스트맨에서 토큰 값과 localhost:3000/api/team/find에 파라미터 값을 넣고 실행해 보니 정말 응답 값이 나왔다. 자 그러면 localhost:3000으로 API 요청..
AWS EC2 서버에서 프런트엔드를 띄우려던 중 발생한 오류이다. 최종적으로 npm run start를 하길 원하고 이 과정에서 발생한 오류들에 대해 해결방법을 남겨보았다. * 나의 경우는 프론트엔드 release브런치로 push 할 경우 github action - S3 - CodeDeploy - EC2의 과정을 진행한다. 이경우는 백엔드와 프론트에 모두 적용되었다. ⬇️ 참고 내용 2022.12.16 - [4. hellomyteam 개발일지] 서버/것 허브액션을 구축하며 느낀 점들 정리 1. 서버와 로컬 버전 확인 및 맞추기 로컬과 서버환경의 node와 npm의 버전확인 1. 로컬 터미널에서 npm 버전 체크 npm -v 2. 로컬 터미널에서 node 버전 체크 node -v 3. 서버 ssh 터미널..
CI/CD 깃허브액션을 구현하던 중 AWS의 code-deploy에서 오류가 발생하였고, 해결 방법을 정리해본다. The deployment failed because no instances were found for your deployment group. Check your deployment group settings to make sure the tags for your Amazon EC2 instances or Auto Scaling groups correctly identify the instances you want to deploy to, and then try again. 1. 문제 파악 문제의 원인은 EC2를 내가 생성한 code-deploy가 찾지 못해서 발생한 원인이다. 해석해보면 ..
깃허브 액션과 AWS codedeploy를 연결했다. 아래와 같이 깃허브에서 배포 성공을 보고 안심한 상태로 껏는데 다음날 서비스 url로 접속시 502 에러가 떳다 AWS의 codedeply를 살펴보니 배포 상태가 모두 실패 상태였고, 배포 문제를 해결하기 위해 해당 포스트를 작성했다. 깃허브액션 성공 code deploy 배포 오류 SciprtMissing과 UnknownError는 무슨 오류인가? SciprtMissing 메시지: 너무 많은 개별 인스턴스가 배포에 실패했거나 배포에 사용할 수 있는 정상 인스턴스가 너무 적거나 배포 그룹의 일부 인스턴스에 문제가 발생하여 전체 배포에 실패했습니다. UnknownError 메시지: CodeDeploy 에이전트가 수명 주기 이벤트를 수신할 수 없습니다. ..
- Total
- Today
- Yesterday