[AWS] 클라우드 EC2 생성

고구마양갱·2024년 12월 7일

AWS CLOUD

목록 보기
2/32

AWS EC2는 클라우드 서버를 의미한다.
AWS 특성상 서버리스로 실행하는 경우도 많지만,

EC2는 활용도가 높은 Instance 이고, 관련 기능을 활용해
여러 테스트를 해볼 수 있다. EC2를 생성해보고 관련 특성들을 숙지해야 한다.

좌측 상단 검색창에 EC2 를 검색, 선택한다.

좌측에 EC2 관련 세부 메뉴가 나오고, Instances > Instances 메뉴로 가면
EC2 Instance 들의 현황을 볼 수 있다. EC2 인스턴스를 삭제한 뒤여서 Instance 1개가 Terminated 로 남아 있다. 나중에 설명하겠지만, EC2 인스턴스 삭제 시 목록에서 바로 사라지지 않고, 몇 시간 동안 terminated 된 인스턴스로 남아있게 된다. 별다른 문제가 있어서가 아니며, 정상적으로 삭제 처리되어도 몇 시간 후에 목록에서 사라진다.

삭제 처리(terminated)가 정상적으로 수행되었다면 몇 시간 뒤 삭제처리된 인스턴스가 사라진다.

우측 상단의 Launch instances 를 통해 새 EC2 인스턴스를 생성할 수 있다.

- Name and tags : EC2 인스턴스 이름, EC2 인스턴스의 이름을 입력한다.

- Application and OS Images(AMI, Amazon Machine Image): EC2 인스턴스 운영체제를 의미, EC2 인스턴스의 운영체제를 선택하며, 리눅스, MAC OS, 윈도우 등 다양하다. EC2 인스턴스의 운영체제를 AMI 라고도 하며, AMI는 커스터마이징할 수 있고 다른 사용자들과도 공유가 가능하다. 기존에 선택된 amazon linux 를 그대로 유지한다.

-Instance type : EC2 인스턴스 타입 정의, 필요에 맞는 타입을 선택한다. 테스트 용도로 쓰는 것이므로 PREE TIER 인 t2.micro 를 사용한다.
-Key pair(Login) : EC2 인스턴스의 SSH 접속을 위한 key 설정이다. SSH 접속은 하지 않을 것이고, 잠깐의 테스트 후 삭제(terminated) 할 것이므로, Proceed without a key pair 로 설정한다. (실제로 인스턴스를 운영 한다면 반드시 별도의 key를 설정해야 한다.)

인스턴스 타입을 클릭하면 다양한 타입의 EC2 인스턴스를 볼 수 있다. 성능, 사용요금 등을 볼 수 있다. 그 중 필요한 사양의 인스턴스 타입을 선택하면 되며, 사양 뿐만 아니라 요금 까지도 볼 수 있다.

네트워크 설정 부분이며, 어느 네트워크(VPC)에 구성할 것인지, 서브넷, Public IP, Security Group 등 네트워크 관련 설정을 할 수 있다.

- VPC : 어느 네트워크에 구성(연결) 할 것인지 선택한다. VPC를 새로 만들어 연결할 수 있다.
- Subnet : EC2 가 갖는 Private IP의 대역을 설정한다.
- Auto-assign public IP : 자동 할당 공인 IP 를 사용할 것인지 설정한다.
(자동 할당이기 때문에 EC2 인스턴스를 재부팅 하면 Public IP 가 변경된다.)
- Security Group (Firewall) : EC2 인스턴스의 접근통제 기능이다. 서버 자체 접근통제와 동일한 기능이다. 인바운드, 아웃바운드 정책을 설정하여 인스턴스로 접근하는 트래픽을 통제한다.

단순한 인스턴스 생성, 접속 테스트를 할것이므로
VPC는 default로
subnet 은 no preference 로,
Auto-assign public IP 는 enable
Security group 은 create security group 으로 새로 만든다.
Security group, Description 은 임의로 쓰고 우선 type을 HTTP 로, source type 을 anywhere(출발지 any, 0.0.0.0/0)로 한다.
Security group 의 경우 EC2 인스턴스 생성 후에 추가로 생성, 변경이 가능하다.

EC2 인스턴스의 저장장치 설정이다. EC2의 자체 저장장치를 사용할 수 있고, EBS, EFS 등 별도로 생성한 스토리지를 연결 할 수도 있다. 별도의 스토리지 연결을 위해선 Add new volume 을 통해 EC2와 스토리지를 연결한다.

Advanced detail 부분은 다양한 설정이 있으나 처음부터 모두 알 필요는 없다.
인스턴스 생성만 간단하게 해볼 것이므로 추가로 설정할 필요는 없다.

추후에 필요한 기능을 구현할 때 찾아서 해도 무방하다. 그럼에도 일부 기능을 알아보자면,

- Domain join directory : Active Directory 와 비슷한 기능이며, 특정 디렉터리를 사용하는 도메인을 선택하면, 해당 디렉터리와 결합된다.
- IAM instance profile :
- Hostname type : IP를 기반으로 한 Hostname 을 쓸 것인지, Resource 기반으로 한 Hostname 을 쓸것인지에 대한 설정이다. 네트워크 세팅의 서브넷을 어떻게 하는지에 따라 자동으로 설정된다.
- DNS Hostname : DNS 질의와 관련된 내용인데, 마찬가지로 네트워크 세팅의 서브넷을 어떻게 설정하는지에 따라 자동으로 설정된다.
  * Enable IP name IPv4 (A record) DNS requests : DNS 질의에 대해 ip name 을 ipv4 주소로 변환하는 것을 의미한다.
  * Enable resource-based IPv4 (A record) DNS requests : Resource name의 DNS 질의를 Private ipv4 주소로 변환하는 설정
  * Enable resource-based IPv6 (AAAA record) DNS requests : Resource name의 DNS 질의를 Private ipv6 주소로 변환하는 설정

- Instance auto-recovery : EC2 인스턴스의 H/W 또는 S/W 장애 발생 시 자동으로 EC2 인스턴스를 복구하는 옵션이다. EC2 인스턴스의 상태체크(health check)를 하게되며 이상이 있을 시 복구를 수행한다.
- Shutdown behavior : Shutdown 을 수행했을 때 단순히 인스턴스를 stop 시킬 것인지, terminate 시킬 것인지 설정하는 옵션이다. stop 은 단순 종료이고, terminate 는 삭제(제거)이다.
- Stop Hibernate behavior : Hibernate 는 절전의 의미이다. 인스턴스에 대해 최대절전모드를 사용할지 아닌지 설정할 수 있다.
- Termination protection : 실수로 인스턴스가 삭제되는 것을 방지하는 설정이다.
- Stop protection : 실수로 인스턴스가 종료되는것을 방지하는 설정이다.

- Detailed CloudWatch monitoring : CloudWatch를 통한 모니터링 설정
- Purchasing option : spot instance 설정, spot instance 는 사용요금을 절약할 수 있는 설정이다. (최대 90% 절약 가능)
- Capacity reservation : 인스턴스의 사용량을 지정하는 설정

- CPU options : cpu 를 커스터마이징 할 수 있다. 다만 t2.micro는 cpu 커스터마이징 할 수 없는 인스턴스 이므로 비활성화 되어 있다.

- User data : 해당 부분은 EC2 인스턴스가 부팅 될 때 사전에 실행될 명령어를 정의하는 옵션이다.

부팅과 동시에 아파치 web 서버를 설치하고 home page(index.html)을 바로 생성하여 접속 할 수 있도록 하기 위해 하기의 내용을 작성한다.

#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello Test $(hostname -f)</h1>" > /var/www/html/index.html

우측의 summary를 보면 생성할 인스턴스의 갯수(Number of instances)를 설정할 수 있다.
summary 하단부에 Launch Instance 버튼을 누르면 인스턴스가 생성된다.

EC2 메뉴 > instances > instances 에 가면 생성된 EC2 인스턴스 목록을 볼 수 있다.
생성된 인스턴스를 체크하면 아래에 선택된 인스턴스에 대한 정보가 표시된다.
User data 를 통해 아파치 웹 서버를 생성하고, index.html 페이지를 만들었으므로 접속도 할 수 있다.

인스턴스의 Public ipv4 를 url(http://ipv4주소)에 입력하면 index.html 페이지를 볼 수 있다. Security group 정책은 http 를 사용할 수 있도록 설정했으니 https 가 아닌 http 로 접속해야 한다.

생성해서 접속까지 확인했으니 이제 인스턴스 삭제를 해야 한다. 실제 사용하지도 않는 리소스를 방치해서 좋을일은 없기 때문이다. 참고로 짐작가겠지만 reboot 는 재부팅, stop 은 종료, terminate는 인스턴스 삭제이다.

terminate (delete) instance 를 선택하며 위 창이 나오며, terminate (delete) 버튼을 누르면 완전 삭제 된다.


successfully terminate 메시지를 확인한다. (정상적으로 삭제되었는지 확인하는게 좋다.)

삭제가 실행되었으나 인스턴스는 바로 없어지지 않는다. 위에서 본 것 처럼 terminated 목록으로 남아 있으며 몇시간 뒤에 목록에서 완전히 없어진다.

0개의 댓글