Files
runbooks/anvil-ses-final-setup.md
kappa 49fe96775a Add 5 more runbooks
- aws-ses-setup.md: AWS SES email configuration
- anvil-ses-final-setup.md: Anvil SES final setup
- n8n-setup-guide.md: n8n workflow automation
- gitea-setup.md: Gitea server installation
- cloudflare-vault-integration.md: Cloudflare + Vault integration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 00:39:06 +09:00

5.4 KiB
Raw Permalink Blame History

AWS SES 완벽 설정 완료 - anvil.it.com

🎉 설정 완료 상태

Mail-Tester 점수: 10/10 (만점)

설정 완료일: 2025-09-06
도메인: anvil.it.com
리전: ap-northeast-2 (Seoul)

📧 SMTP 설정 정보

SMTP_HOST: email-smtp.ap-northeast-2.amazonaws.com
SMTP_PORT: 587
SMTP_TLS: true
SMTP_USERNAME: [Vault: secret/aws/ses/smtp -> smtp_username]
SMTP_PASSWORD: [Vault: secret/aws/ses/smtp -> smtp_password]
SMTP_FROM: noreply@anvil.it.com

Vault에서 인증 정보 조회

# 전체 설정 조회
vault kv get secret/aws/ses/smtp

# SMTP Password만 조회
vault kv get -field=smtp_password secret/aws/ses/smtp

🔐 DNS 레코드 설정

1. SPF 레코드 (TXT)

anvil.it.com TXT "v=spf1 include:_spf.mx.cloudflare.net include:amazonses.com ~all"

2. DKIM 레코드 (CNAME × 3)

dgcehnldehfmfgpvrrbc6drwasiibhnp._domainkey.anvil.it.com CNAME dgcehnldehfmfgpvrrbc6drwasiibhnp.dkim.amazonses.com
spopdscdt2sxngqzl5ir66k3ed6og7ut._domainkey.anvil.it.com CNAME spopdscdt2sxngqzl5ir66k3ed6og7ut.dkim.amazonses.com
55l5wnmktvacgyfpt6sovcgb2rqexrpy._domainkey.anvil.it.com CNAME 55l5wnmktvacgyfpt6sovcgb2rqexrpy.dkim.amazonses.com

3. DMARC 레코드 (TXT)

_dmarc.anvil.it.com TXT "v=DMARC1;p=quarantine;pct=25;rua=mailto:908761dcafa547a981e283a21768d69f@dmarc-reports.cloudflare.net,mailto:dmarc-reports@anvil.it.com;ruf=mailto:dmarc-failures@anvil.it.com"

4. MAIL FROM 도메인 설정

# MX 레코드
bounce.anvil.it.com MX 10 feedback-smtp.ap-northeast-2.amazonses.com

# SPF 레코드  
bounce.anvil.it.com TXT "v=spf1 include:amazonses.com ~all"

5. 도메인 검증 (TXT)

_amazonses.anvil.it.com TXT "0cuw9v32N+aeFiNlTh2Poxglgzf3BlmFRjVOjeLEdy4="

AWS SES 상태

도메인 검증

  • Status: Success
  • DKIM: Success & Enabled
  • MAIL FROM: bounce.anvil.it.com (Success)

발송 한도

  • 일일 최대: 50,000통
  • 초당 최대: 14통
  • 현재 환경: Production Ready

🎯 컴플라이언스 달성 상태

요구사항 상태 점수
SPF Authentication Compliant Pass
DKIM Authentication Compliant Pass
DMARC Authentication Quarantine (25%) Pass
From Header Alignment Compliant Pass
DNS Records Compliant Pass
Encryption TLS Required Pass
One-click Unsubscribe RFC 8058 Pass
Honor Unsubscribe Compliant Pass

최종 점수: 8/8 (완전 준수) 🏆

📱 애플리케이션 통합 예시

Node.js (nodemailer)

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransporter({
  host: 'email-smtp.ap-northeast-2.amazonaws.com',
  port: 587,
  secure: false,
  auth: {
    user: process.env.SMTP_USERNAME, // SMTP Username
    pass: process.env.SMTP_PASSWORD  // SMTP Password (변환된 값)
  }
});

// RFC 8058 호환 메일 발송
const mailOptions = {
  from: 'noreply@anvil.it.com',
  to: 'user@example.com',
  subject: 'Welcome!',
  html: '<h1>Welcome!</h1>',
  headers: {
    'List-Unsubscribe': '<mailto:unsubscribe@anvil.it.com>, <https://anvil.it.com/unsubscribe>',
    'List-Unsubscribe-Post': 'List-Unsubscribe=One-Click'
  }
};

Python (smtplib)

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

msg = MIMEMultipart()
msg['From'] = 'noreply@anvil.it.com'
msg['To'] = 'user@example.com'  
msg['Subject'] = 'Welcome!'
msg['List-Unsubscribe'] = '<mailto:unsubscribe@anvil.it.com>, <https://anvil.it.com/unsubscribe>'
msg['List-Unsubscribe-Post'] = 'List-Unsubscribe=One-Click'

server = smtplib.SMTP('email-smtp.ap-northeast-2.amazonaws.com', 587)
server.starttls()
server.login(smtp_username, smtp_password)
server.send_message(msg)
server.quit()

🚀 성과 요약

  1. 완벽한 인증 체계: SPF, DKIM, DMARC 모두 통과
  2. 최고 수준 컴플라이언스: RFC 8058 One-click Unsubscribe 구현
  3. Gmail 최적화: Postmaster Tools 준비 완료
  4. 확장 가능한 구조: 일일 50K 발송 지원
  5. 보안 강화: 단계적 DMARC 정책 (quarantine 25%)

📊 모니터링 및 관리

Gmail Postmaster Tools

DMARC 리포트

AWS SES 모니터링

# 발송 통계
aws ses get-send-statistics --region ap-northeast-2

# 발송 한도 확인
aws ses get-send-quota --region ap-northeast-2

🔄 향후 개선 계획

1단계 (완료): 기본 설정

  • 도메인 검증
  • DKIM 활성화
  • SPF 설정
  • DMARC 모니터링

2단계 (완료): 컴플라이언스

  • DMARC quarantine (25%)
  • One-click Unsubscribe
  • RFC 8058 준수

3단계 (2주 후): 정책 강화

  • DMARC: p=quarantine;pct=100
  • 평판 안정화 후 p=reject 고려
  • Gmail Postmaster 데이터 분석

4단계 (1개월 후): 고도화

  • 발송량 점진적 증가 (Warm-up)
  • A/B 테스트 기반 최적화
  • 고급 모니터링 구축

🎯 결과: anvil.it.com 메일 시스템은 업계 최고 수준으로 설정되었습니다!

Mail-Tester 10/10 점수는 모든 주요 메일 서비스에서 anvil.it.com을 신뢰할 수 있는 발신자로 인식한다는 의미입니다.