Supersett
개발자의 하루
Supersett
Blockchain Dev
전체 방문자
오늘
어제
  • 분류 전체보기
    • 프론트
    • 회사생활
    • 블록체인
    • 프로젝트
      • 창업 프로젝트 (DRF + AWS)
      • Spring 프로젝트
    • [중앙대]멋쟁이 사자처럼
    • 기술서적
    • Problem Solving
      • 알고리즘
    • 일기장
      • 하루 정리
      • 삽질 일기
      • 조급할 때 눌러보기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Near Explorer
  • 국비지원
  • 취업준비
  • 초보개발자
  • 신입개발자
  • 면접준비
  • 국비교육
  • 자바스크립트
  • 자바
  • java
  • 멋쟁이 사자처럼 서류
  • 니어프로토콜
  • 멋쟁이 사자처럼 면접
  • Luniverse
  • 비트코인
  • Multichain API
  • Near Scan
  • 멋쟁이사자처럼 중앙대
  • 디프만16기
  • 프로젝트
  • 해커톤
  • 블록체인 서버설계
  • 블록체인정보가공
  • DEPROMEET
  • 멋쟁이 사자처럼
  • 구글소셜로그인
  • 멋사 중앙대
  • 컴퓨터학원
  • 국비
  • 글리치해커톤

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Supersett

개발자의 하루

[AWS][24/365 장애 없는 서비스 환경]을 위한 캐밋의 로드맵
프로젝트/창업 프로젝트 (DRF + AWS)

[AWS][24/365 장애 없는 서비스 환경]을 위한 캐밋의 로드맵

2022. 10. 31. 15:43

 

가자!

 

중앙대학교 관심사 기반 커뮤니티 '캐밋' 서버를 구축함에 있어서 두 가지에 대해 정리할 것이다.

  1. 그동안 불편했던 점
  2. 24/365 서비스를 위한 개선방향

[ 현재 상황 ]

서버 : AWS EC2 1대 (도메인 : cameet.site/)

DB : sqlite ( 특이점 : django 내장 DB)

 

[ 문제가 뭐야? ]

① 로컬에서 작업하던 코드를 배포서버에 맞게 수정 후 올리고 난 후 문제 발생

→ 배포 환경에서는 기능이 작동하지만, 새로운 기능을 만들거나 기존의 코드를 수정해야 하는 상황에 있어서 로컬 환경에서 테스트가 성립하지 않았다. (ex - 소셜 로그인 base_url 설정 상이, 로컬 db와 배포서버 갖고 있는 db값이 다름)

→ 매번 1. 로컬에서 코드를 작성하고, 2. 배포서버에 반영 후, 3. 실서버에서 테스트를 해야 했음.

→ 실제 사용자들이 사용하는 서버에서 테스트를 하는 건 말이 안 됨.

② 로컬에서의 DB와 배포서버에서의 DB가 다름

API 명세서를 통한 프론트 쪽에서의 수정 요청을 받고 수정을 하는 상황 (프론트 개발자분들은 배포서버를 기반으로 개발하는 상황),

→ 소셜로그인 후 발급되는 토큰은 로컬 서버에 등록이 되어있지 않아 특정 상황(사실 거의 대부분)을 테스트하는데 어려움이 있었음.

→내장 DB라 접근이 안됨.

③ 로컬에서 잘 돌아가던 기능(ex-소셜 로그인)이 배포서버에서는 작동이 잘 되지 않았음

에러 해결기.. ↓

https://supersett-diary.tistory.com/243?category=1075832 

 

[프로젝트][에러][uWSGI] 클라이언트 연결 닫음 [해결]

[해결 완료] 배포에 사용한 프리티어 리눅스 컴퓨터가 문제가 아니었음 배포에 많이 사용되는 WSGI (게이트웨이)는 2종류가 있다.  1. uwsgi  2. gunicorn  아래 문제 해결을 위해 구글링을 

supersett-diary.tistory.com


[ 이렇게 해결할 거야 ]

서버 : AWS EC2 2대 - 1. 실서버(cameet.site/) , 2. 개발서버(서브도메인 : dev.cameet.site/)

DB : AWS RDS(mysql) ( 특이점 : 2개의 서버가 db를 공유함 )

 

이번에 주변 현업에 있는 친구들, 선배들 붙잡고 해결방안에 대해 물어보고 공부하며,

백엔드 개발자로서 고려해야 할 프로젝트의 전체적인 구조에 대해서 싸악 훑는 아주 값진 시간을 보냈다..

■ EC2 (Elastic Compute Cloud)

: 2대 운용 예정 (실제 사용자들이 서비스를 이용하는 서버, 개발을 위한 서버)

→ 아직 캐밋이란 서비스가 크진 않지만, 실제 런칭중인 서비스들과 비슷하게 운영해보기 위해 2대를 선택했다. 그러기 위한 추가적인 RDS와 ELB 세팅이 필요했다.

■ S3 (Simple Storage Service)

: 사용자들이 업로드한 프로필 사진을 저장할 저장소

■ RDS - MYSQL (Relational Database Service)

: 실서버와 개발서버가 분리되어있지만 db값을 공유하기 위해서, RDS 서버를 구축했고, 기존에 내장 db였던 sqlite에서 mysql로 db를 분리 후 연동했다.

■ ELB (Elastic Load Balancer)

: 캐밋으로 들어올 다양한 인바운드 트래픽을 목적에 맞게 분산시켜주는 역할을 해줄 것이다. 

→ 서버 상단에서 추가적인 하드웨어 장치가 로드밸런싱 작업을 해준다.

 

 

 

 

 

 

 

'프로젝트 > 창업 프로젝트 (DRF + AWS)' 카테고리의 다른 글

[창업 지원금][AWS 세팅] 대학생창업 중간 회고  (5) 2022.10.10
[OAuth 2.0]구글 소셜 로그인(feat. React & django rest framework)  (0) 2022.09.21
[점검] 프로젝트 피드백, 단기 목표 설정  (0) 2022.09.06
[AWS EC2 배포][ubuntu] 배포하며 쌓은 내실을 정리해 보자  (0) 2022.08.31
[프로젝트][에러][uWSGI] 클라이언트 연결 닫음 [해결]  (0) 2022.08.29
    '프로젝트/창업 프로젝트 (DRF + AWS)' 카테고리의 다른 글
    • [창업 지원금][AWS 세팅] 대학생창업 중간 회고
    • [OAuth 2.0]구글 소셜 로그인(feat. React & django rest framework)
    • [점검] 프로젝트 피드백, 단기 목표 설정
    • [AWS EC2 배포][ubuntu] 배포하며 쌓은 내실을 정리해 보자
    Supersett
    Supersett
    하루를 돌아보고 공부한 티를 내기 위해 블로그를 만들었습니다.

    티스토리툴바