클라우드 환경과 web api 이야기

31
클클클클 클클클 Web API 클클클 AWS Korea User Group 클클클 ([email protected])

Upload: sang-jae-shin

Post on 17-Jan-2017

268 views

Category:

Internet


6 download

TRANSCRIPT

Page 1: 클라우드 환경과 Web API 이야기

클라우드 환경과Web API 이야기

AWS Korea User Group신상재 ([email protected])

Page 2: 클라우드 환경과 Web API 이야기

2

소개클라우드와 API클라우드와 Web API클라우드와 URI, FQDN클라우드와 URL, URN, EndpointQ&A

2017-01-11 AWSKURG 강남 비기너 모임

진행 순서

* 클라우드 서비스는 AWS 와 OpenStack 에 대해서 만 다룸

Page 3: 클라우드 환경과 Web API 이야기

소개

발표자 소개 참고 자료 소개

Page 4: 클라우드 환경과 Web API 이야기

4

[ 소속 및 역할 ] 신상재 ( 삼성 SDS 소프트웨어기술 Lab.) JEE, OSS 기반 소프트웨어 아키텍트

풀 타임 아키텍처 리팩토링 및 코드 리뷰어

[ 업무 외 활동 ] 오픈소스 프로젝트 codelabor.org 운영자

Google Code 서비스 중단 이후 GitHub 로 마이그레이션 못한 상태

Maven Central 2014 년 이후 업데이트 못한 상태

생계형 번역가 , 기술 블로그 popit.kr B 급 작가

무료 IT 관련 콘퍼런스 식도락가 , 티셔츠 수집가

1 인 프로젝트를 운영하며 , IT 관련 이론을 세계관으로 한 B 급 판타지 SF 소설을 쓰는 것이 꿈

2017-01-11 AWSKURG 강남 비기너 모임

발표자 소개

* 인물 이미지는 실물과 차이가 있을 수 있음

Page 5: 클라우드 환경과 Web API 이야기

52017-01-11 AWSKURG 강남 비기너 모임

참고 자료 소개

[ 참고 자료 ] 가제 : 그림으로 배우는 클라우드 인프라 API 의 구조 (

로드북 ) 1 장 , 3 장의 내용 일부 발췌 3~4 월 출간 예정

번역판 베타 리딩중

번역판 교열 작업중

* 일부 내용 발췌에 대해서는 출판사 사전 동의 득함

Page 6: 클라우드 환경과 Web API 이야기

클라우드와 API API 개념 잡기 클라우드를 API 로 제어하는 방법 그림으로 이해하기

Page 7: 클라우드 환경과 Web API 이야기

7

API 개념 잡기

2017-01-11 AWSKURG 강남 비기너 모임

API 가 뭔데 ? 애플리케이션 프로그램 인터페이스 (Application Program Interface) 어떤 소프트웨어에서 다른 소프트웨어를 제어하기 위해 미리 약속된 인터페이스나 규약

API 가 왜 필요한데 ? 클라우드 환경은 SW 로 구현한 가상적인 인프라 환경임 클라우드를 제어하는 방법을 표준화할 필요가 있음 다양한 제어 방법들이 API 기반으로 표준화되고 있음

Page 8: 클라우드 환경과 Web API 이야기

8

클라우드를 API 로 제어하는 방법

제어 방법 설명웹 콘솔 (GUI) 을 사용한 제어(Web Console)

Web 브라우저를 사용GUI 방식으로 제어

명령어를 사용한 제어(CLI)

클라이언트 툴이 제공하는 명령을 실행하여 제어

직접 개발한 프로그램을 사용한 제어(SDK)

직접 개발한 프로그램이 클라우드 API 라이브러리를 활용하여 제어

자동화 툴을 사용한 제어(Management Tool / Service)

클라우드 환경의 자동화 툴을 사용하여 제어2017-01-11 AWSKURG 강남 비기너 모임

Page 9: 클라우드 환경과 Web API 이야기

9

그림으로 이해하기 : 웹 콘솔에서 API 를 통해 관리 서버 제어하기

2017-01-11 AWSKURG 강남 비기너 모임

Page 10: 클라우드 환경과 Web API 이야기

10

그림으로 이해하기 : 클라이언트 툴에서 API 를 통해 관리 서버 제어하기

2017-01-11 AWSKURG 강남 비기너 모임

Page 11: 클라우드 환경과 Web API 이야기

11

그림으로 이해하기 : 프로그램에서 API 를 통해 클라우드 관리 서버 제어하기

2017-01-11 AWSKURG 강남 비기너 모임

Page 12: 클라우드 환경과 Web API 이야기

클라우드와 Web API API vs. Web API 그림으로 이해하기

인터넷 서비스와 Web API 그림으로 이해하기

Web API 의 구성 요소 그림으로 이해하기

Page 13: 클라우드 환경과 Web API 이야기

13

API vs. Web API 일반적인 API

프로그래밍 언어를 사용한 개발 시 참고하는 인터페이스 사양 입력 파라미터와 리턴 값으로 입출력 됨 프로그래밍 언어별로 라이브러리 형태로 구현체가 제공 프로세스 / 쓰레드 차원에서 호출됨

Web API 웹 프로토콜을 활용한 인터페이스 사양 HTTP 요청과 응답으로 입출력 됨 네트워크 차원에서 호출됨

2017-01-11 AWSKURG 강남 비기너 모임

Page 14: 클라우드 환경과 Web API 이야기

14

그림으로 이해하기 : API

2017-01-11 AWSKURG 강남 비기너 모임

Page 15: 클라우드 환경과 Web API 이야기

15

그림으로 이해하기 : Web API

2017-01-11 AWSKURG 강남 비기너 모임

Page 16: 클라우드 환경과 Web API 이야기

16

인터넷 서비스와 Web API 1995 년 ~ 2006 년 전후

정적 HTML 파일 기반의 웹 사이트가 주류 HTML + JavaScript 기술로 클라이언트 측 동적 처리 가능해짐 CGI(C, Perl, Python), php, Servlet(JSP), ASP(.NET) 기술로

서버 측 동적 처리 가능해짐 AJAX 기술로 비동기 처리 가능해짐 아마존 , 구글 , 야후 등이 Web API 를 공개하기 시작

2006 년 이후 Web 2.0 부상 후 , 급 물살을 탐 아마존의 Product Advertising API 가 대표적 사례 ( 이후 AWS 로 전개 ) 페이스북 , 트위터 등 스타트업에서 Web API 활용도 높아짐

2017-01-11 AWSKURG 강남 비기너 모임

Page 17: 클라우드 환경과 Web API 이야기

17

그림으로 이해하기 : 인터넷 서비스와 Web API

2017-01-11 AWSKURG 강남 비기너 모임

Page 18: 클라우드 환경과 Web API 이야기

18

Web API 의 구성 요소

Web API 의 3 요소 인증 처리 (Actor) 제어할 대상 (Resource) 제어 행위 (Action)

영어 문법의 3 형식으로 보는 관점 주어 (Subject) -> Actor 동사 (Verb) -> Action 목적어 (Object) -> Resource

영어 문법의 4 형식으로 보는 관점 보어 (Complement) -> Condision2017-01-11 AWSKURG 강남 비기너 모임

Page 19: 클라우드 환경과 Web API 이야기

19

그림으로 이해하기 : Web API 의 구성 요소

2017-01-11 AWSKURG 강남 비기너 모임

Page 20: 클라우드 환경과 Web API 이야기

클라우드와 URI, FQDN 클라우드에서의 URI 과 FQDN 그림으로 이해하기

Page 21: 클라우드 환경과 Web API 이야기

21

URI, FQDN URI

Uniform Resource Indentifier 클라우드에서 API 를 사용하여 리소스를 지정할 때 사용

FQDN Fully Qualified Domain Name 숫자로된 IP 어드레스가 아닌 사람이 식별할 수 있는 도메인명 전체

2017-01-11 AWSKURG 강남 비기너 모임

참고 : URI 는 URL, URN, URC 를 포함하는 상위 개념이나 웹 환경에서 사용되는 경우 URL 을 사용해도 의미상 큰 무리는 없다 .

Page 22: 클라우드 환경과 Web API 이야기

22

그림으로 이해하기 : AWS 의 FQDN

2017-01-11 AWSKURG 강남 비기너 모임

Page 23: 클라우드 환경과 Web API 이야기

23

그림으로 이해하기 : 도메인 계층의 의미와 확장성

2017-01-11 AWSKURG 강남 비기너 모임

Page 24: 클라우드 환경과 Web API 이야기

클라우드와 URL, URN, Endpoint 클라우드에서의 URL 과 URN 그림으로 이해하기

클라우드에서의 Endpoint 그림으로 이해하기

Page 25: 클라우드 환경과 Web API 이야기

25

URL, URN URN

Uniform Resource Name 네트워크와 상관없이 리소스의 이름을 정의하는 방식 BNF(Backus-Naur Form) 표기법으로 정의함

URL vs. URN Web API 를 통해 리소스를 지정할 때 URL 사용 클라우드 내부에서 리소스를 지정할 때 URN 사용

2017-01-11 AWSKURG 강남 비기너 모임

Page 26: 클라우드 환경과 Web API 이야기

26

비교 : ARN vs. Resouce Property Type Amazon Resource Name 형식

arn:aws:service:region:account-id:resource-type/resource-id

Resource Property Type 형식 “Type”: “AWS::ComponentName::ResourceName::PropertyName”

2017-01-11 AWSKURG 강남 비기너 모임

Page 27: 클라우드 환경과 Web API 이야기

27

그림으로 이해하기 : URL vs. URN (1/2)

2017-01-11 AWSKURG 강남 비기너 모임

Page 28: 클라우드 환경과 Web API 이야기

28

그림으로 이해하기 : URL vs. URN (2/2)

2017-01-11 AWSKURG 강남 비기너 모임

Page 29: 클라우드 환경과 Web API 이야기

29

Endpoint Endpoint

클라이언트가 클라우드에 공개된 API 를 실행하기 위해 접속하는 연결 접점 FQDN 으로 표현됨 클라우드의 게이트웨이 (Gateway) 역할을 함 그 이면에 클라우드를 제어하는 컨트롤러 (Controller) 가 위치함

리소스의 지정 방법 REST API: 계층화된 경로 정보를 사용해서 리소스를 지정 Query API: 쿼리 파라미터를 사용해서 리소스를 지정

2017-01-11 AWSKURG 강남 비기너 모임

Page 30: 클라우드 환경과 Web API 이야기

30

그림으로 이해하기 : REST API vs. Query API

2017-01-11 AWSKURG 강남 비기너 모임

Page 31: 클라우드 환경과 Web API 이야기

31

Q&A 질의 응답

2017-01-11 AWSKURG 강남 비기너 모임