Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #2506

cdn-setup

Configura CDNs como CloudFront, Cloudflare e Fastly para otimizar a entrega de conteúdo global.

O que ela faz

Esta ferramenta ajuda a configurar redes de entrega de conteúdo (CDNs) para que seus arquivos (como imagens, vídeos e código) sejam entregues rapidamente em qualquer lugar do mundo. Ela configura serviços como CloudFront, Cloudflare e Fastly.

Quando usar

  • ✓Quando você quer que seu site carregue rápido para pessoas em diferentes países.
  • ✓Para evitar que seu servidor principal fique sobrecarregado com muitos acessos.
  • ✓Para adicionar segurança extra e proteger seu site contra ataques.

Exemplo do que pedir para a IA

“Configure uma CDN para meu site usando Cloudflare e aponte para meu servidor S3.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/cdn-setup/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/cdn-setup/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você fornece informações sobre seu site e o conteúdo que deseja entregar. A ferramenta então configura a CDN escolhida para gerenciar como e onde esse conteúdo é entregue aos usuários.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill cdn-setup

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/cdn-setup/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Configuração de CDN

Configure redes de entrega de conteúdo para entrega global rápida e confiável de ativos com cache, invalidação e segurança adequados.

Quando Usar

  • Servir ativos estáticos (JS, CSS, imagens, fontes) globalmente com baixa latência.
  • Descarregar tráfego de servidores de origem para reduzir custos de computação.
  • Adicionar terminação TLS e proteção DDoS na borda.
  • Implementar roteamento baseado em geolocalização ou restrições de conteúdo.
  • Acelerar respostas de API com cache de borda.

Pré-requisitos

  • Domínio com acesso ao gerenciamento de DNS.
  • Servidor de origem ou bucket S3/R2 com conteúdo para servir.
  • AWS CLI configurado (para CloudFront).
  • Conta Cloudflare com zona configurada (para Cloudflare CDN).
  • Terraform 1.5+ (para exemplos de infraestrutura como código).

AWS CloudFront

Criar uma Distribuição via CLI

# Create an S3 origin distribution with OAC (Origin Access Control)
aws cloudfront create-distribution --distribution-config '{
  "CallerReference": "my-site-'$(date +%s)'",
  "Comment": "Production site CDN",
  "Enabled": true,
  "Origins": {
    "Quantity": 1,
    "Items": [{
      "Id": "s3-origin",
      "DomainName": "my-bucket.s3.us-east-1.amazonaws.com",
      "OriginPath": "",
      "S3OriginConfig": {
        "OriginAccessIdentity": ""
      },
      "OriginAccessControlId": "E2QWRUHAPOMQZL"
    }]
  },
  "DefaultCacheBehavior": {
    "TargetOriginId": "s3-origin",
    "ViewerProtocolPolicy": "redirect-to-https",
    "AllowedMethods": {
      "Quantity": 2,
      "Items": ["GET", "HEAD"]
    },
    "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6",
    "Compress": true
  },
  "DefaultRootObject": "index.html",
  "PriceClass": "PriceClass_100",
  "ViewerCertificate": {
    "ACMCertificateArn": "arn:aws:acm:us-east-1:123456789:certificate/abc-123",
    "SSLSupportMethod": "sni-only",
    "MinimumProtocolVersion": "TLSv1.2_2021"
  },
  "Aliases": {
    "Quantity": 1,
    "Items": ["www.example.com"]
  },
  "CustomErrorResponses": {
    "Quantity": 1,
    "Items": [{
      "ErrorCode": 404,
      "ResponseCode": "200",
      "ResponsePagePath": "/index.html",
      "ErrorCachingMinTTL": 10
    }]
  }
}'

Invalidação de Cache

# Invalidate specific paths
aws cloudfront create-invalidation \
  --distribution-id E1A2B3C4D5E6F7 \
  --paths "/index.html" "/css/*" "/js/*"

# Invalidate everything (costs apply per path)
aws cloudfront create-invalidation \
  --distribution-id E1A2B3C4D5E6F7 \
  --paths "/*"

# Check invalidation status
aws cloudfront get-invalidation \
  --distribution-id E1A2B3C4D5E6F7 \
  --id I1A2B3C4D5E6F7

# List recent invalidations
aws cloudfront list-invalidations --distribution-id E1A2B3C4D5E6F7

CloudFront Functions (Lógica Leve na Borda)

// URL rewrite function — add index.html to directory requests
function handler(event) {
  var request = event.request;
  var uri = request.uri;

  if (uri.endsWith('/')) {
    request.uri += 'index.html';
  } else if (!uri.includes('.')) {
    request.uri += '/index.html';
  }

  return request;
}

CloudFront com Terraform

# cloudfront.tf
resource "aws_cloudfront_distribution" "site" {
  enabled             = true
  is_ipv6_enabled     = true
  default_root_object = "index.html"
  aliases             = ["www.example.com"]
  price_class         = "PriceClass_100"

  origin {
    domain_name              = aws_s3_bucket.site.bucket_regional_domain_name
    origin_id                = "s3-origin"
    origin_access_control_id = aws_cloudfront_origin_access_control.oac.id
  }

  default_cache_behavior {
    allowed_methods  = ["GET", "HEAD"]
    cached_methods   = ["GET", "HEAD"]
    target_origin_id = "s3-origin"

    cache_policy_id          = "658327ea-f89d-4fab-a63d-7e88639e58f6" # CachingOptimized
    origin_request_policy_id = "88a5eaf4-2fd4-4709-b370-b4c650ea3fcf" # CORS-S3Origin

    viewer_protocol_policy = "redirect-to-https"
    compress               = true
  }

  # Fallback para SPA
  custom_error_response {
    error_code         = 404
    response_code      = 200
    response_page_path = "/index.html"
  }

  # Passagem de API (sem cache)
  ordered_cache_behavior {
    path_pattern     = "/api/*"
    allowed_methods  = ["GET", "HEAD", "OPTIONS", "PUT", "POST", "PATCH", "DELETE"]
    cached_methods   = ["GET", "HEAD"]
    target_origin_id = "api-origin"

    cache_policy_id          = "4135ea2d-6df8-44a3-9df3-4b5a84be39ad" # CachingDisabled

…
Perguntas frequentes

O que é uma CDN?

Uma CDN é uma rede de servidores espalhados pelo mundo que armazena cópias do seu conteúdo. Quando alguém acessa seu site, o conteúdo é entregue pelo servidor mais próximo dessa pessoa, tornando o carregamento mais rápido.

Por que usar uma CDN?

CDNs melhoram a velocidade de carregamento do site, reduzem a carga no seu servidor principal e podem aumentar a segurança e a confiabilidade.

Preciso saber programar para usar isso?

Embora a configuração detalhada possa envolver termos técnicos, o objetivo desta ferramenta é simplificar o processo. Você não precisa ser um programador experiente para começar.

Detalhes

Descrição original do autor

Configure CDNs for content delivery. Set up CloudFront, Cloudflare, and Fastly. Use when optimizing global content delivery.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2506
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas