[ 一日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툴 같은 것이라 생각 하시면 됩니다.

 

 

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

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1088 [ 一日30分 인생승리의 학습법 ] Build Your Own Remote Desktop Application using Javascript, Python & WebRTC — Part 2 file 졸리운_곰 2022.08.05 5
1087 [ 一日30分 인생승리의 학습법 ] Build Your Own Remote Desktop Application using Javascript, Python & WebRTC — Part 1 file 졸리운_곰 2022.08.05 2
1086 [ 一日30分 인생승리의 학습법 ] REST API 규칙 졸리운_곰 2022.08.03 0
1085 [ 一日30分 인생승리의 학습법 ]REST API 설계 (네이밍) 졸리운_곰 2022.08.03 0
» [ 一日30分 인생승리의 학습법] [2탄!!] KrakenD Demo 면을 알아보죠! file 졸리운_곰 2022.08.01 0
1083 [ 一日30分 인생승리의 학습법] [1탄!!]KrakenD가 무엇인가? 과연 Api Gateway로 으뜸인가요? file 졸리운_곰 2022.08.01 0
1082 [ 一日30分 인생승리의 학습법] 오픈소스 라이선스 별 의무사항 졸리운_곰 2022.07.29 0
1081 [ 一日30分 인생승리의 학습법] The complete guide to (external) Domain Specific Languages file 졸리운_곰 2022.07.08 3
1080 [ 一日30分 인생승리의 학습법] [Elasticsearch] 기본 개념잡기 file 졸리운_곰 2022.06.02 7
1079 [ 一日30分 인생승리의 학습법]node - pm2로 node.js 프로세스 관리하기 - 기본 명령어, 실행하기 file 졸리운_곰 2022.05.28 3
1078 [ 一日30分 인생승리의 학습법][1탄!!]KrakenD가 무엇인가? 과연 Api Gateway로 으뜸인가요? file 졸리운_곰 2022.04.15 5
1077 [ 一日30分 인생승리의 학습법][API Gateway] Kong Gateway 설치 file 졸리운_곰 2022.04.15 3
1076 [ 一日30分 인생승리의 학습법] TeX_및_LaTeX_수식_문법 file 졸리운_곰 2022.03.19 23
1075 [ 一日30分 인생승리의 학습법] Visual Basic application on linux 졸리운_곰 2022.02.22 5
1074 [ 一日30分 인생승리의 학습법] Truffle을 이용한 DApp 개발환경 구성 file 졸리운_곰 2022.02.20 78
1073 [ 一日30分 인생승리의 학습법]LaTeX 활용해서 논문쓰장 file 졸리운_곰 2022.02.17 10
1072 [ 一日30分 인생승리의 학습법] LaTeX 초보자가 감을 잡는 것을 돕는 몇가지 팁 졸리운_곰 2022.02.17 7
1071 [ 一日30分 인생승리의 학습법] 수식 입력이 가능한 마인드맵 프로그램, 프리플레인(freeplane) file 졸리운_곰 2022.02.16 13
1070 [ 一日30分 인생승리의 학습법] Awesome Metaverse Awesome 짱!~ 메티버스 오픈소스 file 졸리운_곰 2022.02.13 4
1069 [ 一日30分 인생승리의 학습법] 제 NAS의 Docker 목록 file 졸리운_곰 2022.01.31 22
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED