본문 바로가기

AWS

[AWS] 운영 서버 환경 구성 - 단일 서버

AWS 입문자용으로 추천하는 책을 읽으며 내용을 정리해보려고 한다.

 

참고한 책은 '서비스 운영이 쉬워지는 AWS 인프라 구축 가이드' 

www.yes24.com/Product/Goods/68799454

 

서비스 운영이 쉬워지는 AWS 인프라 구축 가이드

AWS와 서비스 운영에 첫걸음을 내디딜 수 있게 도와준다!서비스 개발과 인프라 관리를 담당하는 실무자의 운영 노하우를 배우자!이 책은 AWS나 클라우드 환경에 익숙하지 않은 분들이 AWS 서비스��

www.yes24.com


1.1 운영 서버

운영 서버는 실제 사용자들을 대상으로 서비스하는 서버로  트래픽 대응, 빠른 응답 속도, 높은 가용성 을 보장해야 한다.

 

운영 서버를 관리 하기 위한 세 가지 단계 ( 환경 구성, 코드 배포, 모니터링 )

 

1.2 운영 서버 아키텍처

단일 서버 ( 클라이언트 - 서버(어플리케이션) - 데이터베이스 )

- 애플리케이션과 데이터베이스가 같은 서버에서 작동된다면?

  • 전체 서비스에 장애가 생길 확률이 높다.
  • 서버 자원을 효율적으로 사용하기 어렵다.
  • 보안성이 떨어진다.

- 단일서버의 단점은?

  • Scale out이 힘들다.
  • 서버 자원의 확장을 위해 서버를 여러 대로 늘려야 하는 경우 클라이언트가 추가된 서버들의 주소를 새로 알아야 한다.

다중 서버 ( 클라이언드 - 로드 밸런서 - 서버(어플리케이션), 서버(어플리케이션), ... - 데이터베이스)

  • 클라이언트는 로드 밸런서하고만 통신
  • 로드 밸런서가 요청을 여러 서버들에게 나눠줌
  • Scale out이 가능해짐
  • 로드 밸런서에 장애가 생기면 전체 서비스 장애로 이어지므로 조심해야 함

AWS를 이용해 운영 서버 환경을 구축해보자 👍

AWS EC2 (Elastic Compute Cloud) 인스턴스 생성

쉽게 사양을 고르고 원하는 시간만큼 사용할 수 있는 '가상 서버'

  1. AMI : EC2 인스턴스의 기반이 되는 이미지
  2. 보안 그룹: 보안을 위해 IP와 포트 번호를 이용해 정의해두는 서버 접속 규칙
  3. 키 페어 : 서버에 접속하기 위한 키
서버 인스턴스에는 요청에 응답하거나 코드로 처리하는 서버 소프트웨어가 필요하다 ✔😃✔

서버 소프트웨어에는 크게 웹 서버와 웹 애플리케이션 서버로 구분된다.

1. 웹 서버

  • 클라이언트에서 HTTP 프로토콜로 요청을 받고 정적인 파일(HTML, CSS, JS 등)을 응답으로 전달
  • 애플리케이션 코드를 실행해 결과를 주는 것은 아니므로 정적인 웹 사이트만 실행 가능
  • nginx, Apache, IIS 등

2. 웹 애플리케이션 서버

  • 클라이언트의 요청에 대해 코드 실행을 통해 동적인 응답을 만듬
  • Phusion Passenger, Apache Tomcat, JBoss 등

- 웹 서버와 웹 애플리케이션 서버는 보통 함께 사용된다.

- 여러 애플리케이션을 서비스 하는 경우 웹 서버가 여러 웹 애플리케이션 서버로 라우팅 하는 역할도 한다.

 

nginx를 이용해 한 서버에서 두 개의 다른 애플리케이션을 서비스해본다 👌