AWS
AWS란 Amazon에서 클라우드 환경을 구축하여 가상컴퓨터를 대여해주는 서비스이다. 이러한 서비스는 이 외에도 Azure, GCP 등이 있다. 서버를 구동하기 위해서는 여러 물리적 자원과 시간, 비용이 필요하게 되는데 AWS를 이용하면 이 모든 절차를 생략할 수 있다. 아마존에서 구축해놓은 가상컴퓨터의 일부를 빌려서 내 컴퓨터처럼 사용하는 것이다. 여기서 EC2(Elastic Compute Cloud)는 AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버를 말한다.
Amazon EC2
Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장 가능 컴퓨팅 용량을 제공한다. Amazon EC2를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있다. Amazon EC2를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있다. Amazon EC2에서는 확장 또는 축소를 통해 요구 사항 변경 또는 사용량 스파이크를 처리할 수 있으므로 트래픽을 예측할 필요성이 줄어든다.
- 인스턴스: 가상 컴퓨팅 환경
- Amazon 머신 이미지(AMI): 서버에 필요한 운영체제와 여러 소프트웨어들이 적절히 구성된 상태로 제공되는 템플릿으로 인스턴스를 쉽게 만들 수 있습니다.
- 인스턴스 유형: 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러 가지 구성 제공
- 키 페어를 사용하여 인스턴스 로그인 정보 보호(AWS는 퍼블릭 키를 저장하고 사용자는 개인 키를 안전한 장소에 보관하는 방식)
- 인스턴스 스토어 볼륨: 임시 데이터를 저장하는 스토리지 볼륨으로 인스턴스 중단, 최대 절전 모드로 전환 또는 종료 시 삭제됨
- Amazon Elastic Block Store(Amazon EBS), 즉 Amazon EBS 볼륨을 사용해 영구 스토리지 볼륨에 데이터 저장
- 인스턴스와 Amazon EBS 볼륨 등의 리소스를 다른 물리적 장소에서 액세스할 수 있는 리전 및 가용 영역
- 보안 그룹을 사용해 인스턴스에 연결할 수 있는 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능
- 탄력적 IP 주소(EIP): 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
- 태그: 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타데이터
- AWS 클라우드에서는 논리적으로 격리되어 있지만 원할 때마다 고객의 네트워크와 간편히 연결할 수 있는 가상 네트워크인 Virtual Private Clouds(VPC)
출처 https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html
AWS EC2 인스턴스 생성하기
1. 먼저 가입부터 한다. 클라우드 서비스 - Amazon AWS에서 AWS 계정을 생성한 뒤(프리티어로 생성한다), 내 계정 - AWS Management Console으로 들어간다.
2. 우상단에서 지역 설정을 '서울'로 바꿔준다. 이제 서울의 서버를 임대할 수 있게 되었다.
3. 좌상단의 서비스로 들어가 컴퓨팅>EC2로 들어간다.
4. 좌측 메뉴에서 인스턴스로 들어간 다음 인스턴스 시작을 누른다.
5. Amazon Machine Image(AMI)는 소프트웨어 구성이 기재된 템플릿이다(예: 운영 체제, 애플리케이션 서버, 애플리케이션). AMI에서 인스턴스를 바로 시작할 수 있는데, 이 인스턴스는 AMI의 사본으로, 클라우드에서 실행되는 가상 서버가 된다. 다음 그림과 같이, 한 AMI로 여러 인스턴스를 실행할 수 있다.
즉, AMI란 EC2 인스턴스를 시작하는데 필요한 정보를 이미지로 만들어 둔 것을 말한다. 인스턴스라는 가상 머신에 운영체제 등을 설치할 수 있게 구워 넣은 이미지로 생각하면 된다.
기본적으로 서버를 구축하기 위해서 os가 필요하다. 따라서 Ubuntu Server 18.04 LTS (HVM), SSD Volume Type 를 선택하였다.
AWS에서 무료로 제공하는 프리티어로 인스턴스를 생성할 때는 다음과 같은 제한이 있다.
- t2.micro - ECU, 1 vCPUs, 2.5 GHz, -, 1 GiB 메모리, EBS 전용 (보통 vCPU는 물리 CPU 사양의 절반 정도의 성능을 가진다.)
- 월 750 시간의 제한이 있다. 초과하면 비용이 부과된다. - 24시간 * 31일 = 744시간이다. 2대 이상의 인스턴스를 사용한다면 비용이 부과된다
6. 프리티어로 선택할 수 있는 것을 선택하고 넘어가자. t2.micro 선택하고 다음을 누른다.
일반적인 용도로 사용되는 범용 범주에는 A 시리즈, T 시리즈, M 시리즈가 있다.
이번에 사용하는 t2 시리즈를 살펴보면 다음의 설명이 써져있다.
T2 인스턴스는 기본 수준의 CPU 성능과 더불어 기본 수준을 넘어 버스트할 수 있는 기능을 제공하는 성능 순간 확장 가능 성능 인스턴스입니다.
성능이 두가지로 소개되어 있다. 기본 성능과 순간 성능이다. 이 두가지는 CPU 크레딧에 의해 좌우된다. T2 인스턴스는 인스턴스 크기에 따라 정해진 비율로 CPU 크레딧을 계속 받게 되며, 유휴 상태일 때 CPU 크레딧을 축적하고 활성 상태일 때 CPU 크레딧을 사용하게 된다. 즉, 평소에는 기본 수준의 성능을 지원하다가 workload가 갑자기 증가하면 연산을 위해 순간 성능을 지원할 수 있도록 CPU 크레딧을 사용한다는 것이다.
그러나, 크레딧이 모두 사용되면 더이상 EC2를 사용할 수 없다. 그래서 트래픽이 높은 서비스들은 T 시리즈를 쓰지 않고 다른 시리즈를 사용하기도 한다.
7. 인스턴스 세부 정보 구성 페이지다. 여기서는 혼자서 1대의 서버만 사용하니 별다른 설정을 하지 않고 넘어가도록 한다.
8. 스토리지 추가 페이지다. 스토리지는 흔히 하드디스크라고 부르는 서버의 디스크를 이야기하며 서버의 용량을 얼마나 정할지 선택하는 단계이다. 설정의 기본값은 8GB로 되어있지만 30GB까지 프리티어로 가능하므로 최대치인 30GB로 변경해준다.
9. 태그 추가다. 인스턴스가 어떤 역할인지 누가 관리하는지 메모해 두는 것이다. 그냥 넘어갔다.
10. 다음은 보안 그룹인데, 보안 그룹은 방화벽을 말한다. 서버로 80 포트 외에는 허용하지 않는다는 역할을 하는 방화벽이 AWS에서는 보안 그룹으로 사용된다. 여기서 원격제어 프로토콜은 꼭 포함하여야 한다. SSH란 원격제어 프로토콜에 보안 개념이 들어간 것이다. 우린 SSH만 존재하게 하고 넘어 간다.
11. 검토 및 시작 버튼을 누르면 설정한 것들을 볼 수 있는 화면이 나오는데, 우측 하단의 시작하기 버튼을 누르면 키페어 생성 화면이 나온다. 이는 AWS 접속에 쓰이므로 절대 잃어버리면 안된다. 재발급 과정이 매우 복잡하다고 한다.
12. 마지막으로 새 키 페어 생성을 선택하고 키 페어 이름을 입력한 뒤 키 페어 다운로드 버튼을 눌러 키 페어를 다운로드 하면 인스턴스를 시작할 수 있게 된다.
11. 인스턴스 시작 버튼을 누르면 인스턴스 시작 상태를 확인할 수 있는 창이 나오며, 인스턴스 보기 버튼을 누르면 인스턴스가 생성된 것을 확인할 수 있다.