ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 아마존 웹 서비스 EC2 인스턴스 만들기
    소프트웨어 개발 툴 2019. 3. 19. 13:22

    예상 독자

    목표

    • EC2 (Elastic Compute Cloud)
    • EC2 인스턴스 만들기
    • 참고 - 인스턴스 세부정보의 VPC와 보안그룹

    EC2 (Elastic Compute Cloud)

    EC2는 아마존 웹 서비스 중에서도 가장 많이 사용되는 서비스 중 하나이다. EC2인스턴스 하나가 가상 서버 하나라고 생각하면 된다. 전통적인 방식으로 서버를 설정하려면 데이터센터에 서버를 사거나 호스팅 사이트를 이용해야 한다. 호스팅 사이트는 제약이 많은 경우가 많아 웹사이트 정도의 작은 어플리케이션을 올리는 데 적당하고, 비즈니스 어플리케이션은 보통 데이터서버의 서버에 실행시킨다. 따라서 호스팅 서비스를 이용하는 비용 또는 데이터센터에 서버를 사는 비용이 든다. EC2는 아마존의 데이터센터에 존재하는 서버 위에 도는 가상머신이다. 서버를 통째로 빌리는 것이 아니기 때문에 기존의 방식보다 저렴하다. EC2하나를 돌리는 것이 서버 하나를 돌리는 것은 아님을 유의하자. 여러분의 EC2는 하나의 서버(하이퍼바이저) 위에서 돌지만, 그 서버 위에는 다른 여러개의 EC2 가상머신들이 돌고 있을 확률이 높다.

    EC2 인스턴스 만들기

    아마존 웹 서비스 콘솔에 로그인한다. 로그인 후 콘솔 화면에서 EC2를 검색해 들어가 보자.

    이후 나오는 대시보드에서 인스턴스 시작을 눌러 EC2인스턴스를 만들어 보자.

    인스턴스 시작을 누르면 다음과 같은 화면이 나온다.

    EC2는 가상 '머신(메모리/CPU)'을 빌리는 것이므로 그 머신 위에 돌릴 운영체제를 선택해야한다. 위의 화면이 바로 실행 할 운영체제를 선택하는 화면이다. 우리는 free tier를 사용 할 것이므로 Amazon Linux 2 AMI를 선택하자. 

    그 다음에는 인스턴스 유형이라는 것을 선택해야한다. 인스턴스 유형이란 한마디로 어떤 머신, 즉 어떤 CPU, 어떤 메모리, 어떤 스토리지를 사용 할 것이냐에 대한 것이다. 사용자가 필요한 만큼의 컴퓨팅 파워를 제공하기 위함이다. 우리는 free tier를 이용하므로, '프리 티어 사용 가능'이라고 써있는 t2.micro를 선택하고 검토 및 시작을 누르자.

    검토 및 시작을 누르면 인스턴스에 대한 정보가 나온다. 여기서 봐야 할 것은 보안 그룹과 인스턴스 세부 정보의 '네트워크'이다. 이에 대한 정보는 맨 아래에 첨부했다.

    우측 하단에 시작하기를 누르면 아래와 같은 화면이 뜬다.

    ssh로 이 인스턴스에 로그인 하기 위해서는 키 페어를 만들어야 한다. 이 프라이빗 키 파일은 한번만 다운로드 가능하므로 삭제되지 않게 조심하자. 키 페어를 다운로드 후 인스턴스 시작을 누른다.

    인스턴스가 성공적으로 시작되면 위와 같이 시작된 인스턴스의 인스턴스 아이디가 뜬다. 이 아이디를 누르면 EC2 인스턴스 탭으로 넘어간다.

    위 테이블을 보면 생성된 인스턴스를 확인 할 수 있다. Availability Zone - us-east-2b에 생성 된 것을 확인 할 수 있다. 인스턴스의 상태가 pending이므로 running이 될 때까지 기다려 본다.

    인스턴스를 선택후, 상단의 '인스턴스 시작'옆에 연결을 눌러보자.

    인스턴스에 연결하는 방법에 대해 나온다. 본인의 ssh 클라이언트를 이용하거나, 현재 웹 브라우저에서 Java SSH를 실행시킬 수 있다. 예를들어 맥에서는 다음과 같이 접근 할 수 있다.

    터미널을 열고 my-first-ec2.pem이 있는 디렉토리로 들어간다. 그리고 해당 pem파일의 퍼미션을 400으로 변경한다.

    ➜ chmod 400 my-first-ec2.pem

    그리고 위의 '예'에 있는 명령어를 그대로 갖다 붙이면 EC2인스턴스에 로그인 할 수 있다.

    ➜ ssh -i "my-first-ec2.pem" ec2-user@<EC2-IP>.<region>.compute.amazonaws.com
    The authenticity of host
    '<EC2-IP>.<region>.compute.amazonaws.com (<IP>)' can't be established.
    ECDSA key fingerprint is SHA256:<FINGERPRINT>
    Are you sure you want to continue connecting (yes/no)?yes
    Warning
    : Permanently added '<EC2-IP>.<region>.compute.amazonaws.com,<IP>' (ECDSA) to the list of known hosts.

    __| __|_ )
    _| ( / Amazon Linux 2 AMI
    ___
    |\___|___|

    https://aws.amazon.com/amazon-linux-2/
    [ec2-user@<IP> ~]$

    윈도우즈 같은 경우 putty를 설치하고 puTTYGen을 이용해 pem파일을 ppk파일로 변경해 사용해야한다.  puTTYGen을 이용해 연결하는 방법은 공식 문서에 나와있다.

    참고 - 인스턴스 세부정보의 VPC와 보안그룹

    VPC(Virtual Private Cloud)

    모든 EC2인스턴스는 VPC내에 존재하는 서브넷에 실행된다. VPC는 아마존 웹 서비스의 개념이 아니고, 네트워크에서 나오는 그 VPC이다. 구글 클라우드도 VPC가 있고, 대부분의 회사들은 사내 망(Intranet)이 있는데 이게 바로 Private Network이다. 아마존 웹 서비스에서는 이 Private Network가 가상의 환경에서 존재하기 때문에 Virtual Private Cloud라고 부르는 것이다.

    하나의 VPC안에는 한 개 이상의 서브넷(Subnet)이 있고, 라우팅 테이블과 인터넷 게이트웨이 등이 있다. 얘네들은 선으로 연결되어 있진 않지만 우리가 생각하는 물리적인 네트워크 설정이라고 생각하면 된다. 따라서 보안상 EC2 서비스는 항상 여러분의 VPC에 인스턴스를 실행한다. VPC정보는 서비스 -> VPC에서 확인 할 수 있다.


    보안그룹


    보안그룹은 VPC레벨의 방화벽이다. 예를들어 웹서버를 실행하고 싶다면 나중에 이 보안그룹에서 인바운드 설정 -> 웹서버의 포트를 열어야 할 것이다.

    이번 포스트를 통해서 EC2 인스턴스를 만들고 실행 해 보았다. 인스턴스를 계속 실행시키면 돈이 나갈 수 있으므로 인스턴스를 중지 또는 종료하자.

    중지는 잠깐 멈추는 것, 데스크탑으로 비교하자면 Sleep같은 느낌이고 종료는 아얘 인스턴스를 버리는 것이다.


    댓글

f.software engineer @ All Right Reserved