nginxからEnvoyに乗り換えることはできるか

アクセスログ(Access log)の扱い

  • https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage

JSONで出力した後、fluent-bitで加工すると柔軟に対応ができる

static_resources:
  listeners:
    - name: main
      address:
        socket_address:
          address: 0.0.0.0
          port_value: 8000
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                stat_prefix: ingress_http
                codec_type: AUTO
                access_log:
                  - name: envoy.file_access_log
                    typed_config:
                      "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog"
                      path: /dev/stdout
                      json_format:
                        RESPONSE_CODe: "%RESPONSE_CODE%"

404ページの扱い

EnvoyのExternal Processingのgoの実装サンプル紹介の記事を御覧ください。

Ratelimit

Global Ratelimit

Gatewayとして利用した場合、上記のシステムを利用することでGlobal Ratelimitが利用できる。

Local Ratelimit

スケーラビリティ

  • 工事中

拡張性