Instance
인스턴스란 컴퓨터 하나를 인스턴스라고 한다. 예를들어 인스턴스 4개를 만든다는 표현은 4개의 컴퓨터를 AWS 인프라 위에 생성한다는 뜻이 된다.
Instance 생성
EC2 콘솔로 접속한다. 사이드바의 메뉴 중에 인스턴스를 선택한다.
인스턴스 화면 중에 Launch Instance를 선택한다.
아래와 같은 화면이 나타나면 그림에 표기된 순서대로 처리한다.
위의 그림에 대한 부가적인 설명은 아래와 같다.
- 인스턴스를 생성하는 3가지 방법 중에 하나를 선택한다. 우리는 Quick Launch Wizard를 이용하겠다. AWS Marketplace는 미리 준비된 운영체제와 에플리케이션을 쉽게 사용할 수 있는 방법을 제공한다. 무료도 있고 유료도 있다.
- 인스턴스를 쉽게 식별 할 수 있도록 이름을 지정한다.
- 키(key)란 인스턴스에 원격으로 접속 할 때 사용하는 비밀번호와 같은 역할을 하는 파일이다. EC2의 인스턴스에 접속할 때는 비밀번호 대신에 이 키를 사용한다. Select Existing은 이미 발급 받은 키를 사용할 때 선택하는 옵션이고, Create New는 새로운 키를 생성하는 옵션이다. None는 키를 사용하지 않을 때의 옵션이다. 키가 없으면 인스턴스에 접속할 수 없다.
- 키의 이름을 지정한다.
- 키를 다운로드 받는다. 키는 단 한번만 발급되기 때문에 보관에 유의해야 한다. 또한 인스턴스에 접속하는 유일한 방법이기 때문에 안전한 곳에 보관해야 한다. 만약 키를 분실했다면 인스턴스를 이미지로 만들고 해당 이미지로 인스턴스를 새로 생성하는 방법을 사용한다. 이미지는 후속 수업에서 설명한다.
- 운영체제를 선택한다. Free tier eligible 표시가 있는 인스턴스만 일년간 무료사용이 가능하다. (우리 수업에서는 Ubuntu Server 버전을 사용한다.)
- 이상의 절차를 완료하면 Continue 버튼이 활성화 된다.
인스턴스는 아래와 같은 설정으로 생성될 것이다. 설정을 변경하고 싶으면 Edit detail를 선택한다.
아래는 처리 결과를 표시한다. Close를 누르면 instance 화면으로 복귀한다.
성공적으로 생성한 인스턴스는 아래와 같이 인스턴스 목록에 표시된다. State가 running이 되면 접속 가능하고, 서비스 가능한 상태가 된 것이다.
인스턴스 접속
인스턴스에 접속 할 때는 SSH 라는 방법을 이용하는데, SSH에 대한 세부적인 내용은 원격제어 모듈의 SSH 토픽을 참조하자. http://opentutorials.org/module/432/3738
인스턴스에 접속하기 위해서는 우선 인스턴스에 접근 할 수 있는 URL을 알아야 하고, 두번째로는 인스턴스를 제어할 수 있는 클라이언트가 필요하다. SSH는 원격에 있는 컴퓨터를 제어하는 프로그램 혹은 통신방법인데, 리눅스나 맥에는 내장되어 있고, 윈도우에서는 따로 설치를 해야 한다. 아래 설명은 SSH를 이용해서 인스턴스를 제어하는 방법에 대한 것이다.
우선 접속하고자 하는 인스턴스를 선택하고 오른쪽 클릭을 해서 Connect 항목을 선택한다.
아래의 화면에서 'Connect with a standalone SSH Client'를 선택하면 Public DNS 항목이 있는데 이것이 인스턴스에 접근 할 수 있는 URL이다.
이 정보를 바탕으로 인스턴스에 접속하게 되는데 운영체제 별로 인스턴스에 접속하는 방법은 아래와 같다.
Mac
맥과 리눅스는 모두 유닉스에서 파생된 시스템이기 때문에 사용방법이 거의 같다. 다만 터미널이라는 프로그램을 실행하는 방법이 조금 다를 뿐이다. 맥에서는 Spotlight에 terminal을 입력해서 찾은 후에 실행한다.
그럼 아래와 같은 프로그램이 시작될 것이다. 이것이 터미널이다. 여기에 명령을 입력해서 다양한 작업을 하게 된다.
이후부터는 맥과 리눅스가 같기 때문에 이어지는 리눅스 단락에서 서버에 접속하는 법을 함께 설명하겠다.
Linux(ubuntu)
리눅스는 기본적으로 터미널 환경이기 때문에 특별히 언급할 필요가 없지만, 데스크탑 버전을 사용하는 경우 아래와 같이 한다. 우분투를 예로 들어 설명한다.
Dash home 버튼을 누르고 검색창에 terminal을 입력한다.
terminal 아이콘을 클릭해서 터미널을 실행한다.
아래와 같이 생긴 프로그램이 터미널이다.
우선 SSH로 접근하기 위해서는 URL(Public DNS)을 알아야하고, 인스턴스를 생성하는 과정에서 사용했던 Key가 필요하다. 우선 key의 권한(permission)을 자신만 접근할 수 있게 변경한다.
chmod 400 opentutorials_key.pem
아래의 명령은 발급 받은 opentutorials_key.pem 파일을 이용해서 'ec2-54-248-186-49.ap-northeast-1.compute.amazonaws.com'에 위치하는 컴퓨터에 ubuntu 사용자의 계정으로 접속한다는 의미다. 우리가 설치한 ubuntu 인스턴스는 기본 유저가 ubuntu이기 때문에 ubuntu를 사용한 것이고, 이것은 인스턴스에 어떤 운영체제를 설치했는가에 따라 다르다. 접속이 되지 않는다면 유저를 root로 변경해보고 시도 해본다. 정확한 유저의 이름은 메뉴얼을 통해서 알아내야 한다.
ssh -i opentutorials_key.pem ubuntu@ec2-54-248-186-49.ap-northeast-1.compute.amazonaws.com
아래와 같은 화면이 나타난다면 성공적으로 접속한 것이다.
이제 명령을 입력해서 원격에 있는 인스턴스를 제어할 수 있게 됐다.
Window
윈도우에서는 Xshell을 추천한다. 기업에서는 유료지만 가정이나 학교에서는 무료로 사용할 수 있다. 완전한 프리웨어로는 putty가 유명하다. Xshell을 다운로드 받기 위해서는 아래의 URL에 방문한다.
http://www.netsarang.co.kr/download/main.html
Xshell을 다운로드 한 후에 실행하면 아래와 같은 화면이 나타날 것이다.
위의 화면에서 '새로 만들기' 버튼을 누르고 새션등록 정보 창에서 이름에 구별할 수 있는 인스턴스의 이름을 입력하고 호스트에 URL(Public DNS)을 입력한다.
인증정보를 아래와 같이 입력한다.
키를 등록하는 화면이 나타나면 아래의 그림과 같이 따라한다.
이제 접속할 준비가 됐다. 열기 버튼을 누르거나 Alt+O 단축키를 이용해서 세션창을 띄우고 생성한 접속 정보를 더블 클릭하면 된다. 등록되지 않은 호스트 키라는 메시지가 출력되면 '받아들이고 저장'을 누른다.
아래와 유사한 화면이 출력되면 성공적으로 접속한 것이다.
이제 명령을 입력해서 원격에 있는 인스턴스를 제어할 수 있게 됐다.
웹에서 직접 연결
SSH 클라이언트를 설치하지 않고 웹에서 직접 접속 할 수 있는 방법이 있다. 이 방법을 사용하기 위해서는 인스턴스 위에 마우스를 가져놓고 오른쪽 클릭을 한 후에 connect 항목을 선택한다. 'Connect to an instance' 대화상자에서 아래의 옵션을 선택한다.
웹에서 접속을 하려면 Java가 설치되어 있어야 한다. 접속이 되지 않는다면 아래 URL로 접근해서 Java를 다운받아서 설치한다.
아래와 같은 화면을 보고 있다면 접속에 성공한 것이다.