[ 一日30分 인생승리의 학습법] [2탄!!] KrakenD Demo 면을 알아보죠!

[1탄!!]KrakenD가 무엇인가? 과연 Api Gateway로 으뜸인가요? 전단계 넘어가기

KrakenD 를 알아보기 위해 살짝 Demo를 해보겠습니다.

KrakenD ApiGateway Demo 를 실행하기 위해선 준비물이 있습니다. Vm 웨어 혹은 버쳐박스 , 그리고 KrakenD 싸이트가 전부 입니다. 약간의  docker-compose up 지식! 준비물은 간단하죠? KrakenD 는 이렇게 말하더라구요!
If you are new to KrakenD, a quick way to get started is to make use of the KrakenD Playground.
이해 하시죠? Playground 를 해보는게 가장 빠르다
 

  KrakenD 어떻게 쓰면되나요???

  Playground 를 해보는게 가장 빠르다고 합니다. 사용구성은 아래 그림처럼 Demo 를 함께 만들어 볼까요?  

 

 

 

1. 먼저 KrakenD 사이트에 접속 합니다. 접속화면은 아래와 같습니다. 

 

 

 

  2. 왼쪽 메뉴중에 The playground 클릭하고 2번에 보이는 플레이 그라운드를 클립합니다. 

     zip 파일을 다운로드 할수 있습니다. 

 

 

 

 

3. 다운로드 zip 파일을 클릭하여 압축파일을 다운로드 합니다. 

 

 

 

4. 저는 압축 을 아래와 같은 경로로 풀었습니다. 

[root@localhost krakend]# pwd

/opt/krakend/krakend-playground-master/krakend

[root@localhost krakend]# pwd
/opt/krakend/krakend-playground-master/krakend
[root@localhost krakend-playground-master]# ll
-rw-r--r--. 1 root root 11357  3월  6 10:31 LICENSE
-rw-r--r--. 1 root root  4242  3월  6 10:31 README.md
-rw-r--r--. 1 root root 36687  3월  6 10:31 composer-env.png
drwxr-xr-x. 8 root root   228  3월  6 10:31 data
-rw-r--r--. 1 root root   737  3월  6 10:31 docker-compose.yml
drwxr-xr-x. 2 root root    67  3월  6 10:31 jwt-revoker
drwxr-xr-x. 2 root root    51  3월 13 11:31 krakend
-rw-r--r--. 1 root root 25035  3월  6 10:31 logo.png
drwxr-xr-x. 3 root root   171  3월  6 10:31 web

 

5.  docker-compose.yml 이파일이 중요합니다. 해당 위치에서  docker-compose up 같이 실행 합니다. 잠깐만요!!... docker-compose 도 설치 해야 합니다.

그냥 명령어치게 되면 command not found 에러가 발생하죠!

  1) 설치전 화면 모습

 

  

 

   2) yum install docker-compose 인스톨 은 아래와 같이 하시면 됩니다. 

1
2
3
4
5
6
리눅스 상에서 DOCKER-COMPOSE를 설치하는 방법은 아래와 같습니다.
참고 url :  https://docs.docker.com/compose/install/
 
[root@localhost krakend]# sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@localhost krakend]# chmod +x /usr/local/bin/docker-compose
[root@localhost krakend]# docker-compose
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

    3) 자 아래 화면은 docker-compose.yml 있는곳에서 실행 시킨겁니다.

[root@localhost krakend-playground-master]# ll
합계 88
-rw-r--r--. 1 root root 11357  3월  6 10:31 LICENSE
-rw-r--r--. 1 root root  4242  3월  6 10:31 README.md
-rw-r--r--. 1 root root 36687  3월  6 10:31 composer-env.png
drwxr-xr-x. 8 root root   228  3월 13 21:31 data
-rw-r--r--. 1 root root   737  3월  6 10:31 docker-compose.yml
1
2
3
4
5
6
7
8
[root@localhost krakend]# docker-compose up
 
Starting krakend-playground-master_web_1             ... done
 
web_1              | > calling-an-api@0.0.0 start /home/app
web_1              | > serve -3000
web_1              |
web_1              | INFO: Accepting connections at http://localhost:3000
 

   

6. 자! 실행 하면 도커 컨테이너가 띄워 졌습니다. 

    아래 보이는 컨테이너들의 역할 입니다. 과연 무엇을 위해 띄워졌을까요 ? 

    안에 auth0 대한 내용 수정 해보까요?

     docker exec -it krakend-playground-master_web_1 /bin/sh

 

krakend-playground-master_fake_api_1                  목업서버  
krakend-playground-master_jaeger_1                     예거 : log및 모니터링 추적  
krakend-playground-master_jwt_revoke_1                jwt 인증 revoke
krakend-playground-master_kraken_designer_1        json designer 
krakend-playground-master_krakend_ce_1               KrakenD 환경                                            
krakend-playground-master_web_1                       Auth0 위한 인증 서버 환경 구성

혹시나 아래와 같은 메세지가 발생 하면. 이럴땐 간단히 아래와 같이 해보시고 자연스럽게 넘어가시면 됩니다.

ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

[root@localhost krakend-playground-master]# unset DOCKER_HOST
[root@localhost krakend-playground-master]# systemctl start docker

 

1
2
3
4
5
6
7
8
9
10
[root@localhost krakend-playground-master]# docker-compose ps -a
                   Name                                  Command               State                               Ports
-----------------------------------------------------------------------------------------------------------------------------------------------------
krakend-playground-master_fake_api_1           build/lwan/lwan                    Up      443/tcp, 80/tcp, 0.0.0.0:8000->8080/tcp
krakend-playground-master_jaeger_1             /go/bin/all-in-one-linux - ...    Up      14250/tcp, 0.0.0.0:14268->14268/tcp, 0.0.0.0:16686->16686/tcp,
krakend-playground-master_jwt_revoke_1         jwt-revoker                       Up      0.0.0.0:9000->8080/tcp
krakend-playground-master_kraken_designer_1   nginx -g daemon off;            Up      0.0.0.0:8787->80/tcp
krakend-playground-master_krakend_ce_1        /usr/bin/krakend run -/e ...    Up      0.0.0.0:1234->1234/tcp, 8000/tcp, 0.0.0.0:8080->8080/tcp,
krakend-playground-master_web_1                npm start                          Up      0.0.0.0:3000->3000/tcp
 
 

 

6-1) localhost:8000 띄우시면 아래와 같은 화면이 나오면 성공![krakend-playground-master_krakend_ce_1]

 

 

 

6-2) localhost:8787 띄우시면 아래와 같은 화면이 나오면 성공![krakend-playground-master_kraken_designer_1]

      json 파일을 생성해주는 툴이라고 생각 하시면 됩니다.

 

 

 

 

6-3) localhost:9000 띄우시면 아래와 같은 화면이 나오면 성공![krakend-playground-master_jwt_revoke_1]

      JWT 암/복호화 라고 생각 하시면 됩니다.

 

 

 

6-4) localhost:16686 띄우시면 아래와 같은 화면이 나오면 성공![krakend-playground-master_jaeger_1]

모니터링 툴 zipkin툴 같은 것이라 생각 하시면 됩니다.

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

Jaeger UI 는 모니터링 툴입니다. 해당 공부는 이곳 에서 해보시길 바랍니다. 

 

 

 

 

7. 가장 중요한 Auth0(인증)에 대해서 한번 알아보겠습니다.

 

 

 

7-1) localhost:3000 띄우시면 아래와 같은 화면이 나오면 성공![krakend-playground-master_web_1]

      http://127.0.0.1:3000 혹은  localhost:3000 화면이 떳다면  우선 성공입니다. 축하드립니다. 

 

 

 

 

7-2) https://auth0.com/로그인 하시면 본인 계정으로 applications 크릭해보시면 제가 테스트 하고 있는

      2개를 보실수 있습니다. 

 

 

 

 

7-3) 해당 내용 클릭해서 보시면. Domain, Client ID 값을 별도로 저장해 둡니다.

 

 

 

 

7-4) 띄워진... 도커 환경에 들어가서 아래와 같이 수정합니다. 수정후 docker-compose up 다시 올립니다.

     수정 반영되었는지 확인하기 위해서 입니다.

컨테이너 들어가는 방법은 docker exec -it krakend-playground-master_web_1 /bin/sh  입력하시면 되구요

컨테이너에 들어 왔다면... auth0-variables.js 파일을 열어서 아래 설명! 같이 수정 하시면 됩니다.

 

설명!
[root@localhost krakend-playground-master]# docker exec -it krakend-playground-master_web_1 /bin/sh

/home/app # pwd 
/home/app 
참고[도커안에 들어온 상황 입니다.]
/home/app # cat auth0-variables.js
var AUTH0_CLIENT_ID='SC2fZwdqBv0zUGtBWlik605XUa2cVige';
var AUTH0_DOMAIN='dev-hna8gcmj.auth0.com';
var AUTH0_AUDIENCE = 'https://dev-hna8gcmj.auth0.com/api/v2/';
var AUTH0_CALLBACK_URL = location.href;

 

7-5) 로그인이 잘되는것을 확인 할수 있습니다.

 

 

 

 

7-6) 로그인에 성공 하면 아래와 같은 화면이 뜹니다. auth0 에 사용자가 로그인 해야할 ID/passwd 를 입력합니다. 

 

 

 

7-7)  auth0 접속에 성공했네요~ping 버튼 누르시고  call public 누르시면 호출하는 화면을 보실수 있습니다.

 

 

 

8) KrakenD 동영상 에서 시연한 내용을 재현해보겠습니다. Token을 생성하는 화면입니다.

 

 

8-1) 위 동여상 내용을 확대해보면 아래와 같습니다.

1
2
3
4
5
6
7
8
9
10
11
[root@localhost web]# curl -i localhost:8080/token
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Vary: Origin
Date: Sun, 15 Mar 2020 18:53:10 GMT
Content-Length: 661
 
{"access_token":"eyJhbGciOiJIUzI1NiIsImtpZCI6InNpbTIifQ.eyJhdWQiOiJodHRwOi8vYXBpLmV4YW1wbGUuY29tIiwiZXhwIjoxNzM1Njg5NjAwLCJpc3MiOiJodHRwczovL2tyYWtlbmQuaW8iLCJqdGkiOiJtbmIyM3Zjc3J0NzU2eXVpb21uYnZjeDk4ZXJ0eXVpb3AiLCJyb2xlcyI6WyJyb2xlX2EiLCJyb2xlX2IiXSwic3ViIjoiMTIzNDU2Nzg5MHF3ZXJ0eXVpbzExIn0.XDZ0R6kdH1RU5D4KwgRyTLPICw7U-a_4GfAtb5Vu7js","exp":1735689600,"refresh_token":"eyJhbGciOiJIUzI1NiIsImtpZCI6InNpbTIifQ.eyJhdWQiOiJodHRwOi8vYXBpLmV4YW1wbGUuY29tIiwiZXhwIjoxNzM1Njg5NjAwLCJpc3MiOiJodHRwczovL2tyYWtlbmQuaW8iLCJqdGkiOiJtbmIyM3Zjc3J0NzU2eXVpb21uMTI4NzZidmN4OThlcnR5dWlvcCIsInN1YiI6IjEyMzQ1Njc4OTBxd2VydHl1aW8xMSJ9.zsVTSv4WYfCyT64sgc2-hrXoTDZNo_3eAhf9AQ7ITJ4"}
[root@localhost web]#
[root@localhost web]#
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

8-2) 발행된 암호화 토큰을 내용입니다.

 

 

8-2) 발행된 토큰을 해석해보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost web]# curl -i -H "Authorization: bearer eyJhbGciOiJIUzI1NiIsImtpZCI6InNpbTIifQ.eyJhdWQiOiJodHRwOi8vYXBpLmV4YW1wbGUuY29tIiwiZXhwIjoxNzM1Njg5NjAwLCJpc3MiOiJodHRwczovL2tyYWtlbmQuaW8iLCJqdGkiOiJtbmIyM3Zjc3J0NzU2eXVpb21uYnZjeDk4ZXJ0eXVpb3AiLCJyb2xlcyI6WyJyb2xlX2EiLCJyb2xlX2IiXSwic3ViIjoiMTIzNDU2Nzg5MHF3ZXJ0eXVpbzExIn0.XDZ0R6kdH1RU5D4KwgRyTLPICw7U-a_4GfAtb5Vu7js" localhost:8080/private/custom
HTTP/1.1 200 OK
Cache-Control: public, max-age=300
Content-Type: application/json; charset=utf-8
Vary: Origin
X-Krakend: Version 1.1.0
X-Krakend-Completed: true
Date: Sun, 15 Mar 2020 19:01:02 GMT
Content-Length: 274
 
{"address":{"city":"11111New York","postalCode":"10021","state":"NY","streetAddress":"21 2nd Street"},"age":25,"firstName":"cymJohn","id_user":1,"lastName":"Smith","phoneNumber":[{"number":"212 555-1234","type":"home"},{"number":"646 555-4567","type":"fax"}],"role":"user"}
[root@localhost web]#
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

8-2) 실제 정보는 아래와같이 입력되고 있음을 알수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@localhost data]# cd user/
[root@localhost user]# ll
합계 4
-rw-r--r--1 root root 469  3월 13 21:58 1.json
[root@localhost user]# vi 1.json
[root@localhost user]# pwd
/opt/krakend/krakend-playground-master/data/user
[root@localhost user]# cat 1.json
{
     "id_user"1,
    "firstName""cymJohn",
    "lastName""Smith",
    "age"25,
    "role""user",
    "address":
    {
        "streetAddress""21 2nd Street",
        "city""11111New York",
        "state""NY",
        "postalCode""10021"
    },
    "phoneNumber":
    [
        {
            "type""home",
            "number""212 555-1234"
        },
        {
            "type""fax",
            "number""646 555-4567"
        }
    ]
}
 
 

코로나 19 건강에 유의 하시길 바랍니다.

 

감사합니다.

[출처] https://tommypagy.tistory.com/175

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1191 ePub 의 개요 [전자책 표준] 가을의 곰을... 2009.09.03 30229
1190 ubuntu에서 tcl/tk 설치 가을의 곰을... 2010.08.08 25231
1189 ProGuard - 자바 역컴파일 방지 [1] 가을의 곰을... 2010.01.14 22719
1188 안드로이드 구조분석 wiki file 가을의 곰을... 2010.01.10 22130
1187 C Programming Links 가을의 곰을... 2009.09.02 21174
1186 자바에서 x86 어셈블리로 프로그래밍: x86 Assembly Programming in Java Platform 가을의 곰을... 2011.11.15 20535
1185 ubuntu에서 wxPython 설치하기 가을의 곰을... 2010.08.08 19730
1184 Programatically retrieving data from a website into a database file 졸리운_곰 2017.02.26 18828
1183 ▣ Emacs 사용법 ver 3.0 [1] 가을의 곰을... 2010.01.02 18685
1182 GOF 디자인패턴 file 가을의 곰을... 2009.12.05 17690
1181 emacs 사용법 file 가을의 곰을... 2010.01.03 17418
1180 미래 네트워크 연구 동향 file 가을의 곰을... 2009.12.13 17234
1179 소스인사이트 단축키 (2) 가을의 곰을... 2010.10.11 17003
1178 Android 빌드하여 AVD 생성 및 시뮬에 올리기 file 가을의 곰을... 2010.08.15 16946
1177 기계학습 (머신러닝:Machine Learning) 참고자료 링크 : 머신러닝 : 기계 학습 프로그래밍 자료 졸리운_곰 2014.11.29 16075
1176 Overview of MS Fortran Compiler 가을의 곰을... 2009.09.04 15743
1175 Java GUI 프로그래밍 가을의 곰을... 2011.06.05 15694
1174 < 목표성취의 7단계 > 가을의 곰을... 2009.08.17 15465
1173 JQuery의 힘으로 제작된 17 가지 오픈소스 웹 게임들 가을의 곰을... 2013.01.02 15343
1172 Spring 3 MVC Hello World Example file 가을의 곰을... 2011.11.01 14983
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED