AWS 어렵지 않아요 - EC2 편 : 1탄 생성하기

dlrmsghks7·2020년 4월 5일
1
post-thumbnail

EC2는 뭔가요?

EC2(Elastic Compute Cloud)는 가상 서버가 필요할 때
독립된 컴퓨터를 임대하여 쓸 수 있는 AWS의 가장 기본적이면서도 중요한 서비스입니다.
오늘은 EC2에 대해서 알아보고 어렵지 않음을 느껴보도록 하겠습니다.

AWS가셔서 EC2서비스를 클릭하셨다면 대시보드 화면을 보시게 될 것입니다.
실행중인 인스턴스, 로드 밸런서, 전용 호스트, 탄력적 IP등..
다양한 현황에 대한 정보를 알려주는데요!
저희는 실행중인 인스턴스를 누르도록 하겠습니다.

EC2를 마주하면 인스턴스라는 단어를 많이 듣게 되실텐데요!
인스턴스는 임대한 컴퓨터라고 이해하시면 됩니다.

키 쌍 생성하기

EC2를 임대 및 기동하기 전에 먼저, 키 쌍(key pair)을 생성합니다.
키 쌍은 인스턴스에 접속할 때 사용되며, 리눅스/유닉스 인스턴스에서는 SSH로 접속하기 위해
공개 키 인증을 사용합니다. 윈도우 인스턴스는 리모트 데스크톱으로 접속하기 위한 관리자 비밀번호를
발급받을 때 사용합니다.

발급받는 방법은 다음과 같습니다.

  1. EC2 관리 콘솔 왼쪽 아래의 Key Pairs를 클릭합니다.
  2. Create Key Pair의 버튼을 클릭하면 키 쌍을 입력하라는 다이얼로그 박스가 나옵니다.
    name을 입력하고 create 버튼을 누릅니다.
  3. {name}.pem 이라는 이름의 파일로 키 다운로드가 시작되며, 이는 알기 쉬운 장소에 저장하도록 합니다.
  4. 공개 키는 AWS쪽에 보관하며, 인스턴스를 생성할 때 사용합니다.

보안 그룹 생성

다음으로는 보안 그룹을 생성합니다.
보안 그룹은 EC2 외부에 있는 방화벽과 같은 것으로, 통신의 입출력을 제어하기 위해 있는 기능입니다.
기본적으로 서버에 들어오는 통신(인바운드) 포트는 모두 닫혀 있고,
필요한 포트만 열어서 사용하도록 되어 있습니다.
반대로 서버에서 나가는 통신(아웃바운드) 포트는 모두 열려 있습니다.

보안 그룹을 생성하기 위해서는 관리 콘솔 왼쪽 중간 정도 메뉴에 Security Groups를 클릭합니다.
기본으로 생성되어 있는 보안 그룹이 표시되지만, 전용 보안 그룹을 생성합니다.

Create Security Group 버튼을 클릭하고, 다이얼로그 박스를 엽니다.
Security Group name을 입력하고, Description에는 보안 그룹에 대한 설명을 입력합니다.
VPC는 사용자의 목적에 맞게 설정하여 씁니다. (별도의 설정이 없다면 default로 쓰셔도 좋습니다.)

그리고 인바운드 & 아웃바운드는 사용자가 쓰고자 하는 서버의 정책에 맞게끔 설정해줍니다.

인바운드는 HTTP, HTTPS, SSH등의 타입을 정할 수 있고,
선택하면 이에 따라 알맞는 프로토콜, 포트가 자동으로 선택이 됩니다.
기본 값 이외의 포트를 쓰는 경우 유형을 사용자 지정으로 선택한 후 직접 작성하면 됩니다.

인바운드 작성후 아웃바운드도 작성해주면 됩니다.
default는 모두 허용입니다.
특정 아웃바운드 규칙을 추가하려면 인바운드처럼 작성하면 됩니다.

EC2 인스턴스 임대하기

그러면 이제 준비가 끝났으니, EC2 인스턴스를 임대하여 보겠습니다.

1. 인스턴스 시작(Launch Instance) 클릭

2. 운영체제를 선택

(Window, Ubuntu, Linux등.. 다양하게 있습니다)

3. 인스턴스 사양 선택

(사양이 좋을수록 부담하는 돈은 비례합니다. 회사의 경우 좋은 인스턴스를 써야겠지만,
공부목적이나 사이드프로젝트라면 t3.micro로 선택해줍니다.
t2보다 t3를 사용하게되면 좀 더 저렴합니다.)

4. 인스턴스의 디테일 설정

항목설명
Number of Instances기동할 인스턴스 대수를 지정합니다.
Purchasing Option더 싼 가격으로 사용할 수 있는 스폿 인스턴스로 사용할 것인지를 지정합니다.
Network어떤 네트워크를 사용할 것인지 선택합니다.
Subnet네트워크로 지정하고 어떤 서브넷을 사용하여 인스턴스를 생성할지를 지정합니다.
Auto-assign Public IP인터넷 경유로 접속할 수 있게 하는 글로벌 IP 주소를 사용할 것인지를 지정합니다.
IAM role생성된 롤을 지정하는 것으로, 인스턴스에 안전하게 인증 정보를 지정하고 결과적으로 권한을 부여할 수 있다.
Shutdown behavior인스턴스를 정지했을 때 다시 기동할 수 있게 정지 상태로 둘 것인지 아니면 삭제할 것인지를 지정합니다.
Enable termination protection인스턴스를 삭제할 수 없도록 보호할 것인지를 지정합니다.
MonitoringCloudWatch 모니터링을 보다 상세(1분 간격)하게 할 것인지를 지정합니다.
Tenancy공유된 하드웨어를 사용할 것인지 또는 전용 하드웨어를 사용할 것인지를 지정합니다.
Network interfacesENI(Elastic Network Interface)라고 부르는 가상 NIC(Network Interface Card)를 지정합니다.
하나의 인스턴스에 최대 두 개의 ENI를 접속할 수 있지만, 이용할 수 있는 대역이 확장되는 것은 아니기에 주의가 필요합니다.
Advanced DetailsUser Data라고 하는 인스턴스가 기동할 때 실행되는 스크립트를 지정할 수 있습니다.
스크립트를 지정하면 인스턴스에 접속하지 않아도 패키지 최신 업데이트나 추가 패키지 설치등이 가능하게 됩니다.

설정이 다 끝났다면 Next:Add Storage 버튼을 클릭하여 다음 화면으로 이동합니다.

5. 인스턴스 스토리지 지정

항목설명
Volume Type(1)Root로 되어 있는 것은 OS가 설치된 스토리지입니다.
DeviceOS에서 보이는 디바이스명을 지정합니다. EBS나 인스턴스 스토어는 타입을 선택할 수 있으나 root의 경우 선택할 수 없습니다.
Snapshot스토리지 내부 데이터가 되는 스냅샷을 지정합니다. 타입이 EBS의 경우 지정할 수 있지만, root의 경우 자동으로 설정됩니다.
Volume Type(2)타입이 root이거나 EBS의 경우 EBS 볼륨 타입을 지정합니다.
IOPS볼륨 타입이 Provisioned IOPS SSD의 경우 그 성능을 지정합니다.
Delete On Terminatioin인스턴스를 삭제했을 경우 EBS도 삭제할 것인지를 지정합니다.
  • EBS란 Elastic Block Storage의 줄임말로, EC2에 연결할수도 있고,
    Amazon Relational Database Service에서 사용되는 원시 블록 수준 스토리지를 제공하는 서비스를 의미합니다.

설정이 다 끝났다면 Next:Tag Instance 버튼을 클릭하여 다음 화면으로 이동합니다.

6. 인스턴스 태그 지정

인스턴스에 지정할 태그를 정합니다.
Key에는 Name을 인스턴스 이름을 붙이기 위해 value에는 인스턴스 이름을 정해주도록 합니다.
(꼭 이렇게 해야하는 것은 아닙니다. 저희는 EC2에 대해서 감을 잡아가는 과정이기에 요렇게 설명하도록 하겠습니다)

이름을 정해주었다면 Next:Configure Security Group 버튼을 클릭하여 다음 화면으로 이동합니다.

7. 보안 그룹 설정

인스턴스에 보안 그룹을 지정합니다.
저희는 앞에서 보안 그룹을 이미 만들었기에
Assign a security group에서 'Select an existing security group'을 선택하고,
앞에서 생성한 보안 그룹을 선택하도록 하겠습니다.
Review and Launch 버튼을 클릭하고 다음 화면으로 진행합니다.

8. 인스턴스 생성 확인

지금까지 설정한 내용등을 확인합니다.
Edit *을 선택하면 해당 설정 화면으로 돌아갈 수 있습니다.
설정에 문제가 없다면 Launch를 클릭하고 다음으로 진행합니다.

9. 기존 키 쌍 선택 및 신규 생성

마지막으로 인스턴스 접속에 사용할 키 쌍을 지정합니다.
'Choose an existing key pair'를 선택하고 Select a key pair에서 위에서 생성한
키 쌍을 선택합니다. 그리고 그 아래에 있는 확인 항목을 선택하고 Launch Instances 버튼을 클릭하면
인스턴스가 기동합니다.

Launch Status 화면에 Your instances are now launching이라고 표시되면
인스턴스 기동이 성공한 것입니다.
View Instances 버튼을 클릭하고 인스턴스 목록 홤녀으로 이동하면 인스턴스를 확인할 수 있습니다.
Instance State가 running으로 표시되고, Status Checks가 checks passed로 표시되면
인스턴스 접속이 가능해집니다.

10. EIP 할당 및 연결

EIP(Elastic IP Address)는 인터넷을 통해 접속할 수 있는 고정 공인 IP 주소를 할당할 수 있고,
인스턴스에 연결할 수 있는 서비스 입니다. EIP를 할당받고 자신이 삭제하기 전까지 IP 주소를 유지할 수 있습니다.
인스턴스를 생성할 때 설정했던 같은 공인 IP 주소를 설정할 수 있는 Public IP 주소가 있지만,
이 주소는 인스턴스를 정지하고 기동할 때마다 변경됩니다.
그렇게 되면 매번 변경된 것을 반영해줘야하는 등의 불편한 점이 많기에,
이 문제를 해결하기 위해 EIP 서비스를 제공되고 있습니다.

EIP 할당

EIP를 할당하기 위해서는 EC2 고나리 콘솔 외쪽 메뉴에서 Elastic IPs를 클릭하여
Allocate New Address 버튼을 클릭하고 Yes, Allocate 버튼을 클릭합니다.
그러면 New address request succeeded라는 메시지와 함께 할당된 IP 주소가 표시됩니다.
close 버튼을 클릭하면 EIP 목록을 볼 수 있습니다.

EIP를 인스턴스에 연결

이제 할당을 받았으니 인스턴스에 연결을 하도록 합니다.
해당 EIP를 선택한 상태에서 Actions-Associate Address를 클릭합니다.
그 다음 Instance 또는 Netwrok Interface에 연결할 것인지를 선택하는 메뉴가 나옵니다.
Instance 텍스트 박스에 생성한 인스턴스 이름을 치고 나온 인스턴스를 선택하여 Associate 버튼을 클릭합니다.
EIP 목록으로 돌아오면 해당 EIP와 연결된 인스턴스 정보를 확인할 수 있습니다.
이렇게 인스턴스에 EIP를 연결하는 것까지 마무리 하였습니다.

(주의!)
EIP를 인스턴스에서 분리할 때에는 Disassociate Address 메뉴를 사용합니다.
주의할 점은 EIP를 인스턴스에 연결하지 않은 상태로 유지할 경우 적은 금액이지만 과금이 됩니다.
다시 사용하지 않을 EIP는 반납해 두는 것이 좋습니다.
EIP를 반납하기 위해서는 인스턴스나 ENI에서 사용하지 않는 상태로 두고,
Release Addresses 버튼을 사용하여 반납할 수 있습니다.

이렇게 생성하기까지 보았습니다. 
적은 것은 많지만, 막상 흐름대로 만들면 몇 분안에 끝나는 일들입니다. 
혹여 폭탄과금을 맞는 것 아닌가하는 생각이 EC2를 사용하는데 있어 두려움과 어려움을 주는데 
고의가 아닌 경우 말씀을 잘 드리면 환불받을 수 있고, 
주의만한다면 문제될 부분은 없기에 한번씩 따라서 해보시는 것도 좋을 것 같습니다.

다음주는 이제 접속하여, SQL 및 어플리케이션을 설치하고, 
EC2를 정지/삭제/재시작 해보는 것과 간단한 cli를 학습해볼 예정입니다.
또한 회사에서 종종있는 스케일업에 대한 부분도 같이 정리할 수 있다면
정리해보겠습니다.

읽어주셔서 감사합니다.

참고 자료

탄력적 개발로 이끄는 AWS 실천 기술 (Jpub 출판사 : 박상욱 옮김)
[AWS] EC2 보안그룹 (Security Group) 설정 ([배워가는블로거]: https://zamezzz.tistory.com/301)

profile
좋은 프론트엔드 개발자가 되고 싶습니다😊

0개의 댓글