AWS EC2 생성

AWS EC2 생성


AWS EC2 생성

  • 이번 장에서는 저번 장에서 생성했던 사용자 정의 VPC의 대역에 EC2를 생성해 보도록 하겠습니다.
  • EC2 또한 중요한 개념이므로, EC2에 대한 학습을 원하는 분들은 AWS EC2를 참고해주세요.

 

 

EC2 ( Elastic Compute Cloud ) 생성


기본적인 EC2 생성의 순서

1. AMI ( Amazon Machin Image ) 선택
2. Instance type 선택
2. Instance Network 설정
3. Storage 설정
5. Tag 설정
6. Security Group 설정
여기에서는 처음에는 기본 VPC, 후에는 전장에서 생성했던 VPC에 생성해보도록 하겠습니다..
EC2

  • 검색에서 EC2를 입력후 인스턴스로 들어갑니다.

 

EC2

  • 대시보드에서 현재 사용량을 확인할 수 있습니다.
  • 인스턴스 생성을 위해 좌측 메뉴에 인스턴스를 클릭합니다.

 

EC2

  • 인스턴스 시작을 클릭합니다.

 

EC2

  • AMI 선택에서는 이미지 파일을 선택할 수 있습니다. 여기에서는 Amzon Linux를 생성하겠습니다.
  • 또한 AMI는 직접 만들 수 있으며, AWS Marketplace를 통해서 타 유저의 이미지를 구매할 수도 있습니다.

 

EC2

  • AWS 인스턴스 유형에서는 cpu, ram 스토리지의 유형과 사양 등을 선택할 수 있습니다.
  • 여기에서는 과금이 발생하지 않게 t2.micro를 선택하겠습니다.

 

EC2

  • 인스턴스 세부 정보 구성에서는 인스턴스의 수, VPC 서비넷 대역, 용량 예약, IAM 역할 등 세부 정보를 설정할 수 있습니다. 여기서는 기본 값으로 생성하겠습니다.
설정 항목 설명
인스턴스 갯수 기동할 인스턴스의 수를 나타냅니다.
구매 옵션 구매 옵션을 선택합니다. 체크 시 스팟 인스턴스로 구입할 수 있습니다.
네트워크 인스턴스를 기동할 VPC를 나타냅니다.
서브넷 인스턴스가 소속될 서브넷을 나타냅니다.
퍼블릭 IP 자동 할당 자동적으로 퍼블릭 IP를 부여할지 설정합니다.
배치 그룹에 인스턴스 추가 배치 그룹을 선택합니다. 체크 시 배치 그룹에서 인스턴스를 생성합니다.
용량 예약 용량 예약은 특정 가용 영역에서 인스턴스가 시작되도록 예약합니다.
IAM 역할 EC2 인스턴스에 부여할 IAM권한을 설정합니다.
종료 방지 EC2 인스턴스의 삭제를 막습니다.
모니터링 CloudWatch를 통한 모니터링 서비스를 활성화합니다. 화성화하면 1분 간격으로 CloudWatch에 데이터가 전송됩니다. ( 일반적으로 5분 간격을 설정 )
테넌시 하드웨어 점유 옵션으로, Shred를 선택시 공유, Dedicated를 선택하면 완전 점유합니다.
사용자 데이터 인스턴스 실행시 셀 스크립트 또는 cloud-init 디렉티브를 작성할 수 있습니다.

 

EC2

  • 스토리지 추가에서는 볼륨을 추가할 수 있습니다.

 

EC2

  • 태그 추가에서는, 인스턴스에 대한 세부사항을 정의할 수 있습니다.
  • 여기서는 기본 값으로 생성하겠습니다.

 

EC2

  • 보안 그룹에서는 생성되는 EC2에 대한 보안 그룹을 지정합니다. 현재는 접속을 위해 TCP 22번 포트만 열어둔 상태로 생성하겠습니다.

 

EC2

  • 검사에서는 현재까지의 설정을 확인할 수 있습니다.
  • 인스턴스 시작을 누르면 키 페어를 선택창이 등장합니다. 여기서는 키 페어를 하나 생성하도록 하겠습니다.

 

EC2

  • 리눅스 운영체제를 통할 때에는 pem 파일을, Window를 사용할 때에는 ppk 파일을 사용하기에, 여기서는 pem 파일을 Putty key generator를 이용해 변경시켰습니다.

 

EC2

  • 생성이 완료되면, 인스턴스로 돌아와 생성되어진 인스턴스를 확인합니다.
  • 기본적으로 Pendig은 생성, Running은 실행가능, stop은 중지상태, shuttinf-down은 삭제 중, Terminated는 삭제된 상태를 의미하며, Running 상태에서만 요금이 부과됩니다.
  • 상단에는 간략한 EC2들의 정보를 나타내며, 하단에는 상세 정보를 나타냅니다. 여기서 접속을 위해 IPv4 퍼블릭 IP를 복사합니다.

 

EC2 EC2

  • Putty를 사용해 퍼블릭 IP와 프라이빗 키를 등록하면 접속이 가능합니다.
  • 기본적으로 기본 계정은 AWS Linux : EC2-user, Ubuntu : ubuntu Centos : centos 입니다.

 

EC2

  • 생성된 인스턴스에서 정상적으로 핑이 나가는 것을 확인하실 수 있으나, Window에서는 핑이 가지 않는 것을 확인하실 수 있습니다. 이는 전에 선택한 보안그룹으로 22번/TCP 포트밖에 사용하지 않았기 때문으로, 만약 보안그룹에 ICMP를 열어둔다면, Ping이 가능하게 할 수 있습니다. 이와 같이 보안그룹은 AWS에서 다방면으로 매우 중요한 역할을 수행합니다.

 

EC2

  • 이어서 인스턴스의 상태변경은 인스턴스를 선택후 작업, 혹은 오른쪽마우스로 가능합니다. 저는 삭제를 위해 종료를 클릭하겠습니다.

 

EC2

  • 삭제가 완료되었습니다.

 

사용자 정의 VPC 대역에 EC2 생성


  • 저번 장에서 생성했던 VPC 대역에 EC2를 생성해보도록 하겠습니다.
  • 인스턴스의 Network 설정까지는 동일하며, 그 후는 아래와 같습니다.

VPC VPC

  • 인스턴스의 Network 설정에서 네트워크, 서브넷, 퍼블릭 IP 자동할당을 설정합니다.
  • 단, 두 개의 인스턴스를 생성하며, 하나의 인스턴스는 IP 자동할당 활성화, 다른 인스턴스는 IP자동할당을 비활성화인 채로 생성합니다.
  • 여기에서는 저번장에서 생성한 2개의 서브넷을 사용했습니다. Pulbic : 할당 활성화, Private : 할당 비활성화
  • 또한 위와 같이 ssh의 접속이 가능하게 보안그룹을 설정합니다.

 

VPC

  • 생성이 완료되었습니다.

 

VPC

  • 이제 Putty를 통해 퍼블릭과 프라이빗에 접속합니다.
  • 하지만, 프라이빗 대역은 퍼블릭 IP를 할당받지 않아 접속이 불가능합니다.

 

VPC

  • 하지만 퍼블릭 서브넷의 인스턴스는 공통의 라우팅 테이블로 igw를 사용하기 때문에 프라이빗 IP를 알수 있어 접속이 가능합니다.
  • 또한 이와 같은 방법으로 보안그룹을 ssh접속이 가능한 한 컴퓨터만 혹은 서브넷이나 그룹등을 지정하거나, gateway를 특정 인스턴스로 지정하여 보안성을 높이는 것이 가능합니다.

 

CLI를 통한 인스턴스 관리


 

$ aws ec2 help
  • aws ec2에 명령어를 알려줍니다.

 

$ aws ec2 create-key-pair --key-name [ 키 페어 이름 ] --query 'KeyMaterial' --output text | out-file > [ 키 페어 경로 ].pem
# KeyMaterial은 키의 값입니다.

$ impkey='cat~/[ import 시킬 키 파일의 경로 ]'
$ aws ec2 import-key-pair --key-name [ 키 페어 이름 ] --public-key-material ${impkey}
# 외부 키 페어 임포트 방법
# AWS 콘솔 EC2-Key Pairs -> Import Key Pair로도 가능합니다.
  • 키 페어를 생성합니다.

 

$ aws ec2 delete-key-pair --key-name [ 키 페어 이름 ]
  • 키 페어를 삭제합니다.

 

$ aws ec2 create-security-group --group-name [ 보안 그룹 이름 ] --description [ 보안 그룹 설명 ] --vpcid [ VPC ID ]
  • 보안 그룹을 생성합니다.

 

$ aws ec2 authorize-security-group-ingress \
--group-id [ Security-group-id ] \
--protocol tcp \
--port 22 \
--cidr 0.0.0.0/0
# Security-group-id의 보안 그룹의 22/tcp의 모든 접속이 가능하게 설정을 추가합니다.

$ aws ec2 describe-security-groups \
--group-ids [ Security-group-id ] \
--output json
  • 보안 그룹을 생성합니다.

 

$ aws ec2 describe-security-groups --group-ids [ 보안 그룹 ID ]
  • 보안 그룹의 상세 설명을 출력합니다.

 

$ aws ec2 create-security-group --group-name [ 보안 그룹 이름 ] --description [ 보안 그룹 설명 ]
  • EC2를 생성할 때, 보안 그룹을 생성합니다.

 

$ aws ec2 run-instances \
--image-id [ 이미지 이름 ] \
--count [ 인스턴스 수 ] \
--instance-type [ falvor ] \ 
--key [ 키 페어 이름 ] \
--security-group-ids [ 보안 그룹 ID ]
--subnet-id [ 서브넷 ID ] \
--associate-public-ip-addres # 퍼블릭 IP 할당 유무
--user-data file://[ 파일경로 ]
# 인스턴스를 생성합니다.

$ aws ec2 create-tags \
--resources [ 인스턴스 id ]
--tags Key=name,Value=[ 태그 내용 ]
# 인스턴스에 태그 등록

EC2 EC2

  • 인스턴스를 생성합니다.

#!/bin/bash
apt install -y apache2

#cloud-config
packages:
- apache2
  • user data 사용시 사용가능한 형식

 

aws ec2 describe-instances --filters "[ 필터 값 ], Value=[ 값1, 값2 ]"
  • 특정 ec2를 나열합니다.

 

aws ec2 start-instances --instance-ids [ 인스턴스 ID ]
aws ec2 stop-instances --instance-ids [ 인스턴스 ID ]
aws ec2 terminate-instances --instance-ids [ 인스턴스 ID ]
  • 인스턴스의 상태를 변경합니다.

 

예제


RSS Feed
마지막 수정일자