1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Kong + KongaをDockerComposeで使ってみる。

Last updated at Posted at 2020-12-30

Kongとは

Microsoftの設計パターンではゲートウェイ集約という形で公開されているメソッドです。

ゲートウェイを使用して、複数の個々の要求を 1 つの要求に集約します。 このパターンは、クライアントが操作を実行するために、さまざまなバックエンド システムに複数の呼び出しを行う必要がある場合に便利です。

image.png

一般的にマイクロサービスアーキテクチャでサービスを作ってしまうと、アプリケーションとサーバー間の接続が複数生まれます。そうすると、接続情報の管理や、エラーハンドリングが煩雑になってきます。そこで、間にリバースプロキシ的なものを挟んで、アプリケーションからは1つに見えるようにすることが考えられます。これがゲートウェイ集約です。

image.png

今回は、Kongというものを使いましたが、SentinelやGlooなんかも有名です。

使用するイメージ

kong
https://hub.docker.com/_/kong

konga
https://hub.docker.com/r/pantsel/konga/

kongaは何か。というとkong用のWebUIです。kongは商用版ではWebUIがありますが、OSS版ではありません。そのため、kongaというOSSを使って、WebUIをサーブしています。

DockerCompose

docker-compose.yml
version: '2.1'
services:
  kong:
    image: kong
    ports:
      - 0.0.0.0:8000:8000
      - 8443:8443
      - 8001:8001
      - 8444:8444 
    environment:
      - "KONG_PROXY_ACCESS_LOG=/dev/stdout"
      - "KONG_ADMIN_ACCESS_LOG=/dev/stdout"
      - "KONG_PROXY_ERROR_LOG=/dev/stderr"
      - "KONG_ADMIN_ERROR_LOG=/dev/stderr"
      - "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl"
      - "KONG_DATABASE=postgres"
      - "KONG_PG_HOST=kong-db"
      - "KONG_PG_USER=kong"
      - "KONG_PG_PASSWORD=kong"
      - "KONG_CASSANDRA_CONTACT_POINTS=kong-db"
    depends_on:
      - "kong-migrate"
    restart: "on-failure:3"

  kong-migrate:
    image: kong
    depends_on:
      - "kong-db"
    environment:
      KONG_DATABASE: "postgres"
      KONG_PG_HOST: "kong-db"
      KONG_PG_USER: "kong"
      KONG_PG_PASSWORD: "kong"
      KONG_CASSANDRA_CONTACT_POINTS: "kong-db"
    command: "kong migrations bootstrap"
    restart: "on-failure:3"

  kong-db:
    image: "postgres:9.6"
    environment:
      POSTGRES_USER: "kong"
      POSTGRES_PASSWORD: "kong"
      POSTGRES_DB: "kong"
    volumes:
      - ./kong_data:/var/lib/postgresql/data

  konga:
    image: pantsel/konga
    ports:
      - 1337:1337
    environment:
      - "DB_ADAPTER=postgres"
      - "DB_HOST=konga-db"
      - "DB_USER=konga"
      - "DB_PASSWORD=konga"
    restart: "on-failure:3"
    depends_on:
      - konga-db

  konga-db:
    image: "postgres:9.6"
    environment:
      POSTGRES_USER: "konga"
      POSTGRES_PASSWORD: "konga"
      POSTGRES_DB: "konga"
    volumes:
      - ./konga_data:/var/lib/postgresql/data

設定とポイント

image.png

左のCONNECTIONSのペインから選択して、CONNECTIONを作ります。
その時、Kong Admin Urlにhttp://kong:8001/と入力します。
ローカルでの簡単検証のためなので、SSLはなし。ドメインはlocalhostではなく、kongです。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?