아마존 웹서비스

인스턴스 생성 - 리눅스

EC2 인스턴스를 생성하는 방법

Instance

인스턴스란 컴퓨터 하나를 인스턴스라고 한다. 예를들어 인스턴스 4개를 만든다는 표현은 4개의 컴퓨터를 AWS 인프라 위에 생성한다는 뜻이 된다.

Instance 생성

EC2 콘솔로 접속한다. 사이드바의 메뉴 중에 인스턴스를 선택한다.

인스턴스 화면 중에 Launch Instance를 선택한다.

아래와 같은 화면이 나타나면 그림에 표기된 순서대로 처리한다.

위의 그림에 대한 부가적인 설명은 아래와 같다.

  1. 인스턴스를 생성하는 3가지 방법 중에 하나를 선택한다. 우리는 Quick Launch Wizard를 이용하겠다. AWS Marketplace는 미리 준비된 운영체제와 에플리케이션을 쉽게 사용할 수 있는 방법을 제공한다. 무료도 있고 유료도 있다.
  2. 인스턴스를 쉽게 식별 할 수 있도록 이름을 지정한다.
  3. 키(key)란 인스턴스에 원격으로 접속 할 때 사용하는 비밀번호와 같은 역할을 하는 파일이다. EC2의 인스턴스에 접속할 때는 비밀번호 대신에 이 키를 사용한다. Select Existing은 이미 발급 받은 키를 사용할 때 선택하는 옵션이고, Create New는 새로운 키를 생성하는 옵션이다. None는 키를 사용하지 않을 때의 옵션이다. 키가 없으면 인스턴스에 접속할 수 없다.
  4. 키의 이름을 지정한다.
  5. 키를 다운로드 받는다. 키는 단 한번만 발급되기 때문에 보관에 유의해야 한다. 또한 인스턴스에 접속하는 유일한 방법이기 때문에 안전한 곳에 보관해야 한다. 만약 키를 분실했다면 인스턴스를 이미지로 만들고 해당 이미지로 인스턴스를 새로 생성하는 방법을 사용한다. 이미지는 후속 수업에서 설명한다.
  6. 운영체제를 선택한다. Free tier eligible 표시가 있는 인스턴스만 일년간 무료사용이 가능하다. (우리 수업에서는 Ubuntu Server 버전을 사용한다.)
  7. 이상의 절차를 완료하면 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를 다운받아서 설치한다. 

http://java.com/en/download/

아래와 같은 화면을 보고 있다면 접속에 성공한 것이다. 

댓글

댓글 본문
  1. 서재성
    clear
  2. 현하아빠
    감사합니다.
  3. 쥬쥬
    ssh port 22 operation timed out 에러 뜨시는 분들은
    https://blog.naver.com......532
    이거 보시면 해결되는 것 같네옹!!
  4. 용용
    고맙습니다!
  5. SkynI
    xshell에서 22포트 연결 못하는분들
    저 같은 경우는 운영체제를 WINDOW로 선택하고 진행을 했었는데 여기글은 리눅스에서 해주는 파트라서 안되는
    것일수도 있어요. 인스턴스 다시 생성해서 운영체제를 WINDOW로 안하고 UBUNTU로 하고 security group에서 연결방식을 SSH 로 해주면 될꺼구요.
    윈도우 서버로 하는 방법은 옆에 탭에서 인스턴스생성2를 보시고 진행하시면 될꺼에요!! 제가 여기서 조금 해매서 혹시나 같은 오류 뜨시는 분들한테 참고하시라고 글 남깁니다
  6. 자답. 시큐어리티그룹의 인바운드에서 ssh 소스를 0.0.0.0/0으로 변경
    대화보기
    • 쿠드낫
      xshell에서 22포트 연결 못하는분 없나요 뭘 할 가 없네요..
    • 베리스트롱
      아마존 리눅스 접속할때 혹시 안되시면 아래 링크 보고 따라 하시면 되네요 ^ ^
      http://www.netsarang.co.kr......193
    • TRVL
      정말 감사합니다. 막혀있던 부분에서 시원스레 해결되었습니다. :)
    • Yongbin Lee
      감사합니다.
    • 호오옥시
      EC2 인스턴스를 생성해서 putty로 접속했습니다. 접속한 인스턴스 내에서 오픈스택을 설치해서 대시보드로 인스턴스를 새로 생성을 했는데 이 새로 생성한 인스턴스를 지칭하는 용어가 있을까요???
    • WayneKing
      고고고고
    • 유진
      감사합니다!
    • dolhim
      구글링으로 들어와서 맥에서 인스턴스에 접속하는 방법을 참고하였습니다.
      덕분에 잘 작동하네요 ㅎㅎ
      감사합니다.
    • 초보개발자
      정말 잘 보고있습니다!! 정말 감사합니다~
    • 쭈니
      Could not connect to 'ec2-52-11 ~~이하 public DNS생략~~ ' (port 22) : Connection failed

      이런 메시지에서...

      학교에서 하고 있는데 접속이 안돼는 이유는 학교에서 ip대역을 막아놨을 수도 있기 때문이다라는 댓글을 읽었는데.. 그걸 알 수 있는 방법은 없나요? 막혀있는지... 제가 잘못하고 있는지... 요....
    • naheejouy
      맥북에서 ec2로 ssh 서버에 접근하고 있는데.... 당연한 것일 수도 있지만 컴을 잠자기 모드로 두고 닫아두면 얼마 안있다가 ssh를 통해서 실행시켜놓은 루비 프로그램의 실행이 끝나버리더라구요! 컴퓨터를 그냥 켜놓는 것이 답일까요? 아니면 다른 방법이 있을지... 구글에서 방법을 찾아 헤매는데 기초지식이 부족해서 이해가 잘 안되더라구요 Write failed: Broken pipe <- 접속이 종료되고 나서 터미널에 뜬 메시지 입니다 ! 해결할 수 있는 키가 있다면 알려주세요~
    • quki
      그렇군요!! egoing님 정말감사합니다 ㅠㅠ
      대화보기
      • egoing
        학교에서 차단했을수도 있어요. 만약 이전 aws의 ip 사용자가 건전하지 않은 사이트를 운영하고 있다면 그것을 학교 측에서 차단했을수도 있거든요. 또는 22번 포트로 접근을 막았을수도 있습니다.
        대화보기
        • quki
          AWS EC2 인스턴스를 가르쳐 주신대로 만들어서 리눅스 실습도 따라하면서 잘하고 있습니다.^^

          근데 집에서는 잘되던게 학교 도서관 인터넷에 연결해서 쓰면

          putty에서는 Network error : Connection refused,
          Xshell에서는 Could not connect to 'ec2-52-11 ~~이하 public DNS생략~~ ' (port 22) : Connection failed
          와 같이 뜨네요..

          이유가 혹시 뭔가요? 아 그리고 핸드폰 핫스팟으로 접속하면 또 되네요..

          항상 좋은강의에 너무 감사합니다^^
        • 정기범
          EC2를 선택하면 NAVIGATION이 나오지 않습니다.
          화면이 개편이 된것 같은데...QUICK LAUNCH WIZARD가 없어진건 가요?
          완전히 달라진것 같습니다...
        • trialkim
          와 그렇다면
          AWS 사용이 일반화되면 (그래서 PC 신규구매가 급감하면)
          PC회사는 망한건가요?
          대화보기
          • egoing
            옙 무관합니다~
            대화보기
            • trialkim
              AWS EC2에서 고사양 옵션을 선택하면
              굳이 제 PC를 고사양으로 구매할 필요가 없는 건가요?

              제 PC가 구리든, 고사양 이든
              AWS 사용성능에는 아무 상관 없는건가요?

              감사합니다.
            • 초보
              잇힝님

              Thank you for signing up for Amazon EC2. Your subscription is being processed.

              위 메세지가 나오고 하루나 이틀, 혹은 일주일 넘게 인증이 안된다면 100% 신용카드 문제입니다.
              처음에 payment method 화면에서 신용카드 등록할 때 정상적으로 등록되면 1달러 결제문자가 오는데
              카드번호 오류나 그외 다른 문제로 인증이 안되는 경우가 있습니다. 그때는 저 화면 나오면서 인증이 안됩니다.
              해결 방법은 payment method에서 처음에 등록한 신용카드 완전히 삭제하고 새로 등록해주면 됩니다.
              카드번호, 카드에 적힌 이름, 유효기간만 정확히 확인하면 문제 없을겁니다.
              정상적으로 등록되면 1분 이내로 인증완료 메일이 오고 바로 사용하실 수 있습니다^^
            • 잇힝
              상남자님의 질문처럼 저또한 똑같이 나오는데요, 몇분뒤면 되나요?? 안되면 어떠한 작업을 해야하는건가요 ??
              무조건 기다려야 하는 건가요??
            • 회멸
              번역:
              - 등록 잘 됐음
              - 몇분뒤면 될거임
              - 그동안 Colsole이나 구경할래?

              저 내용 무엇때문에 그리 당황하면서 우시나요?
              대화보기
              • 상남자
                Thank you for signing up for Amazon EC2. Your subscription is being processed.

                We will send you an email when you can begin using this service. For most customers this takes only a few minutes, but if additional account verification is required, then processing can take several hours.
                Until your subscription is ready, you can learn more about the AWS Management Console.

                도대체 이건 무슨 이유 때문에 ......
                ㅠㅠ
              • 슈고
                잘보고 갑니다^^
              • egoing
                축하드려요. :)
                대화보기
                • 한란
                  흠....카페에서 하고있는데 인스턴스 접속하는데 타임아웃이라고 뜨네요~ 집에서 와이파이로 하면 될려나... 일단 강의는 모두 봤으니 봤어요! 를 누르고 ^^ 다시 또 도전하도록 하겠습니다.

                  저는 컴퓨터학원에서 플로핏디스켓 가지고 한글같은거 배우다가 윈도우 95가 등장하면서 커맨드창은 많이 사용해보질 않았어요. dir치면 막 글자가 위로 울라오는것이 신기했던.. 경험밖에 없었습니다 ~ ㅋㅋ

                  이번에 맥북도 어찌하여 중고로 구입하게 되었고, 전공도 컴퓨터싸이언스로 다시 바꾸려고 계획하고있는중이라 생활코딩 재밌게 시청하고있습니다. 작심 끝나면 열혈강의 C를 다시한번 일독하고 파이썬으로 결과물 만들면서 코딩의 재미를 느껴보려합니다~ 여기까지 따라오고계신 비전공자분들! 화이팅하세유~~~ 굿데이!!
                • 김인석
                  저도 김현진님처럼 Thank you for signing up for Amazon EC2. Your subscription is being processed. 이거 뜨네요;;
                • pruche
                  윈도우에서 SSH 웹에서 직접 연결을 하려고 하는데 Launch SSH Client 를 눌러도 반응이 없는데 어떻게 연결시켜야 될까요? com.mindbright.application.mindterm 에 연결한다는 창이 떠서 확인을 눌렀는데 그다음 아무 반응이 없네요.
                • 김현진
                  가입하고, AWS console에 들어가서 작업하려고 하는데요..... 요렇게 나오면서 접속이 안되네요..;;
                  대충 해석해보니, 쫌만 기다려달라는것같은데.. 2일이 지나도록 안되서요;; 혹시 이런거 보신적있으신가요..?ㅜㅜ

                  Account pending

                  Thank you for signing up for Amazon EC2. Your subscription is being processed.

                  We will send you an email when you can begin using this service. For most customers this takes only a few minutes, but if additional account verification is required, then processing can take several hours.

                  Until your subscription is ready, you can learn more about the AWS Management Console.
                • egoing
                  저도 비슷한 문제가 있었습니다. Security Group를 변경하면 해결이 되더군요.

                  아래 이미지를 참고하시면 어떻게 인스턴스 생성시에 Security 그룹을 변경하는지 알 수 있을꺼예요 :)

                  https://s3.ap-northeast-2.amazonaws.com......PNG
                  대화보기
                  • 질문자 ㅜ
                    인스턴스 생성시 계속


                    Each network interface requires either a subnet or a network interface ID.

                    라는 문구와 함께 생성자체가 안되네요 ㅠㅠ
                  버전 관리
                  egoing
                  현재 버전
                  선택 버전
                  graphittie 자세히 보기