Edge Microgateway 설정 및 구성

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

Edge Micro Gateway v. 3.3.x

개요

이 설정 가이드의 단계를 완료하면 API 요청을 처리할 수 있도록 완전히 구성된 Edge Micro Gateway 설치가 완료됩니다. Edge Micro Gateway를 통해 백엔드 대상에 대한 안전한 API 호출을 수행하여 설정을 테스트합니다. 또한 Micro Gateway에 급증 저지 플러그인을 추가하는 방법도 알아봅니다.

이 가이드는 다음과 같이 구성됩니다.

기본 요건: Edge Micro Gateway 설치

Edge Micro Gateway 설치의 안내를 따릅니다. 설치를 완료하면 이 튜토리얼의 단계를 따를 수 있습니다.

1부: Edge Micro Gateway 구성

이 부분에서는 명령줄 인터페이스 (CLI) 명령어를 사용하여 Edge Micro Gateway가 Apigee Edge와 통신하도록 구성합니다.

Apigee Edge Cloud 구성 단계

다음 단계에 따라 Edge Micro Gateway를 Apigee Edge Cloud와 함께 사용하세요.

  1. Edge Micro Gateway를 초기화합니다 (이 단계는 한 번만 실행하면 됨).
    edgemicro init
    
  2. default.yaml 구성 파일은 .edgemicro라는 하위 디렉터리의 홈 디렉터리에 배치되었습니다. 지금 이 파일이 있는지 확인하세요.
    ls ~/.edgemicro
    default.yaml
    

    참고: Edge Micro Gateway 문서에서는 UNIX 바로가기인 물결표 (~)를 사용하여 홈 디렉터리를 참조합니다. Windows를 사용하는 경우 물결표를 지원하지 않는 셸을 실행하는 경우 홈 디렉터리를 참조하는 명령어에서 물결표로 적절한 환경 변수를 대체해야 합니다. 예를 들면 %USERPROFILE%/.edgemicro입니다.

  3. 모든 CLI 명령어에는 도움말 기능이 있습니다. edgemicroconfigure 명령어에 대한 도움말을 출력합니다.
    edgemicro configure -h
    
  4. 다음 명령어를 실행하여 Edge Microgateway를 구성합니다.
    edgemicro configure -o [org] -e [env] -u [username] 
    

    각 항목의 의미는 다음과 같습니다.

    • org: Edge 조직 이름 (조직 관리자여야 함).
    • env: 조직의 환경 (예: 테스트 또는 프로덕션)
    • username: Apigee 계정과 연결된 이메일 주소입니다.

      참고:configure 명령어는 추가 매개변수를 허용합니다. 전체 목록은 Apigee Edge Cloud용 Edge Micro Gateway 구성을 참조하세요.

edgemicro configure -o docs -e test -u jdoe@example.com

출력

./edgemicro configure -o docs -e test -u jdoe@apigee.com
password:
current nodejs version is v12.5.0
current edgemicro version is 3.1.0
password:
file doesn't exist, setting up
Give me a minute or two... this can take a while...
App edgemicro-auth deployed.
checking org for existing KVM
error checking for cert. Installing new cert.
creating KVM
adding private_key
adding public_key
configuring host edgemicroservices-us-east-1.apigee.net for region us-east-1

saving configuration information to: $HOME/.edgemicro/docs-test-config.yaml

vault info:
 -----BEGIN CERTIFICATE-----
MIICpDCCAYwCCQCQ2mJZJGbPPTANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls
b2NhbGhvc3QwHhcNMTcwOTA3MjA0ODA4WhcNMTcwOTA4MjA0ODA4WjAUMRIwEAYD
VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDw
yzmqi5CelqqtTr6IaFe1ssrMXEDnNtkBh95U6F5zHLsNQhJcyNUAO9um6FLMSqSd
fTztXfWUZzDgmbb6sfbx/9cqpvQ8TIjxyIz8xGM9H4legRQmsCQoYGkLjpPE5ZOa
wZrI5IaVm8LY6vbopPFwxgKOQ9bphx6k9Na055DmNyZAOTMD+4I0m/RdsrnZnYih
3DaFj1tXHKZI1jfAt/QOif5Nmk4+JckYwF+9HBysWUbbvj/gnBjVYF2Isb7q7oFD
lPGhwFoIebMqHMWD8lG7+9RJDO9dDV6f1g1/9waIrq1D+MoVXos9VMstNrPp0cKF
Ue+lAkct8tylH+2MosF7AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAJMRdcQh3ayy
csVVT4TYwxV7MKWRfhDRz6X+MM9frB+Z7sI4+ZoZbXKOoZI2hSjmbdLpkNR/m9eJ
+1Uk0JKmpSY7Q+1rRrvcHsWNysGf4z+zDJXYECTrtSnXKBXtb9SJ8JAfoZOQD0lA
zmKuJjQMLTdiYMHOBR6ZWnaKaRvrQwGHcQrheJm4a90XgZF6jcRR8CPrBzkmsbCp
IU/Ux3E17wDGYPxjJs5otyQG8rN/88RGyaSeXK8rjKr9D4KFGJeasXBKmTG2afAr
yfBvS4h6s42FCOR/eLpmMllVoO9up71Fa3EtV+aK+FNNY9uMbgUHeLQE7z9nn06q
PTmvExZLkLQ=
-----END CERTIFICATE-----

The following credentials are required to start edge micro
  key: 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb
  secret: 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
    

Apigee Private Cloud 구성 단계

다음 단계에 따라 Edge Micro Gateway를 Apigee Private Cloud와 함께 사용하세요.

  1. Edge Micro Gateway를 초기화합니다 (이 단계는 한 번만 실행하면 됨).
    edgemicro init
    
  2. edgemicro private configuration 명령어에 대한 도움말 정보를 출력합니다. 모든 Edge Microgateway CLI 명령어 또는 명령어 옵션에 이 방법으로 도움말을 출력할 수 있습니다.
    edgemicro private configure -h
    
  3. 다음 명령어를 실행합니다. Apigee Edge 프라이빗 클라우드 계정에 대한 표준 정보(조직 이름, 환경 이름, 사용자 이름(이메일 주소), 비밀번호, 관리 서버 IP, 라우터 IP)가 필요합니다.
    edgemicro private configure -o [org] -e [env] -u [username] -r [runtime_url] -m [mgmt_url] -v [virtual_host]
    
    명령어를 사용하려면 Edge 조직 관리자여야 합니다.

    각 항목의 의미는 다음과 같습니다.

    • org은 Edge 조직 이름입니다 (조직 관리자여야 함).
    • env은 조직의 환경 (예: 테스트 또는 프로덕션)입니다.
    • runtime_url은 프라이빗 클라우드 인스턴스의 런타임 URL입니다.
    • mgmt_url은 프라이빗 클라우드 인스턴스의 관리 서버 URL입니다.
    • username은 Apigee 계정과 연결된 이메일 주소입니다.
    • virtual_host는 쉼표로 구분된 가상 호스트 이름의 목록입니다. 기본값은 default,secure입니다.

edgemicro private configure -o docs -e test -u jdoe@example.com -r http://192.162.52.106:9001 -m http://192.162.52.106:8080 -v default

또는 가상 호스트 별칭이 myorg-test.mycompany.com인 경우 다음과 같은 명령어를 사용합니다.

edgemicro private configure -o docs -e test -u jdoe@example.com -r myorg-test.mycompany.com -m http://192.162.52.106:8080 -v default

출력

delete cache config
checking for previously deployed proxies
configuring edgemicro internal proxy
deploying edgemicro internal proxy
deploying  edgemicro-auth  app
copy auth app into tmp dir
copy config into tmp deer
Give me a minute or two... this can take a while...
App edgemicro-auth added to your org. Now adding resources.

checking org for existing KVM
error checking for cert. Installing new cert.
creating KVM
adding private_key
adding public_key
configuring host http://192.168.52.106:9001 for region dc-1

saving configuration information to: $HOME/.edgemicro/jdoe-test-config.yaml
vault info: 
-----BEGIN CERTIFICATE----- 
MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls 
b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD 
VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 
OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFswhB0Yvg6JKWsKWBDP9o
Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik245yfBku7olooXKRKTRKOUoXa 
q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd 
xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho 
7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L 
hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j 
gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ 
57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X 
s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd 
ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ 
1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz 
pFkIxepyr/0= 
-----END CERTIFICATE----- 

The following credentials are required to start edge micro 
   key: a3f8f3dfe39158fc3c50b274f0af2234246e0d5f6ea4ad09389b645147151ba3
   secret: 3e9904802fb3c0e8ca408128a11119cf13546d54dac10ace944c097a726a1263

edgemicro configuration complete!
    

설치 확인

다음 명령어를 실행하여 설치를 확인합니다. 오류가 보고되지 않으면 모든 항목이 올바르게 설정된 것이며 Edge Micro Gateway를 성공적으로 시작할 수 있습니다.

edgemicro verify -o [org] -e [env] -k [key] -s [secret]

각 항목의 의미는 다음과 같습니다.

  • org은 Edge 조직 이름입니다 (조직 관리자여야 함).
  • env은 조직의 환경 (예: 테스트 또는 프로덕션)입니다.
  • key는 이전에 구성 명령어에서 반환된 키입니다.
  • secret는 이전에 구성 명령어에서 반환된 키입니다.

edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f624ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0156d7132afbd03625bbd85dc34ebfefae4f23fbcb3c

구성 정보

지금까지 모든 구성을 완료하면 Edge Micro Gateway가 Apigee Edge에 자체적으로 부트스트랩할 수 있습니다. 부트스트랩에 성공한 후 Edge Micro Gateway는 Apigee Edge에서 추가 구성 정보의 페이로드를 검색합니다.

이 구성 정보는 어디에 사용되나요? 이 튜토리얼의 다음 부분에서 살펴보겠지만, Edge Microgateway가 시작되면 Apigee Edge에서 특수한 Edge Micro Gateway 인식 API 프록시 목록을 수신해야 합니다. 이 가이드의 다음 부분에서는 Micro Gateway 인식 프록시를 만듭니다. Edge Microgateway는 이러한 Micro Gateway 인식 API 프록시가 프런트엔드 API만 호출하는 것으로 클라이언트를 제한하며, 클라이언트는 기본적으로 각 호출에 유효한 보안 토큰을 제공해야 합니다. 이러한 프록시에 대한 자세한 내용은 Edge Microgateway 개요에서 'Edge Micro Gateway 인식 프록시에 대해 알아야 할 사항'을 참조하세요.

Edge 조직 관리자라면 다른 프록시와 마찬가지로 Edge Micro Gateway 인식 프록시를 Edge 제품에 추가할 수 있는지 알아볼 수 있습니다. 제품 및 개발자 앱을 사용하면 클라이언트별 보안 토큰을 생성하여 Edge Micro Gateway를 통해 호출되는 API에 대한 액세스를 제어할 수 있습니다. 앞서 언급했듯이 관련된 패턴은 Apigee Edge에서 모든 API 프록시, 제품, 개발자 앱을 사용하는 것과 동일합니다. 제품에 대한 자세한 내용을 확인하려면 Edge 문서의 API 제품이란 무엇인가요?부터 시작하세요.

다음으로 Edge Micro Gateway 인식 프록시를 만드는 방법을 살펴본 후 Edge Micro Gateway를 시작하고 설정을 테스트합니다.

2부: Apigee Edge에서 항목 만들기

이 부분에서는 Edge에서 다음 항목을 만듭니다.

  • 마이크로 게이트웨이 인식 프록시 - 시작 시 Edge Micro게이트가 검색할 수 있는 특수 프록시입니다. Micro Gateway 인식 프록시에는 이름 지정 규칙을 따라야 합니다. 이름은 edgemicro_로 시작해야 합니다. 예를 들면 edgemicro_hello 또는 edgemicro_userinfo입니다. Edge Micro Gateway가 시작되면 Edge Micro Gateway를 시작할 때 지정한 것과 동일한 Edge 조직 및 환경의 micro Gateway 인식 프록시 목록을 Edge에서 검색합니다.

    Edge Microgatway는 각 마이크로 게이트웨이 인식 프록시에 대해 프록시의 대상 URL과 기본 경로를 검색합니다. 또한 Micro Gateway 인식 프록시는 Edge Micro Gateway에서 생성된 분석 데이터를 Edge 플랫폼의 프록시와 편리하게 연결할 수 있는 방법을 제공합니다. Micro Gateway는 API 호출을 처리하므로 분석 데이터를 Edge에 비동기식으로 푸시합니다. 애널리틱스 데이터는 다른 프록시에서와 마찬가지로 Edge 애널리틱스 UI에 마이크로 게이트웨이 인식 프록시 이름 아래에 표시됩니다.
  • 제품, 개발자, 개발자 앱 - Edge Micro Gateway는 제품, 개발자, 개발자 앱을 사용하여 OAuth2 액세스 토큰 또는 API 키 보안을 사용 설정합니다. Edge Microgateway가 시작되면 Apigee Edge 조직의 모든 제품 구성을 다운로드합니다. 또한 이 정보를 사용하여 API 키 또는 OAuth2 액세스 토큰으로 Edge Micro Gateway를 통해 수행되는 API 호출을 확인합니다.

1. Edge에서 Edge Micro Gateway 인식 API 프록시 만들기

  1. Apigee Edge에서 조직에 로그인합니다.
  2. 측면 탐색 메뉴에서 개발 > API 프록시를 선택합니다.
  3. +프록시를 클릭합니다. 프록시 빌드 마법사가 호출됩니다.
  4. 첫 번째 마법사 페이지에서 역방향 프록시 (가장 일반적)를 선택합니다.
  5. 다음을 클릭합니다.
  6. 마법사의 세부정보 페이지에서 다음과 같이 구성합니다. 다음과 같이 마법사를 정확하게 작성해야 합니다.
    • 프록시 이름: edgemicro_hello
    • 프록시 기본 경로: /hello
    • 기존 API: http://mocktarget.apigee.net/
  7. 다음을 클릭합니다.
  8. 마법사의 보안 페이지에서 통과 (없음)을 선택합니다.
  9. 다음을 클릭합니다.
  10. 마법사의 가상 호스트 페이지에서 기본값을 수락합니다.
  11. 다음을 클릭합니다.
  12. 마법사의 빌드 페이지에서 프록시 설정을 검토합니다. test 환경이 선택되어 있는지 확인합니다.
  13. Build and Deploy(빌드 및 배포)를 클릭합니다.

2. API 제품 만들기

  1. 측면 탐색 메뉴에서 게시 > API 제품을 선택합니다.
  2. + API 제품을 클릭합니다.
  3. 다음 표에 표시된 제품 세부정보를 입력합니다.
    필드 설명
    이름 EdgeMicroTestProduct
    표시 이름 Edge Microgatway 테스트 제품
    환경 테스트
    액세스 공개
    키 승인 유형 자동
  4. API 리소스 섹션에서 방금 만든 API 프록시와 edgemicro-auth 프록시를 추가합니다.
    • edgemicro_hello
    • edgemicro-auth
  5. 저장을 클릭합니다.

3. 개발자 만들기

이 튜토리얼의 목적에 맞게 다음 단계인 개발자 앱 만들기에서 기존 개발자를 사용할 수 있습니다. 그러나 원하는 경우 지금 테스트 개발자를 만드세요.

  1. 측면 탐색 메뉴에서 게시 > 개발자를 선택합니다.
  2. + Developer를 클릭합니다.
  3. 대화상자를 작성하여 테스트 개발자를 만듭니다.

4. 개발자 앱 만들기

이 앱의 클라이언트 사용자 인증 정보를 사용하여 Edge Micro게이트를 통해 안전한 API 호출을 수행합니다.

  1. 측면 탐색 메뉴에서 게시 > 앱을 선택합니다.
  2. + 앱을 클릭합니다. 개발자 앱 세부정보 페이지가 표시됩니다.
  3. 다음과 같이 개발자 앱 페이지를 작성합니다.
    1. 이름: EdgeMicroTestApp
    2. 표시 이름: EdgeMicroTestApp
    3. 개발자: 테스트 개발자를 만들었다면 해당 개발자를 선택합니다. 또는 이 튜토리얼의 목적에 맞게 기존 개발자를 사용할 수 있습니다.
    4. 사용자 인증 정보:
      1. 만료: 없음을 선택합니다.
      2. + Product(+ 제품)를 클릭하고 EdgeMicroTestProduct(방금 만든 제품)를 선택합니다.
  4. 저장을 클릭합니다.
  5. 앱 목록 페이지로 돌아갑니다.
  6. 방금 만든 앱 EdgeMicroTestApp을 선택합니다.
  7. 고객 키고객 비밀번호 옆에 있는 표시를 클릭합니다.

3부: Edge Micro Gateway 운영

이제 Edge Microgateway를 구성하고, Edge Micro Gateway를 인식할 수 있는 프록시가 하나 이상 있으므로 이제 Edge Micro게이트를 시작할 차례입니다. Edge Micro Gateway HTTP 서버는 로컬 머신에서 실행되며 해당 서버에 직접 API를 호출합니다.

1. Edge Micro Gateway 시작

edgemicro start 명령어를 사용하여 Edge Microgateway를 시작합니다.

  1. 이전에 edgemicro connect 명령어를 실행할 때 반환된 키가 있는지 확인합니다. 출력은 다음과 같습니다.
    You need key and secret while starting edgemicro instance
    
    key: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e
    secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
    
  2. (선택사항) edgemicro start 명령어의 도움말 정보를 출력합니다.
    edgemicro start -h
    
  3. Edge Micro게이트를 시작하려면 다음 명령어를 실행합니다.
    edgemicro start -o [org] -e [env] -k [key] -s [secret]
    

    각 항목의 의미는 다음과 같습니다.

    • org은 Edge 조직 이름입니다 (조직 관리자여야 함).
    • env은 조직의 환경 (예: 테스트 또는 프로덕션)입니다.
    • key는 이전에 구성 명령어에서 반환된 키입니다.
    • secret는 이전에 구성 명령어에서 반환된 키입니다.

    edgemicro start -o docs -e test -k 701e70e718ce6dc1880616b3c39177d64a88754d615c7a4e1f78b6181d000723 -s 05c14356e42d136b83dd135cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

    출력

    시작 명령어는 Apigee Edge에서 많은 구성 정보를 검색하며 이는 터미널 창으로 스크롤됩니다. 출력에는 발견된 Micro Gateway 인식 프록시와 제품의 목록이 표시됩니다. 출력이 끝나면 다음과 같이 표시됩니다.

    ...
    
    current nodejs version is v12.5.0
    current edgemicro version is 3.1.0
    info: jwk_public_keys download from null returned 200 undefined
    info: jwt_public_key download from https://docs-test.apigee.net/edgemicro-auth/publicKey returned 200 OK
    info: products download from https://docs-test.apigee.net/edgemicro-auth/products returned 200 OK
    info: config download from https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test returned 200 OK
    PROCESS PID : 17991
    
  4. 마이크로 게이트웨이 상태를 확인합니다. 다른 터미널 창에서 Edge Micro를 시작한 것과 동일한 디렉터리로 이동하여 다음 명령어를 입력합니다.
    edgemicro status
    current nodejs version is v12.5.0
    current edgemicro version is 3.1.0
    edgemicro is running with 8 workers
    

어떻게 된 것일까요?

Edge Micro Gateway 구성 정보의 페이로드는 Apigee Edge에서 다운로드되어 로컬로 캐시됩니다. 이러한 정보에는 다음이 포함됩니다.

  • 암호화된 키-값 맵 (KVM)에 이전에 만들고 저장한 공개 키입니다.
  • 조직/환경에 있는 모든 Edge Micro Gateway 인식 프록시를 나타냅니다. 이는 모두 edgemicro_ 프리픽스로 이름이 지정된 프록시입니다.
  • 조직/환경에 있는 모든 API 제품을 나타냅니다.

Edge Micro Gateway는 이 정보를 통해 처리가 허용되는 프록시와 프록시 경로를 알 수 있습니다. 또한 개발자 앱 키가 제품과 연결되는 Apigee Edge의 API 프록시와 동일한 방식으로 제품 정보를 사용하여 보안을 강화합니다. Edge Micro Gateway를 보호하는 단계를 곧 살펴봅니다.

2. Edge Micro Gateway 테스트

Edge Micro Gateway가 실행 중인 상태에서 프록시를 호출할 수 있습니다. edgemicro_hello 프록시 구성은 Edge Micro Gateway를 시작할 때 Edge에서 다운로드되었습니다. 프록시 기본 경로는 /hello입니다.

Edge Micro게이트를 테스트하려면 기본 경로로 시작하고 리소스 경로 /echo를 추가합니다. 기본 경로 뒤에 오는 모든 항목 (쿼리 매개변수 포함)이 단순히 백엔드 대상으로 전달됩니다.

curl -i http://localhost:8000/hello/echo
{"error":"missing_authorization","error_description":"Missing Authorization header"}

이 오류는 요청과 함께 유효한 API 키 또는 액세스 토큰을 전송하지 않았기 때문에 발생합니다. 기본적으로 Edge Micro Gateway는 모든 API 호출에 API 키 또는 액세스 토큰이 필요합니다. 이 가이드의 다음 단계에서는 이 API를 올바르게 보호하고 유효한 액세스 토큰을 가져와 요청에 포함하는 방법을 보여줍니다.

4. Edge Micro Gateway 중지

  1. 별도의 터미널 창에서 Edge Micro Gateway를 시작한 동일한 디렉터리cd합니다.
  2. 중지 명령어를 입력합니다.
    edgemicro stop
    

4부: Secure Edge Micro Gateway

API 키 또는 액세스 토큰을 사용하여 Edge Micro Gateway를 통한 API 호출을 보호할 수 있습니다.

OAuth2 액세스 토큰으로 API 호출 보호

OAuth2 액세스 토큰으로 API 호출을 인증하려면 다음 단계를 따르세요.

1. 필수 키 가져오기

  1. Edge UI에서 이전에 만든 개발자 앱으로 이동합니다. 앱의 이름은 EdgeMicroTestApp입니다.
  2. 개발자 앱 페이지에서 고객 키와 고객 비밀번호를 표시하고 복사합니다. 이 값은 다음 단계에서 액세스 토큰을 얻는 데 필요합니다.

2. 액세스 토큰 가져오기

액세스 토큰을 가져오는 방법에는 두 가지가 있습니다. 두 가지 방법을 모두 보여드리겠습니다.

CLI를 사용하여 액세스 토큰 가져오기

첫 번째 방법이 편리하며 가이드 전체에서 사용한 패턴을 따릅니다. 두 번째 방법은 일반적으로 토큰을 요청해야 하는 클라이언트 앱 개발자에게 더 유용합니다. 실제 토큰 엔드포인트는 Edge Micro Gateway를 구성할 때 배포된 edgemicro-auth 프록시에서 구현됩니다.

  1. (선택사항) token get 명령어의 도움말을 확인합니다.
    edgemicro token get -h
    
  2. Apigee Edge에서 만든 개발자 앱의 -i-s 매개변수 값을 고객 키와 고객 비밀번호 값으로 대체하여 토큰을 생성합니다.
    edgemicro token get -o [org] -e [env] -i [consumer_key] -s [consumer_secret]
    

    각 항목의 의미는 다음과 같습니다.

    • org은 Edge 조직 이름입니다 (조직 관리자여야 함).
    • env은 조직의 환경 (예: 테스트 또는 프로덕션)입니다.
    • consumer_id는 이전에 만든 개발자 앱의 소비자 ID입니다.
    • consumer_secret는 이전에 만든 개발자 앱의 고객 비밀번호입니다.

    edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
    

    출력 (샘플)

    current nodejs version is v12.5.0
    { token: 'eyJ0eXAiOiJKV1QiLCJhbGciSUzI1NiJ9.eyJhcHBsaWNhdGl
    vbl9uYW1lIjoiNWNiMGY0tOWMzOC00YmJjLWIzNzEtZGMxZTQzOGYxZGMxI
    iwiY2xpZW50X2lkIjoiNVVdBWEdvSU9lbzYwYWV3OTRQN0c1TUFaRTNhSnA
    iLCJzY29wZXMiOltdLCJhcGlfcHJvjdF9saXN0IjpbIsVkZ2VNaWNyb1Rlc
    3RQcm9kdWN0IlmlhdCI6MTQ3ODIwODMzMiwiZXhwIjoxNDc4MjEwMTMxfQ.
    v3Q8Rs0W9FO_XpERwIAMMXhjGamRmmmWgrAy1wJv0-99oajx5ASI5qjNubM
    nCF14xxwlVXHcz1VfedA8Nx7Ih145zhWWuPKL9muzhXXnVBRFeBMeeLqJk4
    QQ7Bhst7xH_68nJSTE20Egu95DHOCUemfrepDFH0VggY4BmzvwLkBNfz_te
    E_YqwKZbpGOLMdKK1vMk0fk0x19SieIMS_aJYeOAklrzUhnFxWJFrsAWsax
    NLx_BbQcZzYfK1JSDUrhRNVBuPHMnGjNA_oHw2J4qa6Hsp62PfchG-DIW_t
    -0BFnYf3rYXmqyNORqFrOMdl4VxqQ' }
    

(선택사항) API를 사용하여 토큰 가져오기

curl 또는 다른 HTTP 클라이언트를 사용하여 Edge 프록시를 호출하는 데 익숙하다면 edgemicro token 명령어를 사용하는 대신 토큰 엔드포인트를 직접 호출할 수 있다는 점에 유의해야 합니다. 다음은 curl 예입니다. URL에서 조직 및 환경 이름을 대체하고 기본 인증 헤더에 콜론으로 구분된 고객 키:고객 비밀번호 값을 전달하기만 하면 됩니다.

curl -i -X POST "http://[org]-[env].apigee.net/edgemicro-auth/token" -d '{ "client_id": "your consumer key", "client_secret": "your consumer secret", "grant_type": "client_credentials" }' -H "Content-Type: application/json"

각 항목의 의미는 다음과 같습니다.

  • org은 Edge 조직 이름입니다 (조직 관리자여야 함).
  • env은 조직의 환경 (예: 테스트 또는 프로덕션)입니다.
  • client_id는 이전에 만든 개발자 앱의 소비자 ID입니다.
  • client_secret는 이전에 만든 개발자 앱의 고객 비밀번호입니다.

출력 (샘플)

edgemicro token CLI 명령어를 사용했는지 또는 curl을 사용하여 엔드포인트를 호출했는지에 관계없이 명령어는 클라이언트 호출에 사용할 수 있는 서명된 액세스 토큰을 반환합니다. 예를 들면 다음과 같습니다.

MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls 
b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD 
VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 
OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFsnhB0Yvg6JKWxKWBDP9o
Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik241yfBku7olooXKRKTRKOUoXa
q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd 
xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho 
7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L 
hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j 
gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ 
57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X 
s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd 
ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ 
1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz 
pFkIxepyr/0=
      

3. Edge Micro Gateway에서 구성 확인하기

  1. $HOME/.edgemicro/org-env-config.yaml 파일을 엽니다. 이 파일을 찾을 수 없으면 Edge Micro Gateway가 설치된 위치를 참조하세요.
  2. 이러한 OAuth 플러그인 속성이 false로 설정되어 있는지 확인하세요. 기본적으로 false이지만 한 번 더 확인하는 것이 좋습니다.
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
    
  3. 또한 org-env-config.yaml 파일에서 다음과 같이 OAuth 플러그인이 plugins:sequence 요소에 추가되었는지 확인합니다.
    plugins:
       dir: ../plugins
       sequence:
       - oauth
    
  4. 파일을 변경한 경우 실행 중인 Edge Micro Gateway 인스턴스에 변경사항을 다시 로드합니다. 이 명령어는 다운타임이 없는 Edge Micro Gateway를 재구성합니다.
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    각 항목의 의미는 다음과 같습니다.

    • org은 Edge 조직 이름입니다 (조직 관리자여야 함).
    • env은 조직의 환경 (예: 테스트 또는 프로덕션)입니다.
    • key는 이전에 구성 명령어에서 반환된 키입니다.
    • secret는 이전에 구성 명령어에서 반환된 키입니다.

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
    

4. 안전한 API 호출

액세스 토큰을 사용하면 이제 API를 안전하게 호출할 수 있습니다. 예를 들면 다음과 같습니다.

  curl -i -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhcHBsaWNhdGlvbl
9uYW1lIjoiYmU2YmZjYjAtMWQ0Ni00Y2IxLWFiNGQtZTMxNzRlNTAyMDZkIiwiY2xpZW50X2lkIjoiOGxTTTVIRHdyM
VhIT1ZwbmhURExhYW9FVG5STVpwWk0iLCJzY29wZXMiOltdLCJhcGlfcHJvZHVjdF9saXN0IjpbIk1pY3JvZ2F0ZXdh
eVRlQcm9kdWN0Il0sImCI6MTQzNTM0NzY5MiwiZXhwIjoxNDM1MzQ5NDkxfQ.PL30Y6uK1W1f2ONPEsBDB_BT31c6
IsjWGfwpz-p6Vak8r767tAT4mQAjuBpQYv7_IU4DxSrnxXQ_q536QYCP4p4YKfBvyqbnW0Rb2CsPFziy_n8HIczsWO
s0p4czcK63SjONaUpxV9DbfGVJ_-WrSdqrqJB5syorD2YYJPSfrCcgKm-LpJc6HCylElFDW8dHuwApaWcGRSV3l5Wx
4A8Rr-WhTIxDTX7TxkrfI4THgXAo37p3au3_7DPB_Gla5dWTzV4j93xLbXPUbwTHzpaUCFzmPnVuYM44FW5KgvBrV0
64RgPmIFUxSqBWGQU7Z1w2qFmWuaDljrMDoLEreI2g" http://localhost:8000/hello/echo

API는 모의 서버에서 헤더와 기타 정보를 반환합니다.

API 키로 API 보호

승인에 API 키를 사용하려면 다음 단계를 따르세요.

1. API 키 가져오기

  1. Edge UI에서 이전에 만든 개발자 앱으로 이동합니다. 앱의 이름은 EdgeMicroTestApp입니다.
  2. 개발자 앱 페이지에서 고객 키를 표시하고 복사합니다. 이 값이 API 키입니다. 이 키를 사용하여 인증된 API 호출을 실행합니다.

2. Edge Micro Gateway에서 구성 확인하기

  1. 파일을 엽니다. $HOME/.edgemicro/org-env-config.yaml. 이 파일을 찾을 수 없다면 Edge Micro Gateway가 설치된 위치를 참조하세요.
  2. 이러한 OAuth 플러그인 속성이 false로 설정되어 있는지 확인하세요. 기본적으로 false이지만 원하는 경우 다시 확인할 수 있습니다.
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
    
  3. 또한 org-env-config.yaml 파일에서 다음과 같이 OAuth 플러그인이 plugins:sequence 요소에 추가되었는지 확인합니다.
    plugins:
       dir: ../plugins
       sequence:
       - oauth
        
    
  4. 파일을 변경한 경우 실행 중인 Edge Micro Gateway 인스턴스에 변경사항을 다시 로드합니다. 이 명령어는 다운타임이 없는 Edge Micro Gateway를 재구성합니다.
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    각 항목의 의미는 다음과 같습니다.

    • org은 Edge 조직 이름입니다 (조직 관리자여야 함).
    • env은 조직의 환경 (예: 테스트 또는 프로덕션)입니다.
    • key는 이전에 구성 명령어에서 반환된 키입니다.
    • secret는 이전에 구성 명령어에서 반환된 키입니다.

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c30177d64a88754d615c74e1f78b6181d
    

3. API 키로 API를 안전하게 호출

다음과 같이 x-api-key 헤더를 사용하여 API를 호출합니다. 개발자 앱에서 복사한 고객 키 값이 API 키입니다. 기본적으로 Edge Micro Gateway는 사용자가 다음과 같이 x-api-key라는 헤더로 키를 전달할 것으로 예상합니다.

curl -i http://localhost:8000/hello/echo -H "x-api-key: [apikey]"

각 항목의 의미는 다음과 같습니다.

  • apikey는 EdgeMicroTestApp에서 가져온 고객 키 값입니다.

예를 들면 다음과 같습니다.


curl -i http://localhost:8000/hello/echo -H 'x-api-key: XsU1R4zGXz2ERxd0ilYQ5szwuljr5bB'

이제 완벽하게 작동하는 안전한 Edge Micro Gateway가 준비되었습니다. 튜토리얼의 다음 부분에서는 Edge Micro Gateway에 기능을 추가하는 플러그인을 살펴봅니다.

5부: Spike Arrest 플러그인 추가

이 부분에서는 Edge Micro Gateway의 인스턴스에 급증 저지라는 비율 제한 기능을 추가합니다.

플러그인이란 무엇인가요?

플러그인은 Edge Micro Gateway에 기능을 추가하는 Node.js 모듈입니다. 플러그인 모듈은 일관된 패턴을 따르며 Edge Micro Gateway에 알려진 위치에 저장되므로 마이크로 게이트웨이가 자동으로 검색하고 로드할 수 있습니다. 플러그인에 관한 자세한 내용은 플러그인 사용을 참고하세요.

급증 저지 플러그인 추가

급증 저지 플러그인은 트래픽 급증을 방지합니다. Edge Micro Gateway 인스턴스에서 처리하는 요청 수를 제한합니다.

Edge Micro Gateway에서는 급증 저지 기능이 플러그인 모듈로 구현됩니다. 사용 설정하려면 Edge Micro Gateway 구성 파일에 추가해야 합니다.

  1. 이 파일을 찾을 수 없는 경우 $HOME/.edgemicro/org-env-config.yaml.Edge Micro Gateway가 설치된 위치 파일을 엽니다.
  2. 다음 요소를 추가합니다. 파일 어디에나 추가할 수 있습니다.
       spikearrest:
          timeUnit: minute   
          allow: 10   
          buffersize: 0   
    
  3. 아래와 같이 edgemicro:sequence 요소에 spikearrest를 추가합니다. 시퀀스 구성 속성은 Edge Micro Gateway에 플러그인 모듈이 실행되는 순서를 알려줍니다.
    edgemicro:
      home: ../gateway
      port: 8000
      max_connections: -1
      max_connections_hard: -1
      logging:
        level: info
        dir: /var/tmp
        stats_log_interval: 60
      plugins:
        dir: ../plugins
      sequence:
        - oauth
        - spikearrest
    
  4. 구성 파일을 저장합니다.
  5. reload 명령어를 사용하여 Edge Microgateway를 새로고침합니다. Edge Micro Gateway를 시작한 디렉터리에서 이 명령어를 실행해야 합니다.
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    각 항목의 의미는 다음과 같습니다.

    • org은 Edge 조직 이름입니다 (조직 관리자여야 함).
    • env은 조직의 환경 (예: 테스트 또는 프로덕션)입니다.
    • key는 이전에 구성 명령어에서 반환된 키입니다.
    • secret는 이전에 구성 명령어에서 반환된 키입니다.

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
    
  6. 빠르게 연속해서 API를 여러 번 호출해 보세요. 두 번째 호출 후에는 Edge Micro Gateway가
    {"message":"SpikeArrest engaged","status":503}
    
    오류를 반환합니다.

그 이유는 급증 체포가 지정된 시간 단위에 들어갈 수 있는 호출 수를 완화하기 때문입니다. 따라서 이 경우 1분에 10회 또는 6초마다 1회 호출할 수 있습니다.

추가 크레딧: 할당량 플러그인 추가

급증 저지를 구성하는 데 사용된 것과 동일한 패턴에 따라 할당량 플러그인과 같은 다른 플러그인을 추가할 수 있습니다. 급증 저지와 마찬가지로 할당량 플러그인은 모든 Edge Microgateway 설치 시 포함됩니다. 할당량은 지정된 시간 간격 (분 또는 시간) 동안 앱이 API에 제출할 수 있는 요청 메시지 수를 지정합니다.

6부: Apigee Edge에서 분석 보기

이제 완벽하게 작동하는 Edge Micro Gateway 인스턴스가 있으며 어떤 상태가 되었는지 살펴보겠습니다. 기본적으로 애널리틱스 플러그인 모듈이 Edge Micro에 추가됩니다. 이 모듈은 Edge Micro에서 Apigee 에지로 분석 데이터를 자동으로 푸시하며, 에지 분석 시스템에서 사용됩니다. 다음을 살펴보겠습니다.

  1. Apigee Edge에서 조직에 로그인합니다.
  2. 분석 > 프록시 실적을 선택합니다.
  3. 프록시 성능 대시보드에서 edgemicro_hello 프록시를 선택합니다.
  4. 그래프에는 총 트래픽, 평균 응답 시간, 평균 목표 응답 시간 등 프록시의 트래픽 패턴에 대한 정보가 표시됩니다.

Edge 문서의 애널리틱스 대시보드 홈페이지에서 Edge 애널리틱스 대시보드에 대한 자세한 내용을 확인할 수 있습니다. 플러그인에 관한 자세한 내용은 플러그인 사용을 참고하세요.