서버 구축 순서

Kwon, Hyojin·2021년 2월 20일
20

Backend

목록 보기
3/9
post-thumbnail

해당 글은 아래 2016년 9월 작성된 블로그 내용을 충실히 참고하였습니다.
http://blog.naver.com/PostView.nhn?blogId=windy7812&logNo=220805959712&categoryNo=0&parentCategoryNo=29

기본 개념

  • 서버 = 서비스 개발 장소 = 컴퓨터
  • 운영체제 = 컴퓨터 제어 프로그램

서버 구축 순서

  1. 클라우드 사용 vs 호스팅 사용
    • 웹 호스팅
      • 호스팅 업체가 보유한 서버의 일부를 분양해 운영
      • 호스팅 업체가 설정 및 관리
      • 소규모 서비스
    • 서버 호스팅
      • 호스팅 업체가 보유한 데이터센터에서 서버를 임대 혹은 구매해 운영
      • 사용자가 설정 및 관리
      • 대형 서비스(일반 웹 서비스나 앱 서비스)
    • 클라우드
      • 서버를 가상화 기술로 나눠 개별 서버 호스팅 개념으로 운영
      • 사용자가 설정 및 관리
      • 서버 자유롭게 축소 및 확장 가능
      • 스타트업 서비스
  2. 운영체제 선택
    • 대부분 리눅스 계열 사용(대부분 무료)
      • 데비안
        • 업데이트 지향
        • 개인 서버용
      • 레드햇
        • 철저히 상업화된 리눅스
        • 기업, 증권거래소 등 대형 서비스
        • Fedora
          • 선행 운영체제 -> 레드햇의 신기술 체험
        • CentOS
  3. 서버 접속
    • ssh 이용: 서버와 내 PC 간 안전한 통신으로 컴퓨터 로그인
    • 설치한 서버 사양 확인
      • 리눅스 버전, CentOS 버전, 하드용량, 메모리, CPU 체크
    • 패키지 목록 업데이트
    • 시스템 한국 시간 설정
  4. 파일 서버 설치
    • FTP(File Transfer Protocol, 파일 전송 규약)
      • 네트워크 상에서 컴퓨터 간(클라이언트 컴퓨터와 서버 컴퓨터) 파일 교환을 위해 공개된 통신 규약
      • 네트워크에 연결된 컴퓨터끼리 데이터를 원활하게 교환
  5. 웹 서버(정적 부분 처리) 설치
    • HTTP를 통해 웹 브라우저에서 요청하는 HTML 문서에 따라 HTTP 응답해주는 프로그램
    • 대규모 웹사이트 구성의 경우
      • 같은 서비스를 제공하는 웹 서버를 병렬로 설치
      • 웹서버의 앞쪽에 로드 밸런스(분산처리)를 통해 웹 서버에 처리를 분배
    • Apache
      • 무겁다는 평
      • 속도를 크게 개선한 2.4 버전을 내놓으며 대응
    • Nginx
      • 무설치 오픈소스 프로그램
      • 신규서비스 중심
  6. 웹 애플리케이션 서버(WAS, 미들웨어, 동적 부분 처리) 설치
    • 성능 고려해 웹 서버의 부족한 기능을 보충하기 위해 분리
    • 기능
      • DB 접속
      • 트랜잭션 관리
      • 비즈니스 로직 수행
  7. 도메인, 서브 도메인 사용
    • 도메인
    • 서브 도메인
    • 회사 DNS 설정으로 서버와 도메인 연결 (지정 도메인으로 접속하면 특정 IP로 이동하도록)
  8. 로드 밸런싱
    • HAProxy
      • 소프트웨어 로드 밸런서
      • 목적
        • 이미지 서버, 애플리케이션 서버, 데이터 베이스 서버 분리
        • 추후 부하 분산 대비
      • 미리 설치해두는 이유
        • 서버에 문제 발생시 부하가 일어나는 곳을 찾아 서버를 증설하거나 분할할 때 대처 시간 줄어듦
        • 통계 설정 해두면 통계 확인도 가능
      • 기본 reverse proxy 형태로 동작
        • 실제 서버 요청에 대해서 서버 앞 단에 존재
        • 서버로 들어오는 요청을 대신 받아서 서버에 전달하고 요청한 곳에 그 결과를 다시 전달
      • 설치 후 접속하면 사이트가 연결되어 나옴
  9. API(Application Programming Interface) 문서 작성
    • 보통 앱/웹 서비스 개발에서 다른 서비스에 소스는 공개하지 않으면서 권한에 따라 기능(데이터) 제공
    • 개발자들 간 공유 및 팀원들과의 소통
  10. API 서버 구현
    • 개발 언어 선택
    • 라이브러리 선택
    • 브라우저에서 테스트 진행 -> 정상 작동시 API 문서에 맞춰 계속 작업
profile
파이썬 웹 백엔드 개발자

1개의 댓글

comment-user-thumbnail
2021년 12월 7일

좋은 글 감사합니다!

답글 달기