Рубрики
Uncategorized

Traefik V2 с помощью Encrypt в Euresti Contaster Container Enterplics (ECS)

В этом посте мы узнаем, как настроить Traefik V2 на ECS со встроенным SLLESSCRYPT SSL. До того, как я … Теги с Traefik, Letsencrypt, ECS, DEVOPS.

В этом посте мы узнаем, как настроить Traefik V2 на ECS со встроенным СТАРСЕРГИПТ SSL.

Прежде чем начать, я хочу упомянуть, что Трафик Потрясающий обратный балансировщик прокси и нагрузки.

Шаги, которые мы будем следовать:

  1. Построить изображение докера для Traefik на нашей местной машине
  2. Нажмите его на реестра упругих контейнера Amazon (ECR)
  3. Используйте толкаемое изображение в определении задания для запуска службы и задачи для Traefik.

Построить изображение докера для Traefik на нашей местной машине

Dockerfile

FROM      alekitto/traefik-alpine

COPY      traefik_ecs.yaml /etc/traefik/traefik.yaml
RUN touch /etc/traefik/acme.json
RUN chmod +x /etc/traefik/acme.json

Traefik_ecs.yaml.

## Static configuration
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: websecure
          scheme: https

  websecure:
    address: ":443"
    http:
      tls:
        certResolver: myresolver

api:
  dashboard: true

providers:
  ecs:
    exposedByDefault: true
    autoDiscoverClusters: false
    clusters:
    - YOUR_ECS_CLUSTER_NAME
    region: YOUR_AWS_REGION
    accessKeyID: "YOUR_AWS_ACCESS_KEY_ID"
    secretAccessKey: "YOUR_AWS_SECRET_ACCESS_KEY"

certificatesResolvers:
  myresolver:
    # Enable ACME (Let's Encrypt): automatic SSL.
    acme:
      email: "YOUR_EMAIL"
      storage: "acme.json"

      # CA server to use.
      # Uncomment the line to use Let's Encrypt's staging server,
      # leave commented to go to prod.
      #
      # Optional
      # Default: "https://acme-v02.api.letsencrypt.org/directory"
      #
      # caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"
      # Use a TLS-ALPN-01 ACME challenge.
      #
      # Optional (but recommended)
      #
      # tlsChallenge:
      httpChallenge:

        # EntryPoint to use for the HTTP-01 challenges.
        #
        # Required
        #
        entryPoint: web

Теперь следуйте этим шагам, чтобы построить изображение Docker и нажать на реестр эластичного контейнера (ECR)

* Install AWS CLI https://aws.amazon.com/cli/ to execute these steps

export AWS_REGION='YOUR_AWS_REGION'

export AWS_ACCOUNT_ID='YOUR_ACCOUNT_ID'

export ECR_REPO_NAME='YOUR_REPO_NAME'

(aws ecr create-repository --repository-name $ECR_REPO_NAME) || true

eval $(aws ecr get-login --no-include-email --region eu-central-1)

docker build -t $ECR_REPO_NAME:\latest .

docker tag $ECR_REPO_NAME:\latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$ECR_REPO_NAME:\latest

docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$ECR_REPO_NAME:\latest

Создать определение задачи для запуска задачи от изображения нажатой на ECR

Докер этикетки

traefik.http.routers.dashboard.middlewares auth

traefik.http.middlewares.auth.basicauth.users anilmaurya:$apr1$1ktoln283782378923T43el/

traefik.http.routers.dashboard.rule Host(`example.com`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))

traefik.http.routers.dashboard.service api@internal

Генерировать токен для basicauth с этого сайта https://hostingcanada.org/htpasswd-generator/

Создайте одну услугу и запустите этот Трафик Определение задания, после того, как Trafik работает, нам нужно добавить этикетки Docker в контейнеры, работающие в одном кластере

Пример этикетки Docker:

traefik.http.routers.app.rule   Host(`example.com`)

traefik.http.services.app.loadbalancer.server.port  3000

Вывод

GitHub: https://github.com/anilmaurya/ecs-traefik-v2.

Приложение можно получить доступ к https://example.com С сертификатом SSL от Enterprypt

Трафик Приборная панель может быть доступна на https://example.com/dashboard

** Заменить Пример с вашим DNS.

Оригинал: «https://dev.to/anilmaurya/traefik-v2-with-lets-encrypt-on-amazon-s-elastic-container-service-ecs-1h4h»