본문 바로가기
개발

[AWS] AWS를 제어하는 방법

by 마스터누누 2017. 5. 17.
728x90
반응형

AWS를 제어하는 방법




이번 포스팅에서는 콘솔, CLI, SDK, API 등에 대해서 알아보자

이것은 AWS의 인프라(EC2, S3)를 제어하는 방법 들이다.


각각의 방법들이 장점과 특색이 있으므로 다 사용하지 않는다고 하더라도

차이를 알고 있다면 상황에따라 사용할수있는 폭이 넓어질 것이다.


우리가 일반적으로 아마존 웹서비스 홈페이지에 접근해서 서비스를 사용하는것은 GUI방식이다.

이 방법의 장점은 익숙하고, 많은것을 배우지 않아도 눈에 보이는걸 바로 사용할 수 있다.

우리는 기본적으로 GUI를 통해 인프라를 제어하는 것을 배웠지만

아마존에서는 이것 외에도 앞서 언급한 방법들을 모두 제공한다.






첫번째로 우리가 사용할 수 있는 방법은 CLI(Command Line Interface)이다.

여기서 말하는 Command Line이란 명령어를 뜻한다.

즉, 키보드로 명령어를 입력해서 컴퓨터를 제어하는 방식이라고 할 수있다.


CLI를 사용하기 위해, 먼저 터미널(콘솔)창을 연다.

그리고 aws ec2 describe-instances라고 입력하고 엔터를 치면 GUI 환경 처럼 인스턴스들의 목록이

위의 그림과 같이 나오게 된다.


이와같은 CLI의 단점은 어떤 명령어가 있는지 알아야된다는 것이다.

그럼에도 불구하고 CLI를 쓰는 이유는, 사용하는 방법만 익히면 GUI보다 편리하게 시스템을 제어할 수 있다는 것이다.


GUI를 사용하려면 로그인, 사이트 접속, 원하는 메뉴 클릭, 목록을 확인해야하지만

CLI에서는 명령어 한줄로 이 모든 기능을 확인할 수 있다.






또 다른 장점으로는 일련의 연속적인 작업을 한꺼번에 시킬 수 있다.

예를 들어서, Public IP에 대한 정보만 알고싶을 때 앞서 입력한 코드에 

| grep PublicIP라고 입력하고 엔터를 치면

인스턴스 정보 중에서 PublicIP가 들어있는 행 만을 출력하므로 더 쉽게 찾을 수 있다.


이렇게 파이프 라인으로 세트를 만들면 자동화된 처리방식으로 한꺼번에 사용이 가능하다.






그다음에는 SDK(Software Development Kit)라는 방식이 있다.

우선 예를 들어, 컴퓨터가 제공하는 기본적인 명령중에 반복적으로 실행하는 명령어가 있다면 

해당 명령어가 실행되는 순서를 언어의 문법에 따라 정의한 후에

거기에 이름을 붙이면 프로그램을 만든 것이다.


바로 이렇게 우리가 프로그래밍을 통해서 

좀더 지능적이고 섬세한 제어를 할 수있도록 AWS에서 제공하는 도구가 SDK이라고 할 수있다.

따라서 이 SDK는 각각의 언어별로 AWS의 인프라를 제어할 수 있도록 명령어의 세트를 제공한다.


위의 코드는 NodeJs(Javascript) SDK로, AWS의 시스템을 제어하는 코드이다.

다시 말해, AWS에서 제공하는 SDK를 자바 스크립트로 로드한 후에

SDK 에서 제공하는 EC2를 제어하는 명령어를 실행시켜서 그 결과를 출력하는 코드이다.

좀더 상세하게 말해서, 위의 코드를 실행하면 EC2의 많은 목록 중에 Public IP만을 출력하게 된다.







다음으로 살펴 볼것은 API(Application Programming Interface)인데

여기서 이야기하는 API는 SDK와 잘 구분이 되지않는 개념이기는 하다.

SDK는 기본적인 명령을 개발자들이 좀더 쉽게 사용하게 만든 것을 SDK라고 하고

API는 RESTful API라고 해서 웹을 통해서 AWS를 제어하거나 그 상태를 알 수 있게 한다.


https://ec2.amazonaws.com/?Action=DescribeInstances


에를 들어 위와 같은 경로로 AWS서버에 접속하면 

우리가 가지고 있는 인스턴스를 위의 그림과 같이 XML 양식으로 응답 해준다.

이렇게 받아온 XML을 파싱해서 사용하게 된다.


API는 기초적이고 원시적인 방법이다.

기초적이라는 것은 쉽다는 것이 아니라 자유도가 높고 공통의 방식이라는 뜻이다.

따라서 웹 API을 통해서 AWS 를 제어하는 방식은 특정한 프로그래밍 언어를 가리지 않으므로

직접 이용한다면 어떤 언어를 사용하건 상관없이 AWS의 인프라를 사용할 수있게된다.


그러나 이를 직접 이용하는 것은 상당히 불편하므로

어렵다는 것을 알기때문에 공통의  API를 만들어 놓고 이를 이용하는 

각 언어버전의 SDK를 아마존에서 제공하게 되는것이다.

아니면 이러한 이유로 CLI나 GUI도 같이 제공하기 때문에

API를 직접 사용하는 일은 잘 없을것이다.




출처 : 생활코딩, 아마존 웹 서비스

반응형

'개발' 카테고리의 다른 글

[AWS] S3  콘솔을 통한 기본 조작 방법  (0) 2017.05.23
[AWS] Nodejs를 위한 AWS SDK  (0) 2017.05.18
[AWS] Auto Scaling - 생성  (0) 2017.05.17
[AWS] Auto Scaling - Launch Configuration  (0) 2017.05.17
[AWS] Scale Out - ELB 적용  (0) 2017.05.13

댓글