מדריך זה מכסה ניהול DNS של AWS, הגדרת Route 53, רשומות Alias, בדיקות בריאות, מדיניות ניתוב, הגירת DNS ל-AWS, אוטומציה עם Terraform, hosted zones, failover, ניתוב גיאוגרפי ו-hosted zones פרטיים. בעת הגירת דומיין משרתי NS של DigitalOcean ל-Route 53, נתקלנו במצב: 5000+ רשומות, חלקן עם TTL 86400, שירותים תלויים גיאוגרפית, ודרישה לאפס זמן השבתה. ה-DNS הסטנדרטי לא יכול היה להתמודד עם זה. היינו צריכים לפרוס ניתוב גיאוגרפי בין אזורי AWS, להגדיר failover עבור נקודות קצה ראשיות/משניות, ולבצע אוטומציה של הכל באמצעות Terraform. הנה איך לעשות זאת נכון והמלכודות הנפוצות בעת הגדרת DNS עם AWS.
איך להאציל hosted zone בצורה נכונה?
השלב הראשון הוא יצירת hosted zone של AWS והאצלה נכונה. Amazon Route 53 מספקת ארבעה שרתי NS מאזורי זמינות שונים — יש לציין את כל הארבעה אצל הרשם. טעות אופיינית היא ציון רק אחד או שניים, מה שמוביל לפתרון לא יציב באזורים מסוימים. עבור hosted zones פרטיים של AWS, חשוב להגדיר VPC Association בצורה נכונה. ניתן לשייך zone אחד למספר VPCs, כולל האצלת DNS בין חשבונות. עלות hosted zone היא $0.50 לחודש לכל zone. עבור פרויקט טיפוסי עם 5 hosted zones, העלות החודשית היא כ-$2.50.
מה היתרונות של רשומות Alias על פני CNAME?
ב-Route 53, רשומת Alias היא מנגנון מקורי שנפתר ברמת התשתית ללא חיפוש DNS נוסף. זה הופך אותה למהירה פי 2-5 מ-CNAME מסורתי. ניתן למקם Alias ב-domain apex (example.com), דבר ש-CNAME אוסר לפי RFC. יעדים נתמכים: ALB, NLB, CloudFront, אתר סטטי ב-S3, API Gateway, Elastic Beanstalk, רשומות אחרות של Route 53. רשומות Alias למשאבי AWS אינן מחויבות עבור שאילתות DNS. ב-10 מיליון שאילתות בחודש, זה חוסך כ-$400 — בפועל, מעבר ל-Alias מפחית את עלויות ה-DNS ב-30-50%. בנוסף, רשומות Alias משפרות את זמני התגובה לשאילתות ב-50% בממוצע.
מדריך לבחירת מדיניות ניתוב
| מדיניות | מתאימה ל | תכונה מיוחדת |
|---|---|---|
| פשוטה | יעד יחיד | ללא בדיקות בריאות |
| משוקללת | בדיקות A/B, שחרורים canary | חלוקת תעבורה לפי משקלים (0 פירושו ללא תעבורה) |
| השהיה | מינימיזציית השהיה גלובלית | משתמשת במסד נתוני השהיה פנימי של AWS, לא במדידות אמיתיות |
| Failover | ראשי/משני עם סובלנות לתקלות | דורש Health Check, מעבר תוך ~10 שניות |
| גיאוגרפית | תוכן אזורי | ניתוב מדויק לפי מדינה/יבשת; תומך ביותר מ-200 אזורים |
| גיאו-פרוקסימיטי | הסטת הטיה גמישה | פרמטר הטיה מזיז את המרכז |
ניתוב משוקלל מחלק תעבורה לפי משקלים בין מספר יעדים. משמש לבדיקות A/B או מעברי אזור הדרגתיים. משקל 0 עוצר תעבורה ליעד זה. ניתוב השהיה משתמש במסד נתוני השהיה הפנימי של Amazon כדי לנתב להשהיה הנמוכה ביותר. ניתוב Failover — ראשי/משני עם הצמדת Health Check. כאשר הראשי נכשל, התעבורה עוברת אוטומטית למשני. זמן המעבר תלוי במרווח בדיקת הבריאות (מינימום 10 שניות) וב-TTL של הרשומה. אנו מבטיחים failover עם MTTR מתחת ל-30 שניות. באמצעות בדיקות בריאות של Route 53, failover מהיר פי 3 מפתרונות DNS failover טיפוסיים.
בדיקת בריאות: ניואנסים מרכזיים
בדיקות הבריאות של Route 53 מגיעות בשלושה סוגים:
| סוג | תיאור | מקרה שימוש |
|---|---|---|
| HTTP/HTTPS | בדיקת תגובת פרוטוקול | שירותי ווב, APIs |
| TCP | בדיקת פתיחת פורט | כל שירות TCP |
| מחושבת | צירוף של מספר בדיקות | תלות מורכבת |
חשוב: הבודקים פועלים מ-6 אזורי AWS. אם שירות אינו זמין מאזור אחד בלבד, Route 53 כברירת מחדל אינה מחשיבה אותו כלא בריא (הסף הוא רוב הבודקים). ניתן להתאים זאת באמצעות Failure Threshold. עבור משאבים פרטיים, אנו משתמשים במדד CloudWatch כמקור לבדיקת בריאות — זה מוסיף השהיה למעבר אך מאפשר ניטור נקודות קצה פנימיות. לפי התיעוד הרשמי של AWS Route 53, מרווח הבדיקה המינימלי הוא 10 שניות, ו-TTL יכול להיות 60 שניות. בדיקות בריאות עולות $0.50 לחודש לכל בדיקה. הגדרה טיפוסית עם 3 בדיקות עולה $1.50 לחודש.
איך להגדיר failover עם Terraform?
הוראות שלב אחר שלב
- צור Hosted Zone — משאב
aws_route53_zoneעם שם הדומיין. - הוסף Health Check —
aws_route53_health_checkעם סוג HTTP, פורט 80, נתיב /health. - צור רשומה ראשית —
aws_route53_recordעםfailover_routing_policytype = "PRIMARY"ו-health_check_id. - צור רשומה משנית — דומה עם
type = "SECONDARY"ו-set_identifier. - סנכרן באמצעות Terraform — החל את התצורה.
- בדוק סובלנות לתקלות — השבת את נקודת הקצה הראשית, וודא שהתעבורה עוברת למשנית תוך 10-20 שניות.
resource "aws_route53_zone" "primary" {
name = "example.com"
}
resource "aws_route53_record" "www" {
zone_id = aws_route53_zone.primary.zone_id
name = "www.example.com"
type = "A"
alias {
name = aws_lb.main.dns_name
zone_id = aws_lb.main.zone_id
evaluate_target_health = true
}
}resource "aws_route53_zone" "primary" { name = "example.com" } resource "aws_route53_record" "www" { zone_id = aws_route53_zone.primary.zone_id name = "www.example.com" type = "A" alias { name = aws_lb.main.dns_name zone_id = aws_lb.main.zone_id evaluate_target_health = true } } — מאפשר בדיקת בריאות של ה-ALB לפני החזרת הרשומה. מומלץ תמיד.
תוצרים
בסיום ההתקשרות, תקבלו:
- ביקורת של אזור ה-DNS הנוכחי: זיהוי רשומות מיושנות, שגיאות TTL, מדיניות לא אופטימלית.
- תכנון סכמת ניתוב: בחירת מדיניות לעומס, אזורים, סובלנות לתקלות.
- יצירה והגדרה של Hosted Zones: ציבוריים ופרטיים, האצלה, VPC Association.
- הגדרת רשומות Alias ובדיקות בריאות: מיפוי למשאבי AWS, הגדרת ספים.
- תשתית כקוד: מודולי Terraform עם גרסאות, גישת GitOps.
- הקצאת גישת AWS ותפקידי IAM.
- הגירת DNS ל-AWS ללא השבתה: הפחתת TTL על פני 2-3 ימים, השקה מקבילה, ניטור (ביצענו 50+ הגירות עם אפס השבתה, ויותר מ-95% מההגירות מסתיימות ללא כל השבתה).
- תיעוד ו-runbook: תיאור סכמה, הוראות כוננות.
- הדרכה והעברת ידע לצוות שלך.
- תמיכה לאחר השקה: ניטור, אופטימיזציה, התאמות.
ציר זמן
הגדרה בסיסית של hosted zone עם רשומות עיקריות ו-Alias ל-ALB — 4-5 שעות. אם נדרשים ניתוב גיאוגרפי, failover עם בדיקות בריאות ומודול Terraform — 8 שעות. הגירה מספק אחר עם ביקורת ו-TTL מינימלי — גם כן תוך יום אחד. שירות הגירת ה-DNS שלנו מתחיל ב-$500 עבור תצורות בסיסיות. צרו קשר לקבלת הערכה מדויקת לפרויקט שלכם — קבלו ייעוץ ממהנדס עם 10+ שנות ניסיון. הזמינו ביקורת של תשתית ה-DNS שלכם — נכין תוכנית הגירה ואופטימיזציה. לצוות שלנו יש מעל 10 שנות ניסיון DevOps והשלים 50+ הגירות DNS מוצלחות. להבנה מעמיקה יותר של DNS, אנו ממליצים על המאמר Domain Name System. עבור פרויקט הגירה טיפוסי הכולל 5 hosted zones, 20 רשומות ו-3 בדיקות בריאות, העלות החודשית היא כ-$3.50, שזה מינימלי בהשוואה לחיסכון התפעולי.







