본문 바로가기

Compute/EC2

Amazon EC2 입문

EC2 Console로 EC2 하나를 생성하며 대부분의 내용을 보겠음.

매달 매주 AWS Console에 접속할 때마다 신규 기능이 나와, 넷상에 있는 정보에 누락된 내용이 많다. 언젠간 이것도 누락되겠지. (2015-09 기준)

 

1. Choose AMI

 

​AMI 종류

My AMI : 자신이 만든 AMI입니다.

AWS Marketplace : 보안 솔루션부터 DB등 약 2000여가지의 SaaS 형태의 솔루션을 이용할 수 있습니다. 솔루션에 따라 추가 비용이 발생될 수 있습니다. AWS의 경우 어플라이언스 장비를 사용하기 힘들기 때문에 Marketplace를 이용합니다. Markeplace에서 구매한 EBS 볼륨은 다른 인스턴스에 attach 할 수 없습니다.

Communitiy AMIs : 다른 사용자가 공개한 AMI입니다.

 

OS 종류

OS의 경우 Windows, 각종 Linux 그리고 AWS Linux까지 대부분의 OS를 사용하실 수 있습니다. AWS Linux의 경우 CentOS 기반이며, 커널 업데이트 및 repository에 AWS 사용에 필요한 내용이 설정되어 있어 편리합니다. 특별한 이유가 없으면 AWS Linux를 권장합니다.

다만, swap memory 구성이 되어 있지 않아, swap memory가 필요한 경우라면 따로 설정해줘야 합니다.

 

CPU 아키텍처

CPU 아키텍처는 64bit/32bit가 있으며, 32bit에서는 기본적으로 메모리 4GB까지 지원합니다. 64bit AMI을 권장합니다.

 

하이퍼 바이저​

AWS의 경우 HVM(하드웨어 가상화)과 PV(반 가상화) 두 방식을 지원합니다. 현재 HVM 방식의 성능이 더 우수합니다. 기존 PV 장비 마이그레이션이 아닌 경우라면 HVM 방식을 권장합니다.

Root 디스크

​Root 디스크는 Instance store-Backed과 EBS-Backed의 두 종류가 있습니다.​ Instance store-Backed 방식의 경우 부팅 이미지를 인스턴스 저장소에서 사용하고, sotre-Backed의 경우 부팅 이미지를 EBS에서 사용합니다. 처음 AWS EC2 서비스는 Instance store-Backed 방식으로 시작했습니다.

Instance store-Backed : Stop 및 재부팅 시 해당 디스크에 보관한 데이터는 저장되지 않습니다.

​EBS-Backed : 재부팅 시 해당 디스크에 보관한 데이터는 저장됩니다.

EBS-Backed을 사용을 권장합니다.

​2. Choose Instance Type

 

​인스턴스의 경우 마이크로/일반/컴퓨팅 최적화/메모리 최적화/GPU/스토리지 최적화로 분류됩니다.

​(참조 - https://aws.amazon.com/ko/ec2/instance-types/)​

Type

EC2 Instance의 사양입니다.

t / m / c / r 등 컴퓨팅 목적에 따라 시리즈가 분류됩니다.

​(참조 - https://aws.amazon.com/ko/ec2/instance-types/)

 

​Instance Storage

EBS only의 경우 SSD 디스크가 기본적으로 제공되지 않습니다.

* x *(SSD)의 경우 임시 SSD 디스크가 기본적으로 제공됩니다. 성능은 좋으나, 휘발성 디스크입니다.

 

EBS-Optimized Available​

​기본적으로 EBS는 EC2와 네트워크를 공유해서 사용합니다. 따라서 트래픽이 몰리는 서비스의 경우 EBS IOPS 성능과 별개로 성능저하가 발생될 수 있습니다. 트래픽이 많은 서비스의 경우 EBS-Optimized를 사용하시기 바랍니다.

​구글링을 통한 떠도는 벤치마킹 결과로는 EBS-Optimized 대비 기본 EBS가 1/2정도의 성능을 발휘했습니다.

​Network Performance의 경우 대략적으로 아래 수치를 참고하시기 바랍니다.

​Low – Up to 100 Mbps

Moderate – 100 Mbps to 300 Mbps

High – 100 Mbps to 1.86 Gbps

10Gb – upto 8.86Gbps 

3. Configure Instance​

 

​Number of Instances : 시작하는 인스턴스의 수입니다.

Purchasing option : Spot 인스턴스 사용 유무입니다. Spot 인스턴스의 경우 저렴한 인스턴스를 사용할 수 있으나, 다른 사용자의 구매로 인해 불시에 인스턴스가 멈출 수 있습니다. 데이터 분석과 같은 특수한 상황에서 사용하시기 바랍니다. 어떤 업체는 스팟을 기존 인스턴스 대비 가격의 90% 수준으로 사용하여 비용을 절감한다고 합니다. 하지만 인기 인스턴스라면 좀 더 신중히 고려하시기 바랍니다.

Network : VPC를 선택합니다. 기본적으로 default 구성이 되어 있습니다.

Subnet : ​Subnet입니다. Subnet을 통해 AZ를 나누고 이중화 구성이 가능합니다. default 구성이 되어 있습니다.

 

Auto-assign Public IP

Use subnet setting : ​VPC Setting에 따라 Public IP를 부여를 결정합니다.

Enable : Public IP를 부여합니다.

Disable : Public IP를 부여하지 않습니다.

 

IAM role : 생성한 EC2에 권한을 부여합니다. 만약 설정한다면 AWS API 사용 시에 인스턴스 내에 Role을 부여할 필요가 없습니다.

 

Shutdown behavior : ​OS 종료 시에 동작입니다.

 

Enable termination protection : 실수로 인스턴스를 삭제하는 것을 방지할 수 있습니다.

 

Monitoring : CloudWatch 모니터링 기본 간격 5분에서 1분으로 변경할 수 있습니다. 비용이 추가로 발생됩니다.

 

Tenancy : 전용 인스턴스 사용유무입니다. 기본적으로 클라우드 환경에서는 하드웨어를 공용으로 사용되는데, 전용 인스턴스 사용 시 독립적으로 하드웨어를 사용할 수 있습니다. 비용은 기본 대비 약 10%정도 가격이 상승됩니다.

 

User data : EC2가 Launch 될 때 User-Data에 ROOT 권한으로 쉘 스크립트를 사용할 수 있습니다.  (ex: #! /bin/bash ~~ , 일반 계정의 경우 rc.d 명령어와 같은 su - user -c "command")

 

 

4. Add Storage

 

Disk를 추가할 수 있습니다. 

 

5. Tag Instance

인스턴스에 태깅을 합니다. Tag를 이용하여 빌링 및 세부 정보를 확인할 수 있습니다. Tag를 이용하여 서비스를 분류하시기 바랍니다.

 

6. Configure Security Group

Security Group으로 방화벽 설정입니다. 생성이나 혹은 기존에 만들어졌던 Security Group 정책을 등록할 수 있습니다.

 

7. Select an existing key pair or create a new key pair

인스턴스 접근을 위한 Private Key를 설정합니다. 새로 생성 가능하며, 기존에 생성되었던 Key를 사용할 수 있습니다.

 

8. Private Key 생성 및 접속하기

리눅스에서 AWS로 인스턴스로 접속하기 위해서는 pem를 통해 바로 가능합니다.

#터미널 실행
sudo ssh -i /경로/인증키(pem) ec2-user@'bastion host IP' -p 22 -N -L 22:'Private IP':22
sudo ssh -i seoul-blog-bastionhost.pem ec2-user@52.78.35.35 -p 22 -N -L 22:11.0.2.220:22

#새로운 터미널 실행
sudo ssh -i /경로/인증키(pem) ec2-user@'Private IP' -p 22
sudo ssh -i seoul-blog-wordpress.pem ec2-user@11.0.2.220 p- 22

 

Windows에서 접속하기 위해서는 putty 혹은 기타 ssh 접속 프로그램과 private key가 필요합니다.

PuTTY를 다운받으시고 PuTTYGEN을 실행합니다.

상단에 Conversions -> Import Key -> Pem 등록 -> Save private key -> 저장

private key를 생성하셨으면 PuTTY 실행 -> 좌측 Connection -> SSH -> Auth -> Browser -> Key 선택 -> IP 등록 -> open

접속 ID는 ec2-user입니다.

Root ID는 Linux OS마다 차이가 있습니다. (ubuntu: ubuntu / RHEL: root / CentOS&AWS : ec2-user)

(Bastion Host 사용 시 터널링 설정 추가)

 

EC2 Console이 많은 부분이 업데이트 되어 새로 내용을 갱신해봤습니다.

감사합니다!