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