정리를 시작하기 전에 3장에서는 AWS의 대표적인 서비스들에 대한 설명이 있었다. 앞의 1,2장에 비해 내용적으로 조금 어렵게 다가와 여러번 읽은 것 같다.
3장의 경우 내용이 많아 2파트로 나누어 정리 하도록 하겠다.
서버란
서버란
서버 : 네트워크에서 데이터나 서비스를 제공하는 컴퓨터
클라이언트 : 그 서비스를 이용하는 프로그램
대표적인 서버 유형
웹 서버: 웹 사이트를 구성하는 데 필요한 데이터를 저장하고 시스템을 제어하는 프로그램을 설치한 서버
-> 웹페이지 자체의 구조를 만드는 HTML + 디자인을 정의하는 CSS
데이터베이스 서버 : 시스템이 취급하는 데이터를 통합 관리하는 데이터베이스 관리 시스템이 설치된 서버
-> 클라이언트에서 특정 데이터를 참조하거나 수정, 삭제 등의 데이터 처리 요구를 요청으로 받아들이고 실행 결과를 응답으로 변환한다.
** RDS, DynamoDB - AWS관리형 서비스이면서 튜닝이 쉬움.
웹 서버 작동 방식
웹서버는 사용자 측의 웹 브라우저를 클라이언트로, 웹 서버를 서버로 지정해
클라이언트-서버 통신을 한다.
서버 OS란
OS : 사람이 기기의 관리와 제어를 수행하기 위한 인터페이스와 하드웨어 관리 기능, 기기에서 동작할 소프트웨어가 공통적으로 이용할 기본기능을 구현한 소프트웨어.
윈도우 서버
마이크로소프트에서 출시한 서버용 OS이다. 리눅스와 달리 OS자체의 라이선스와 CAL(Client Access License)로 불리는 서버 이용 라이선스를 구매해야 한다.
-> GUI로 조작하며 일반적으로 사용되는 데스크톱 윈도우와 사용법이 비슷하다. 또한 마이크로소프트 제품이므로 다른 마이크로소프트 제품과의 연계성과 AD(Active Directory)와의 연계, 충실한 지원을 받을 수 있다.
OS별 비교
항목 | 리눅스 | 윈도우서버 |
---|---|---|
도입비용 | 기본무료이용 * 배포판에 따라 라이선스료가 있다. | 라이선스 수수료 외 CAL비용이 필요 |
필요사항 | 상대적으로 낮은 사양에서도 동작 | 쾌적하게 사용하기 위해서는 고사양이 필요 |
인터페이스 | 주로 명령 중 인터페이스에서 명령어로 조작 | 주로 데스크톱과 같은 마우스로 조작할 수 있는 인터페이스 |
전문지식 | 명령어에 의한 조작이나 설정 파일 관리 등 전제 지식이 필요 | 데스크톱 윈도우와 비슷하므로 사용하기 전에 필요한 지식은 상대적으로 적다. |
지원 | 기본지원 없음 * 유료배포판은 지원이 있다. | 마이크로소프트 지원 시스템 |
기타 | 배포판이나 패키지를 자유롭게 선택할 수 있어 원하는 기능이나 특징을 구현할 수 있음. | Active Directory 및 SQL 서버와 같은 마이크로소프트 소프트웨어와 연계성이 우수 |
서버 가상화
서버가상화 : 가상화 소프트웨어를 이용하여 하나의 하드웨어에서 여러 OS를 동작시키는 것.
AWS에서의 가상화
Amazon Elastic Compute Cloud(EC2) : AWS의 대규모 서버에서 가상화를 수행. 사용자는 사용 용도에 따라 OS의 종류나 CPU, 메모리 크기를 자유롭게 선택해 인스턴스(가상서버)를 생성할 수 있다.
Amazon EC2는 가상 서버 서비스
가상 서버 생성
EC2인스턴스(가상서버)를 생성하기 위해서는
설정들을 선택하면 된다.
Amazon 머신 이미지(AMI): OS와 소프트웨어가 설정된 템플릿이다. AWS에서 미리 준비한 AMI가 제공되며 사용자는 제공된 AMI중 하나를 선택한다.
인스턴스 유형: 인스턴스 유형을 선택하면 서버의 성능이 결정된다. CPU와 메모리 용량이 함께 표시되므로 적잘한 유형을 선택한다. 생성 후 변경도 가능하다.
가상머신이 위치할 네트워크는 사용자가 생성한 VPC를 선택하고 스토리지 용량(EBS)을 설정한 후 마지막으로 접근 권한 설정을 위해 보안 그룹을 선택한다.
모든 설정을 선택하고 인스턴스를 생성하면 목록에 '실행 중' 상태로 표시된다.
인스턴스를 생성한 후에는 리눅스의 경우 SSH, 윈도우의 경우 원격 데스크톱 등 관리 시스템 기능을 이용해 연결할 수 있다. AWS Systems manager라는 EC2 인스턴스를 관리하는 서비스가 있으며 이 서비스를 이용해도 인스턴스에 연결할 수 있다.
인스턴스 유형으로 서버 성능 결정
인스턴스의 성능은 인스턴스 유형 이름으로 알 수 있다.
m: 패밀리 : 메모리와 CPU중 어느 것을 우선시 하느냐와 같이 인스턴스의 특징에 따른 문자열이 있다.
6: 세대 : 숫자가 클수록 성능이 좋다.
g : 추가 기능 : Gravtion2(CPU이름)는 g, 네트워크 강화는 n이다. 추가 기능 문자가 없는 유형도 있다.
medium : 크기 : 크기가 클수록 고성능. 가격도 크기에 따라 높아진다.
EC2 인스턴스 패밀리
패밀리 | 특징 |
---|---|
T | 버스트 가능한 범용유형 |
M | 균형 잡힌 범용 유형 |
C | 컴퓨팅 최적화(vCPU 수가 많음) |
R | 메모리 최적화(메모리 탑재량이 많음) |
P | 고속 컴퓨팅 |
I | 스토리지 최적화 |
T유형 : 베이스라인이라는 정해진 CPU 사용률이 정의돼 있으며 정의 된 사용률을 초과해서(버스트) 이용할 수도 있다. 다만 일정량을 넘으면 베이스 라인 이하의 성능이 되거나 추가 요금이 발생하므로 서비스 환경과 같이 상시 사용이 예상되는 환경에서는 M유형의 인스턴스를 선택하는 편이 좋다.
다양한 EC2 요금제
구매유형 | 특징 | 이용용도 |
---|---|---|
온디맨드 | 일반 구매방법. 이용 상황에 따라 요금이 변동 | 이용 상황에 변화가 있고 사용 예정 일을 모르는 경우 |
예약, 절감형 플랜 | 1년 또는 3년간의 이용요금을 미리 지불, 온디맨드에 비해 최대 72% 할인 | 프로덕션 가동 등 1년 이상 사용할 예정이 있는 경우 |
스팟 | 이용하지 않는 부분을 이용, 예기치 않게 인스턴스가 정지될 수 있다. 온디맨드에 비해 최대 90% 할인 | 개발 환경과 같이 인스턴스를 중단해도 영향이 작은 경우 |
그 밖의 EC2 관련 요금
인스턴스 요금 외에도 네트워크 외부로의 데이터 통신, 데이터를 저장하는 스토리지 등에서 요금이 발생한다.
서버 외부 공개
EC2를 인터넷에 공개하려면 다음 조건을 충족해야한다.
서버 접근 제어
접속을 허가할지에 대한 접근 제어는 보안 그룹을 이용한다. 보안그룹은 온프레미스의 방화벽 기능을 수행한다.
외부에서 EC2로의 통신 - 인바운드 규칙
EC2에서 외부로의 통신 - 아웃바운드 규칙
-> 통신을 허용할 네트워크와 포트 번호를 지정한다.
보안그룹에 지정하는 규칙은 허용만 할 수 있다.
특정 네트워크로 부터의 통신을 차단하도록 설정할 수 는 없다.
** 보안 그룹은 불필요하다면 바로 삭제 해야 한다. 서비스가 많아지면 그만큼 공개해야 할 포트도 많아지고 많은 보안 그룹을 관리하다 보면 사고로 이어질 수 있기 때문이다.
서버 자동 추가 및 제거
Amazon EC2 Auto Scaling(Auto Scaling) 기능을 사용하면 서버 추가 및 제거를 부하 상황에 맞게 자동으로 수행할 수 있다.
시작 템플릿에 Amazon 머신 이미지(AMI) 정보와 서버가 추가될 조건을 설정해두면 조건에 맞춰 서버가 자동으로 추가된다.