API 게이트웨이 패턴 다이어그램 (PlantUML)

API Gateway 패턴에 대한 다이어그램을 PlantUML에서 만들었습니다.
이 그림을 포함한 블로그 기사도 기재하고 있으므로, 흥미있는 분은 이하로부터 부디.

대단해, API Gateway 패턴! ~ 마이크로 서비스 아키텍처 디자인 패턴 ~ - 후지 야마 달걀의 날

API Gateway 패턴



클라이언트와 백엔드 서비스 사이에 입구가 되는 API 게이트웨이를 배치하는 것이 API 게이트웨이 패턴입니다.

API 게이트웨이가 있는 경우



API 게이트웨이는 외부 요청을 한 손에 맡습니다.



코드

@startuml
title APIゲートウェイがある場合
skinparam agent {
  roundCorner 20
}
skinparam rectangle {
  roundCorner 20
}
agent クライアントアプリ as client
rectangle バックエンド as backend {
  agent APIゲートウェイ as gateway
  agent サービスA as serviceA
  agent サービスB as serviceB
  agent サービスC as serviceC
}
client -right-> gateway
gateway-down-> serviceA
gateway-down-> serviceB
gateway-down-> serviceC
@enduml

API 게이트웨이가 없는 경우



API 게이트웨이가 없는 경우 다음과 같이 외부의 진입점이 여러 개로 분산됩니다. 이로 인해 외부 공격 지점이 여러 개로 분산되어 보안 위험을 높일 수 있습니다.



코드

@startuml
title APIゲートウェイがない場合
skinparam agent {
  roundCorner 20
}
skinparam rectangle {
  roundCorner 20
}
agent クライアントアプリ as client
rectangle バックエンド as backend {
  agent サービスA as serviceA
  agent サービスB as serviceB
  agent サービスC as serviceC
}
client -down-> serviceA
client -down-> serviceB
client -down-> serviceC
@enduml

API Gateway 시퀀스 다이어그램



API 게이트웨이를 통과하지 않는 경우



API 게이트웨이를 통과하지 않으면 클라이언트에서 여러 서비스에서 필요한 정보를 검색합니다. 시퀀스 다이어그램은 다음과 같습니다.



코드

@startuml
title APIゲートウェイを経由しない場合
participant “ECサイト注文画面” as ecsite
participant “商品カタログサービス” as catalog
participant “レビューサービス” as review
participant “レコメンデーションサービス” as recomendation
ecsite -> catalog: 商品情報取得()
activate catalog
catalog-> ecsite : 商品情報
deactivate catalog
ecsite -> review: レビューリスト取得()
activate review
review -> ecsite : レビューリスト
deactivate review
ecsite -> recomendation: レコメンデーションリスト取得()
activate recomendation
recomendation -> ecsite : レコメンデーションリスト
deactivate recomendation
@enduml

API 게이트웨이를 통한 경우



API 게이트웨이를 경유하는 경우 클라이언트와의 상호작용을 최소화할 수 있습니다.



코드

@startuml
title APIゲートウェイを経由する場合
participant “ECサイト注文画面” as ecsite
participant “APIゲートウェイ” as apigateway
participant “商品カタログサービス” as catalog
participant “レビューサービス” as review
participant “レコメンデーションサービス” as recomendation
ecsite -> apigateway: 注文画面用情報取得()
activate apigateway
apigateway-> catalog: 商品情報取得()
activate catalog
catalog-> apigateway: 商品情報
deactivate catalog
apigateway-> review: レビューリスト取得()
activate review
review -> apigateway: レビューリスト
deactivate review
apigateway-> recomendation: レコメンデーションリスト取得()
activate recomendation
recomendation -> apigateway: レコメンデーションリスト
deactivate recomendation
apigateway -> ecsite : 注文画面用情報
deactivate apigateway
@enduml

마지막으로



API 게이트웨이는 마이크로서비스 아키텍처에서 입구 역할을 한다. 그런 API 게이트웨이에 관해서 아래의 기사에 정리하고 있으므로, 흥미있는 분은 꼭 부디.

대단해, API Gateway 패턴! ~ 마이크로 서비스 아키텍처 디자인 패턴 ~ - 후지 야마 달걀의 날

좋은 웹페이지 즐겨찾기