์ด ํ์ด์ง๋ Apigee ๋ฐ Apigee Hybrid์ ์ ์ฉ๋ฉ๋๋ค.
Apigee Edge ๋ฌธ์ ๋ณด๊ธฐ
Apigee๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฑ์๋ ์๋น์ค๋ฅผ API๋ก ๋น ๋ฅด๊ฒ ๋ ธ์ถํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋ ธ์ถํ๋ ค๋ ๋ฐฑ์๋ ์๋น์ค์ ํผ์ฌ๋๋ฅผ ์ ๊ณตํ๋ API ํ๋ก์๋ฅผ ๋ง๋ญ๋๋ค. ๋ฐฑ์๋ ์๋น์ค์ ๋คํธ์ํฌ ์ฃผ์๋ง ์ ๊ณตํ๊ณ ๊ฐ๋ฐ์์๊ฒ ๋ ธ์ถ๋๋ API ํ๋ก์๋ฅผ ๋ง๋๋ ๋ฐ Apigee๊ฐ ์ฌ์ฉํ๋ ์ผ๋ถ ์ ๋ณด๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
API ํ๋ก์๋ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๋ API์์ ๋ฐฑ์๋ ์๋น์ค ๊ตฌํ์ ๋ถ๋ฆฌํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ๋ฐ์๊ฐ ํฅํ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ ๋ฐ์ดํธํ ๋ ๊ฐ๋ฐ์๋ ์ด๋ฌํ ๋ณ๊ฒฝ์ฌํญ์์ ๊ฒฉ๋ฆฌ๋์ด API๋ฅผ ์ค๋จ ์์ด ๊ณ์ ํธ์ถํ ์ ์์ต๋๋ค.
์ด ์ฃผ์ ์์๋ ์ฌ๋ฌ ํ๋ก์ ์ ํ๊ณผ ์ด์ ๋ํ ์ค์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ๋ก์ ๋ง๋ค๊ธฐ์ ๋ํ ๋จ๊ณ๋ณ ์๋ด๋ ๋ค์ ํญ๋ชฉ์ ์ฐธ์กฐํ์ธ์.
- ํํ ๋ฆฌ์ผ: ์ฒซ ๋ฒ์งธ API ํ๋ก์ ๋น๋
- API ํ๋ก์ ๋ง๋ค๊ธฐ
UI๋ฅผ ์ฌ์ฉํ์ฌ API ํ๋ก์ ๋ง๋ค๊ธฐ
API ํ๋ก์๋ฅผ ๋ง๋๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ํ๋ก์ ๋ง๋ค๊ธฐ ๋ง๋ฒ์ฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
Cloud ์ฝ์์ Apigee UI
-
Google Cloud ์ฝ์์์ ํ๋ก์ ๊ฐ๋ฐ > API ํ๋ก์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- + ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ธฐ๋ณธ UI
Apigee UI๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ๋ง๋ค๊ธฐ ๋ง๋ฒ์ฌ์ ์ก์ธ์คํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- Apigee UI์ ๋ก๊ทธ์ธํฉ๋๋ค.
- ํ์ ๋ฉ๋ด์์ ๊ฐ๋ฐ > API ํ๋ก์๋ฅผ ์ ํํฉ๋๋ค.
- ์๋ก ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ๋ก์ ๋ง๋ค๊ธฐ ๋ง๋ฒ์ฌ๋ API ํ๋ก์์ ์ต์ํ์ ๊ธฐ๋ฅ์ ์์ฑํ๊ณ ์ถ๊ฐํ๋ ๋จ๊ณ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์๋ดํฉ๋๋ค.
๋ง๋ฒ์ฌ์ ์ฒซ ๋ฒ์งธ ํ์ด์ง๋ฅผ ํตํด ๋ค์ ์์ค๋ก๋ถํฐ API ํ๋ก์๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ ํ | ์ค๋ช |
---|---|
๋ฆฌ๋ฒ์ค ํ๋ก์(๊ฐ์ฅ ์ผ๋ฐ์ ) |
์ธ๋ฐ์ด๋ ์์ฒญ์ ๊ธฐ์กด HTTP ๋ฐฑ์๋ ์๋น์ค๋ก ๋ผ์ฐํ ํ๋ API ํ๋ก์์ ๋๋ค. JSON ๋๋ XML API์ผ ์ ์์ต๋๋ค. ์ด ์น์ ์ ๋ท๋ถ๋ถ์ ๋์ค๋ HTTP ์๋น์ค์ฉ ์ญ๋ฐฉํฅ ํ๋ก์ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์. OpenAPI ์ฌ์ ์ฌ์ฉ์ ํด๋ฆญํ์ฌ ์ ํจํ OpenAPI ์ฌ์์์ ํ๋ก์๋ฅผ ์์ฑํฉ๋๋ค. ์ด ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด ์น์ ์ ๋ท๋ถ๋ถ์ ์๋ OpenAPI ์ฌ์์ ์ฌ์ฉํ์ฌ ํ๋ก์ ์์ฑ์ ์ฐธ์กฐํ์ธ์. |
๋์ ์์ |
API ๋ฐฑ์๋๊ฐ ์๋ API ํ๋ก์('no target')์ ๋๋ค. API ํ๋ก์ ์ธ๋ถ์ ๋ณด๋ฅผ ์ ์ํ ๋ ๊ธฐ์กด API๋ฅผ ์ง์ ํ์ง ์๋๋ค๋ ์ ์ ์ ์ธํ๊ณ ์์์ ์ค๋ช ํ HTTP ์๋น์ค์ฉ ๋ฆฌ๋ฒ์ค ํ๋ก์ ๋ง๋ค๊ธฐ์ ์ ์ฌํฉ๋๋ค. OpenAPI ์ฌ์ ์ฌ์ฉ์ ํด๋ฆญํ์ฌ ์ ํจํ OpenAPI ์ฌ์์์ ํ๋ก์๋ฅผ ์์ฑํฉ๋๋ค. ์ด ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด ์น์ ์ ๋ท๋ถ๋ถ์ ์๋ OpenAPI ์ฌ์์ ์ฌ์ฉํ์ฌ ํ๋ก์ ์์ฑ์ ์ฐธ์กฐํ์ธ์. |
ํ๋ก์ ๋ฒ๋ค ์ ๋ก๋ | ๊ธฐ์กด API ํ๋ก์ ๋ฒ๋ค(์๋ฅผ ๋ค์ด GitHub์์ ์ฌ์ฉํ ์ ์๋ ์ํ API ํ๋ก์ ์ค ํ๋)์ ๋๋ค. API ํ๋ก์ ๋ฒ๋ค์์ API ํ๋ก์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์. |
์๋ฒ ์ ์ก ์ด๋ฒคํธ(SSE)๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ | ์๋ฒ ์ ์ก ์ด๋ฒคํธ(SSE) ์คํธ๋ฆฌ๋ฐ์ ์ฌ์ฉ๋๋ EventFlow ๊ฐ ํฌํจ๋ API ํ๋ก์.
์์ธํ ๋ด์ฉ์ ์๋ฒ ์ ์ก ์ด๋ฒคํธ ์คํธ๋ฆฌ๋ฐ์ ์ฐธ์กฐํ์ธ์. |
๋ค์ ์น์ ์์๋ ๊ฐ ํ๋ก์ ์ ํ์ ์์ธํ ๋ค๋ฃน๋๋ค.
HTTP ์๋น์ค์ฉ ์ญ๋ฐฉํฅ ํ๋ก์ ๋ง๋ค๊ธฐ
Apigee๋ ๋ค์ ์ ๋ณด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ญ๋ฐฉํฅ ํ๋ก์๋ฅผ ์์ฑํฉ๋๋ค.
- ๋ฐฑ์๋ ์๋น์ค์ URL
- API ํ๋ก์์์ ์๋น์ ์ฑ์ ๋ ธ์ถ๋๋ API๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ URI ๊ฒฝ๋ก์ ๋๋ค.
๋ฐฑ์๋ ์๋น์ค URL์ ์ผ๋ฐ์ ์ผ๋ก ์กฐ์ง์์ ์์ ํ ์๋น์ค ์ฌ์ฉ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ๋ ๋๋ค. ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ API๋ฅผ ๊ฐ๋ฆฌํฌ ์๋ ์์ต๋๋ค. API ๋๋ ์๋น์ค๋ ์ ์ดํ ์ ์๊ฑฐ๋(์: ๋ด๋ถ HR ์ ํ๋ฆฌ์ผ์ด์ ๋๋ Cloud์ Rails ์ ํ๋ฆฌ์ผ์ด์ ) ํ์ฌ API ๋๋ ์๋น์ค(์: Twitter ๋๋ Instagram)์ผ ์ ์์ต๋๋ค.
๋ค์ ํ๋ก์ ์ธ๋ถ์ ๋ณด๋ ํ๋ก์ ๋ง๋ค๊ธฐ ๋ง๋ฒ์ฌ์ ์ก์ธ์คํ์ฌ ํ๋ก์ ์ ํ์ ์ ํํ ํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ | ์ค๋ช |
---|---|
์ด๋ฆ | API์ ํ์๋๋ ์ด๋ฆ์ ๋๋ค. ์์ซ์ ๋ฌธ์, ๋์(-) ๋๋ ๋ฐ์ค (_)์ ์ฌ์ฉํ์ฌ ์ง์ ํ์ธ์. |
๊ธฐ๋ณธ ๊ฒฝ๋ก |
API ํ๋ก์์ ๊ธฐ๋ณธ ๊ฒฝ๋ก ๋ค์๋ ์ถ๊ฐ ๋ฆฌ์์ค URL์ด ์์ต๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ API ํ๋ก์๋ฅผ ํธ์ถํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ ์ฒด URL ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ธฐ๋ณธ ๊ฒฝ๋ก์ ์์ผ๋ ์นด๋ ์ฌ์ฉ API ํ๋ก์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์์ ํ๋ ์ด์์ |
์ค๋ช | (์ ํ์ฌํญ) API์ ๋ํ ์ค๋ช ์ ๋๋ค. |
๋์(๊ธฐ์กด API) | ์ด API ํ๋ก์๊ฐ ํธ์ถํ๋ ๋ฐฑ์๋ ์๋น์ค์ URL์ ๋๋ค. |
API ํ๋ก์ ๋ฒ๋ค์์ API ํ๋ก์ ๊ฐ์ ธ์ค๊ธฐ
์ข ์ข API ํ๋ก์๋ฅผ ๋ค๋ฅธ ์ง์ ํ์ผ๊ณผ ํจ๊ปXML ํ์ผ์ ์ปฌ๋ ์ ์ผ๋ก ์ ์ํฉ๋๋ค. API ํ๋ก์๋ฅผ Apigee ์ธ๋ถ์ ํ์ผ ์งํฉ์ผ๋ก ์ ์ํ๋ฉด ์์ค ์ ์ด ์์คํ ์์ ์ ์ง๊ด๋ฆฌํ ํ ํ ์คํธ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ํด Apigee๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
API ํ๋ก์ ๋ฒ๋ค์์ API ํ๋ก์๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- UI๋ฅผ ์ฌ์ฉํ์ฌ API ํ๋ก์ ๋ง๋ค๊ธฐ์ ์ค๋ช ๋ ๋๋ก ํ๋ก์ ๋ง๋ค๊ธฐ ๋ง๋ฒ์ฌ์ ์ก์ธ์คํฉ๋๋ค.
- API ํ๋ก์ ๋ฒ๋ค ์ธ๋ถ์ ๋ณด๋ฅผ ์ง์ ํฉ๋๋ค.
- ํ๋ก์ ํ ํ๋ฆฟ ๋ฉ๋ด์์ ํ๋ก์ ๋ฒ๋ค ์ ๋ก๋๋ฅผ ์ ํํฉ๋๋ค.
- ํ๋ก์ ์ธ๋ถ์ ๋ณด ์น์ ์์ ํ๋ก์ ์ด๋ฆ์ ์ ๋ ฅํ๊ณ ZIP ํ์ผ์ ์ ๋ก๋ํ ํ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฐํฌ ์น์ ์์ ๋ฐฐํฌ ํ๊ฒฝ์ ์ ํํ๊ณ , ์ํ๋ ๊ฒฝ์ฐ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ํ๋ก์ ๋ฒ๋ค ์ ๋ก๋๋ฅผ ํด๋ฆญํฉ๋๋ค.
-
ํ๋ก์ ๋ง๋ฒ์ฌ์ ํ๋ก์ ๋ฒ๋ค ์ ๋ก๋ ํ์ด์ง์์ ๋ค์ ์ ๋ณด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
ํ๋ ์ค๋ช ZIP ๋ฒ๋ค API ํ๋ก์ ๊ตฌ์ฑ์ด ํฌํจ๋ ZIP ํ์ผ์ ๋๋ค. ๋๋๊ทธ ์ค ๋๋กญํ๊ฑฐ๋ ํด๋ฆญํ์ฌ ํ์ผ๋ก ์ด๋ํฉ๋๋ค. ์ด๋ฆ API์ ํ์๋๋ ์ด๋ฆ์ ๋๋ค. ํ์ฅ์๋ฅผ ์ ์ธํ ZIP ํ์ผ ์ด๋ฆ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. - ๋ค์์ ํด๋ฆญํฉ๋๋ค.
์์ฝ ํ์ด์ง์์ ๋ฐฐํฌ ํ๊ฒฝ์ ์ ํํ๊ณ ์ํ๋ ๊ฒฝ์ฐ ๋ง๋ค๊ธฐ ๋ฐ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ API ํ๋ก์๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋์์์ ๋ณด์ฌ์ฃผ๋ ํ์ธ์ด ํ์๋ฉ๋๋ค.
- ํ๋ก์ ์์ ์ ํด๋ฆญํ์ฌ API ํ๋ก์์ ์ธ๋ถ์ ๋ณด ํ์ด์ง๋ฅผ ํ์ํฉ๋๋ค.
Cloud ์ฝ์์ Apigee UI
๊ธฐ๋ณธ UI
gRPC API ํ๋ก์ ๋ง๋ค๊ธฐ
REST API ํ๋ก์ ์ธ์๋ Apigee๋ ํ์ฌ๋ง ํ์ ์ ์ผ๋ก ํจ์ค ์ค๋ฃจ ์ง์์ด ํฌํจ๋ gRPC API ํ๋ก์๋ฅผ ์ง์ํฉ๋๋ค. ํจ์ค ์ค๋ฃจ ์ง์์ ํตํด gRPC ํ์ด๋ก๋๋ ์์ฒด์ ์ผ๋ก Apigee์ ๋ถํฌ๋ช ํ๋ฉฐ, gRPC ํด๋ผ์ด์ธํธ์์ ๋์ ๊ตฌ์ฑ์ ์ฌ์ ๊ตฌ์ฑ๋ gRPC ๋์ ์๋ฒ๋ก ํธ๋ํฝ์ด ๋ผ์ฐํ ๋ฉ๋๋ค.ํ์ฌ Apigee gRPC API ํ๋ก์๋ ๋ค์๊ณผ ๊ฐ์ ํน์ฑ์ ๊ฐ์ต๋๋ค.
- ๋จํญ gRPC ์์ฒญ์ ์ง์ํฉ๋๋ค.
- ํ์ด๋ก๋์ ์ํฅ์ ์ฃผ๋ ์ ์ฑ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- GraphQL ๋๋ REST ํ๋ก์์ ์ฐ๊ฒฐ๋์ง ์์ API ์ ํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. API ์ ํ ๊ด๋ จ ํ ๋น๋ ๋ฐ ๊ธฐํ ์์ ์ค์ ์ด ์ ํ์ ๋ชจ๋ ํ๋ก์์ ์ ์ฉ๋ฉ๋๋ค.
- Apigee Hybrid์์๋ ์ง์๋์ง ์์ต๋๋ค.
- ๋ ๊ฐ์ง gRPC ๊ด๋ จ ํ๋ฆ ๋ณ์์ธ
request.grpc.rpc.name
๊ณผrequest.grpc.service.name
์ด ์ฌ์ฉ๋ฉ๋๋ค. -
gRPC์ ๊ด๋ จ๋ Apigee ์ ๋๋ฆฌํฑ์ค ๋ณ์์ธ
x_apigee_grpc_rpc_name
,x_apigee_grpc_service_name
,x_apigee_grpc_status
์ ์ฌ์ฉํ์ฌ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค. - gRPC ์ํ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค.
๋ํ gRPC๋ฅผ ์ง์ํ๋๋ก ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ gRPC ์ฌ์ฉ ๋ฐ gcloud CLI ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ gRPC์ ๋ํ ๋ผ์ฐํ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
gRPC API ํ๋ก์๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋จผ์ gRPC ๋์ ์๋ฒ๋ฅผ ์ ์ํ๊ณ (๋์ ์๋ฒ ๋ง๋ค๊ธฐ ์ฐธ์กฐ) ์ ํ๋ก์๋ฅผ ๋ง๋ค ๋ ๋์ ์๋ฒ๋ฅผ ์ง์ ํฉ๋๋ค.
gcloud CLI ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ gRPC์ ๋ํ ๋ผ์ฐํ ๋ง๋ค๊ธฐ
์ด ์น์ ์์๋ gcloud CLI๋ฅผ ์ฌ์ฉํด์ gRPC ํ๋ก์์ ๋ํด ๋ผ์ฐํ ์ ๋ง๋ค๊ธฐ ์ํ ๋ช ๋ น์ด ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ฌ๊ธฐ์๋ ๋ถํ ๋ถ์ฐ๊ธฐ, ๋์ ์๋ฒ, MIG ์ค์ ์ด ํฌํจ๋ฉ๋๋ค.
์ด ์น์ ์ ๋ผ์ฐํ ๋ง๋ค๊ธฐ์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์ด๋๊ฐ ์๋๋๋ค. ์ด๋ฌํ ์์๋ ์ผ๋ถ ์ฌ์ฉ ์ฌ๋ก์ ๋ฐ๋ผ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. ๋ํ ์ฌ๊ธฐ์์๋ ์ฌ์ฉ์๊ฐ ์ธ๋ถ ๋ผ์ฐํ (MIG) ๋ฐ Cloud ๋ถํ ๋ถ์ฐ๊ธฐ gRPC ๊ตฌ์ฑ์ ์ต์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
ํ๊ฒฝ ๋ณ์ ์ค์ ํ๊ธฐ
์ด๋ฌํ ํ๊ฒฝ ๋ณ์๋ ํ์ ์น์ ์ ๋ช ๋ น์ด์ ์ฌ์ฉ๋ฉ๋๋ค.
PROJECT_ID=YOUR_PROJECT_ID MIG_NAME=YOUR_MIG_NAME VPC_NAME=default VPC_SUBNET=default REGION=REGION_NAME APIGEE_ENDPOINT=ENDPOINT CERTIFICATE_NAME=CERTIFICATE_NAME DOMAIN_HOSTNAME=DOMAIN_HOSTNAME
๋ณด์ ์ถ๊ฐ
ํ๋ก์ ๋ณด์์ ํ๋ก์์ ์ ์ฑ ์ ์ถ๊ฐํ์ฌ ๊ตฌํ๋ฉ๋๋ค. ์ ์ฑ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ์ฑ ์ด๋ ๋ฌด์์ธ๊ฐ์?๋ฅผ ์ฐธ๊ณ ํ์ธ์. ๋ณด์์ ๊ดํ ์์ธํ ๋ด์ฉ์ ํ๋ก์ ๋ณด์์ ์ฐธ๊ณ ํ์ธ์.
ํ๋ก์์ ๋ณด์ ์ ์ฑ ์ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
Cloud ์ฝ์์ Apigee
- API ํ๋ก์ ๋ง๋ค๊ธฐ์ ์ค๋ช ๋ ๋๋ก ํ๋ก์๋ฅผ ๋ง๋ญ๋๋ค.
- ํ๋ก์ ๋ณด์์ ๋์ด๋ ์น์ ์ค ํ๋์ ์ค๋ช ๋ ๋๋ก ๋ณด์ ์ ์ฑ ์ ์ถ๊ฐํฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ณด์ ์ ์ฑ ์ API ํค์ OAuth2์ ๋๋ค.
๊ธฐ๋ณธ Apigee UI
ํ๋ก์ ๋ง๋ค๊ธฐ ๋ง๋ฒ์ฌ์ ์ผ๋ฐ ์ ์ฑ ํ์ด์ง์์ ์ถ๊ฐํ๋ ค๋ ๋ณด์ ์น์ธ ์ ํ์ ์ ํํฉ๋๋ค. ๋ค์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ต์ ์ ์์ฝํ ํ์ ๋๋ค.
๋ณด์ ์น์ธ | ์ค๋ช |
---|---|
API ํค | ์ ์ํ๋ ค๋ API ํ๋ก์์ ๊ฐ๋จํ API ํค ํ์ธ์ ์ถ๊ฐํฉ๋๋ค. ์ด์ ๋ํ ์๋ต์ผ๋ก API ํ๋ซํผ์ VerifyAPIKey ์ ์ฑ ๊ณผ AssignMessage ์ ์ฑ ์ API ํ๋ก์์ ์ถ๊ฐํฉ๋๋ค. VerifyAPIKey ์ ์ฑ ์ ์ฑ์ ์์ฒญํ์ฌ ํ์๋๋ API ํค์ ์ ํจ์ฑ์ ๊ฒ์ฌํฉ๋๋ค. AssignMessage ์ ์ฑ ์ ๋ฐฑ์๋ ์๋ฒ๋ก ์ ๋ฌ๋๋ ์์ฒญ์์ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ก API ํธ์ถ์ ์ ๊ณต๋๋ API ํค๋ฅผ ์ญ์ ํฉ๋๋ค. |
OAuth 2.0 | API ํ๋ก์์ OAuth 2.0 ๊ธฐ๋ฐ ์ธ์ฆ์ ์ถ๊ฐํฉ๋๋ค. Apigee๋ API ํ๋ก์์ ๋ ๊ฐ์ง ์ ์ฑ ์ ์๋์ผ๋ก ์ถ๊ฐํฉ๋๋ค. ํ๋๋ ์ก์ธ์ค ํ ํฐ์ ํ์ธํ๊ธฐ ์ํ ์ ์ฑ ์ด๊ณ ๋ค๋ฅธ ํ๋๋ ๋ฐฑ์๋ ์๋น์ค์ ์ ๋ฌํ๊ธฐ ์ ์ ๋ฉ์์ง์์ ์ก์ธ์ค ํ ํฐ์ ์ญ์ ํ๋ ์ ์ฑ ์ ๋๋ค. ์ก์ธ์ค ํ ํฐ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ OAuth๋ฅผ ์ฐธ๊ณ ํ์ธ์. |
ํจ์ค ์ค๋ฃจ(์น์ธ ์์) | ์น์ธ ํ์ ์์. Apigee์ ๋ณด์ ํ์ธ ์์ด ๋ฐฑ์๋์ ์์ฒญ์ด ์ ๋ฌ๋ฉ๋๋ค. |
CORS ์ง์ ์ถ๊ฐ
๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ (CORS)๋ ์น๋ธ๋ผ์ฐ์ ๊ฐ ๋ค๋ฅธ ๋๋ฉ์ธ์ ์ง์ ์์ฒญ์ ์ํํ ์ ์๋๋ก ํ์ฉํ๋ ํ์ค ๋ฉ์ปค๋์ฆ์ ๋๋ค. CORS ํ์ค์ ์น๋ธ๋ผ์ฐ์ ์ ์๋ฒ๊ฐ ๊ต์ฐจ ๋๋ฉ์ธ ํต์ ์ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉํ๋ HTTP ํค๋ ์งํฉ์ ์ ์ํฉ๋๋ค.
ProxyEndpoint์ ์์ฒญ PreFlow์ CORS ์ ์ฑ ์ ์ถ๊ฐํ์ฌ CORS ์ง์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
CORS ์ํ ์ ์ง์ ์ถ๊ฐ ๋ฑ์ ํฌํจํ CORS ์ง์์ ๋ํ ์์ธํ ์ ๋ณด๋ API ํ๋ก์์ CORS ์ง์ ์ถ๊ฐํ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
ํ ๋น๋ ์ถ๊ฐ
ํ ๋น๋ ์๋์ ๋์ ํธ๋ํฝ์ผ๋ก๋ถํฐ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ณดํธํ๊ธฐ ์ํ ํ ๋น๋์ ๋๋ค. ํ ๋น๋ ๋ถ๋ถ์ ์ฐธ๊ณ ํ์ธ์. (ํจ์ค ์ค๋ฃจ ์น์ธ์ ์ ํํ ๊ฒฝ์ฐ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.)
OpenAPI ์ฌ์์ ์ฌ์ฉํ์ฌ ํ๋ก์ ์์ฑ
์ด ์น์ ์์๋ OpenAPI ์ฌ์์์ ์ญ๋ฐฉํฅ ๋๋ ๋์ ์์๊ณผ ๊ฐ์ ์ ํ์ API ํ๋ก์๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ OpenAPI ์ฌ์ฉ ์ต์ ์ ์ค๋ช ํฉ๋๋ค.
OpenAPI ์ฌ์์ด๋ ๋ฌด์์ธ๊ฐ์?
'Open API Initiative(OAI)๋ Swagger ์ฌ์์ ๋ฐ๋ผ ๊ณต๊ธ์
์ฒด ์ค๋ฆฝ์ API ์ค๋ช
ํ์์ ์์ฑ, ๋ฐ์ , ์น๊ฒฉํ๋ ๋ฐ ์ค์ ์ ๋๊ณ ์์ต๋๋ค.' ์์ธํ ๋ด์ฉ์ OpenAPI Initiative๋ฅผ ์ฐธ์กฐํ์ธ์.
OpenAPI ์ฌ์์์๋ ํ์ค ํ์์ ์ฌ์ฉํ์ฌ RESTful API๋ฅผ ์ค๋ช ํฉ๋๋ค. JSON ๋๋ YAML ํ์์ผ๋ก ์์ฑ๋ OpenAPI ์ฌ์์ ๋จธ์ ์ด ์ฝ์ ์ ์์ง๋ง ์ฌ๋๋ ์ฝ๊ฒ ์ฝ๊ณ ์ดํดํ ์ ์์ต๋๋ค. ์ฌ์์ ๊ธฐ๋ณธ ๊ฒฝ๋ก, ๊ฒฝ๋ก ๋ฐ ๋์ฌ, ํค๋, ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์, ์์ , ์ฝํ ์ธ ์ ํ, ์๋ต ์ค๋ช ๋ฑ๊ณผ ๊ฐ์ API ์์๋ฅผ ์ค๋ช ํฉ๋๋ค. ๋ํ OpenAPI ์ฌ์์ ์ผ๋ฐ์ ์ผ๋ก API ๋ฌธ์๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
OpenAPI ์ฌ์์ ๋ค์ ํ๋๊ทธ๋จผํธ๋ Apigee์ ๋ชจ์ ๋์ ์๋น์ค์ธ http://mocktarget.apigee.net์ ์ค๋ช ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ helloworld ์ํ์ ๋ํ OpenAPI ์ฌ์์ ์ฐธ์กฐํ์ธ์.
openapi: 3.0.0 info: description: OpenAPI Specification for the Apigee mock target service endpoint. version: 1.0.0 title: Mock Target API paths: /: get: summary: View personalized greeting operationId: View a personalized greeting description: View a personalized greeting for the specified or guest user. parameters: - name: user in: query description: Your user name. required: false schema: type: string responses: "200": description: Success /help: get: summary: Get help operationId: Get help description: View help information about available resources in HTML format. responses: "200": description: Success ...
ํ๋ก์ ๋ง๋ค๊ธฐ ๋ง๋ฒ์ฌ๋ฅผ ํตํด OpenAPI ์ฌ์์ ๊ฐ์ ธ์ค๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ API ํ๋ก์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ํ๋ก์๊ฐ ์์ฑ๋๋ฉด ๋ชจ๋ Apigee ํ๋ก์์ฒ๋ผ Apigee UI๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฑ ์ ์ถ๊ฐํ๊ณ , ์ปค์คํ ์ฝ๋๋ฅผ ๊ตฌํํ๋ ๋ฑ์ ์์ ์ ํตํ์ฌ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
OpenAPI ์ฌ์์์ API ํ๋ก์ ๋ง๋ค๊ธฐ
OpenAPI ์ฌ์์์ API ํ๋ก์๋ฅผ ๋ง๋ญ๋๋ค. ๋ช ๋ฒ์ ํด๋ฆญ๋ง์ผ๋ก ๊ฒฝ๋ก, ๋งค๊ฐ๋ณ์, ์กฐ๊ฑด๋ถ ํ๋ฆ, ๋์ ์๋ํฌ์ธํธ๊ฐ ์๋์ผ๋ก ์์ฑ๋ API ํ๋ก์๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ OAuth ๋ณด์, ๋น์จ ์ ํ, ์บ์ฑ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
ํ๋ก์ ๋ง๋ค๊ธฐ ๋ง๋ฒ์ฌ์์ OpenAPI ์ฌ์ ์ฌ์ฉ์ ํด๋ฆญํ๊ณ ๋ง๋ฒ์ฌ์ ์ง์์ ๋ฐ๋ผ OpenAPI ์ฌ์์์ ์ญ๋ฐฉํฅ ํ๋ก์๋ ๋์ ์๋ ํ๋ก์๋ฅผ ๋ง๋ญ๋๋ค. ์์ธํ ๋ด์ฉ์ OpenAPI ์ฌ์์์ API ํ๋ก์ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
API ํ๋ก์์ ์ ๋ฒ์ ๋ง๋ค๊ธฐ
API ํ๋ก์์ ์ ๋ฒ์ ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํ์ธ์.
- Apigee UI๋ฅผ ์ฝ๋๋ค.
- Apigee UI์ ๋ก๊ทธ์ธํฉ๋๋ค.
- ํ์ ๋ฉ๋ด์์ ๊ฐ๋ฐ > API ํ๋ก์๋ฅผ ์ ํํฉ๋๋ค.
- ๋ณต์ฌํ๋ ค๋ ๋ชฉ๋ก์์ API ํ๋ก์๋ฅผ ํด๋ฆญํฉ๋๋ค.
-
๊ฐ๋ฐ ํญ์ ํด๋ฆญํฉ๋๋ค.
- ์ ์ฅ ๋ฒํผ์ ์ ํํ๊ณ ์ ๋ฒ์ ์ผ๋ก ์ ์ฅ์ ์ ํํฉ๋๋ค.
Cloud ์ฝ์์ Apigee
Google Cloud ์ฝ์์์ ํ๋ก์ ๊ฐ๋ฐ > API ํ๋ก์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๊ธฐ๋ณธ Apigee UI
API ํ๋ก์ ๋ฐฑ์
API ํ๋ก์ ๋ฒ๋ค์ ๊ธฐ์กด API ํ๋ก์๋ฅผ XML ํ์ผ ์งํฉ์ผ๋ก ๋ฐฑ์ ํ ์ ์์ต๋๋ค. ๋ฒ๋ค์ ๋ด๋ณด๋ธ ํ์๋ ์ด ์น์ ์๋ถ๋ถ์ API ํ๋ก์ ๋ฒ๋ค์์ API ํ๋ก์ ๊ฐ์ ธ์ค๊ธฐ์ ์ค๋ช ๋ ๋๋ก API ํ๋ก์๋ฅผ ์ ํ๋ก์๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ API ํ๋ก์ ๋ค์ด๋ก๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
API๋ฅผ ์ฌ์ฉํ์ฌ API ํ๋ก์ ๋ง๋ค๊ธฐ
API๋ฅผ ์ฌ์ฉํ์ฌ API ํ๋ก์๋ฅผ ๋ง๋ค๋ ค๋ฉด API ํ๋ก์ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋์ ํ๋ก์ ์์ ์ ๋ณด
์์ฒญ์ ๋ฐฑ์๋ ์๋น์ค๋ก ์ ๋ฌํ์ง ์๊ณ Apigee ์์ฒด ๋ด์์ ์ฒ๋ฆฌํ๋ ค๋ ๊ฒฝ์ฐ Apigee์ ๋์ ์์ ํ๋ก์๊ฐ ์ ์ฉํฉ๋๋ค. ์ด ๋ฐฉ์์ด ์ ์ ํ ๊ฒฝ์ฐ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค.
์ผ๋ฐ ์ฌ์ฉ ์ฌ๋ก
- Apigee ๊ด๋ฆฌ ๋ฐ์ดํฐ์ ์ํธ์์ฉ: ํค-๊ฐ ๋งต(KVM) ๋๋ Apigee ์บ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๊ฐ์ด Apigee ๊ด๋ฆฌ ๋ฐ์ดํฐ์๋ง ์ํธ์์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ๋์ ์์ ํ๋ก์๊ฐ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋์ ์์ ํ๋ก์๋ฅผ ์ฌ์ฉํ์ฌ KVM์์ ์ฌ์ฉ์ ์ธ์ ๋ฐ์ดํฐ ๋๋ ๊ตฌ์ฑ ๋ฐ์ดํฐ์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ํธ์ถํ ํ์๊ฐ ์์ต๋๋ค. ํ๋ก์ ํ๋ฆ์ KeyValueMapOperations ์ ์ฑ ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค. ๋ ๋ค๋ฅธ ์์๋ก, ์บ์๊ฐ ํ๋ฌ์๋๋๋ก ๋ฐ์ ์๊ฐ ์์ฒญํ ์ ์์ต๋๋ค. ๋์์ ์ฐ๊ฒฐํ ํ์ ์์ด InvalidateCache ์ ์ฑ ์ ํธ์ถํ์ฌ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค.
- ๋ชจ์ API ์ฌ์ฉ: ๋ฐฑ์๋ ๊ตฌํ์ด ์๋ฃ๋๊ธฐ ์ ์ ๋ชจ์ API๋ฅผ ๋ง๋ค์ด API ๋์์ ์๋ฎฌ๋ ์ด์ ํด ํ๋ฐํธ์๋ ๊ฐ๋ฐ์ด ๋ ๋ฆฝ์ ์ผ๋ก ์งํ๋๋๋ก ํ ์ ์์ต๋๋ค. ๋ชจ์ API ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ OpenAPI ๋ชจ์ API ํ๋ก์๋ฅผ ์ฐธ์กฐํ์ธ์.
- ํ ํฐ ๊ด๋ฆฌ: Apigee๋ OAuthV2 ํ ํฐ์ ๋ฐ๊ธํ ์ ์์ผ๋ฉฐ ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋์ ์์ ํ๋ก์๋ฅผ ํตํด ์ํ๋ฉ๋๋ค.
- ์ ์ฑ ๋์ ํ ์คํธ: Apigee ์ ์ฑ ์ ์ฌ์ฉํ์ฌ ๋์์ ํ ์คํธํ๋ ค๋ ๊ฒฝ์ฐ์ ๋์ ์์ ํ๋ก์๊ฐ ์ ์ฉํ ์ ์์ต๋๋ค.