เว็บไซต์ของธุรกิจของฉันใช้แพลตฟอร์ม AWS ฉันต้องการให้ผู้เยี่ยมชมเว็บไซต์สามารถเข้าถึงเนื้อหาของฉันโดยใช้โปรโตคอล IPv6 ฉันจะเพิ่มที่อยู่ IPv6 ได้อย่างไร
เว็บไซต์ของธุรกิจของฉันใช้แพลตฟอร์ม AWS ฉันต้องการให้ผู้เยี่ยมชมเว็บไซต์สามารถเข้าถึงเนื้อหาของฉันโดยใช้โปรโตคอล IPv6 ฉันจะเพิ่มที่อยู่ IPv6 ได้อย่างไร
คำตอบ:
แม้ว่าอินสแตนซ์ของ EC2 จะไม่สามารถใช้งาน IPv6 ได้ตามปกติ แต่ Amazon ได้ใช้ IPv6 สำหรับสหรัฐอเมริกาตะวันออก (เวอร์จิเนียตอนเหนือ), EU (ไอร์แลนด์), เอเชียแปซิฟิก (โตเกียว) และเอเชียแปซิฟิก (สิงคโปร์) ฉันจะสาธิตวิธีทำให้เนื้อหา IPv6 พร้อมใช้งานโดยใช้อินสแตนซ์ของ EC2 และตัวโหลดบาลานซ์
การตั้งค่า Elastic Load Balancer (ELB)
ฉันจะสมมติว่าคุณใช้ load balancer อยู่แล้ว (หากคุณต้องการตั้งค่าให้ทำตามคำแนะนำในคู่มือนักพัฒนา Elastic Load Balancer ที่http://awsdocs.s3.amazonaws.com/ElasticLoadBalancing/latest/elb-dg.pdf )
ทำเครื่องหมายถัดจากรายการ ELB เพื่อให้ข้อมูลรายละเอียดปรากฏในแผงด้านล่าง เขียนชื่อสแต็กคู่ของคุณสำหรับ ELB ของคุณ มันจะคล้ายกับชื่อเช่น dualstack.new-balancer-751654286.us-east-1.elb.amazonaws.com
ทดสอบ DNS
ใช้ dig หรือ nslookup เพื่อตรวจสอบว่าคุณได้รับ A (IPv4) และ AAAA (IPv6) บันทึกโดยใช้ชื่อ dual stack ELB DNS ถ้าคุณไม่พอใจกับเครื่องมือบรรทัดคำสั่งเหล่านี้ใช้ขุดบนเว็บดังกล่าวเป็นหนึ่งในhttp://www.kloth.net/services/dig.php
สร้าง CNAME สำหรับโดเมนของคุณ
ฉันแนะนำให้ทดสอบโดเมนที่ไม่ใช้งานเพื่อหลีกเลี่ยงปัญหาการผลิตที่อาจเกิดขึ้น CNAME สำหรับ www.example.com ควรชี้ไปที่ชื่อ ELB สแต็กคู่
การตรวจสอบ
เยี่ยมชม www.example.com จากโฮสต์ที่เชื่อมต่อ IPv6 หรือคุณสามารถใช้http://ipv6-test.com/validate.phpเพื่อทดสอบการเชื่อมต่อ IPv6 กับเว็บไซต์ของคุณ
IPv6 ไม่สามารถใช้งานได้ (จนถึงเดือนกันยายน 2013) สำหรับ EC2; อย่างไรก็ตามมันพร้อมใช้งานสำหรับ ELB ดังนั้นคุณสามารถใช้ ELB เป็นเกตเวย์ IPv4 ได้แต่คุณยังไม่สามารถกำหนดที่อยู่ IPv6 ให้กับอินสแตนซ์ของ EC2 ได้
มีเรื่องไร้สาระที่สิ่งนี้อาจเปลี่ยนแปลงใน "อนาคตอันใกล้" (อะไรก็ตามที่หมายถึง)
คุณสามารถทำให้ไซต์พร้อมใช้งานกับ IPv6 (และประโยชน์อื่น ๆ ) โดยการพร็อกซีไซต์ของคุณผ่าน CloudFlare CDN
IPv6 พร้อมใช้งานแล้วในขณะนี้
เรากำลังดำเนินการเพื่อเพิ่มการสนับสนุน IPv6 ให้กับส่วนต่าง ๆ ของ AWS ในช่วงสองสามปีที่ผ่านมาโดยเริ่มจากการปรับสมดุลโหลดยืดหยุ่น, AWS IoT, การเชื่อมต่อ AWS โดยตรง, เส้นทาง Amazon 53, Amazon CloudFront, AWS WAF และ S3 เร่งความเร็วการโอน ทั้งหมดสร้างขึ้นถึงการประกาศเมื่อเดือนที่แล้วของการสนับสนุน IPv6 สำหรับอินสแตนซ์ EC2 ใน Virtual Private Clouds (เริ่มแรกพร้อมใช้งานในภูมิภาคสหรัฐอเมริกาตะวันออก (โอไฮโอ))
วันนี้ฉันมีความสุขที่จะแบ่งปันข่าวว่าการสนับสนุน IPv6 สำหรับอินสแตนซ์ EC2 ใน VPCs มีให้บริการในสิบห้าภูมิภาคพร้อมด้วยการสนับสนุน Application Load Balancer สำหรับ IPv6 ในเก้าภูมิภาค
อินสแตนซ์ AWS EC2 ยังคงได้รับพื้นที่ที่อยู่ IPvC RFC1918 แต่ถ้าคุณมีบริการเว็บด้านหลัง ELB จะมีชื่อโฮสต์dualstack
และipv6
นำหน้าสำหรับอินสแตนซ์ ELB ที่ให้การเข้าถึง IPv4 / IPv6 คู่และ IPv6 เท่านั้น การสื่อสารระหว่างอินสแตนซ์ของ ELB และ EC2 จะยังคงเป็น IPv4 แต่ไคลเอนต์ที่เชื่อมต่อผ่าน IPv6 จะไม่เห็นอะไรที่แตกต่างนอกจากเว็บแอปพลิเคชันที่คุณโฮสต์จะค้นหาที่อยู่ IPv6 โดยเฉพาะ
ครั้งสุดท้ายที่เป้าหมายของเราคือการโอนย้ายแอปพลิเคชั่น Python Django จากเซิร์ฟเวอร์ Linode ไปยัง Amazon EC2-VPC ตอนแรกฉันอ่านข้อมูลจำนวนมากทางอินเทอร์เน็ตเกี่ยวกับอินสแตนซ์ของ EC2 และสังเกตว่า EC2 VPC ไม่รองรับ IPv6 ในเวลานี้
ใช่เรารู้ว่าอาจเป็นไปได้กับ ELB และ EC2-Classic แต่เราไม่มีความสามารถในการตั้งค่า EC2-Classic เพราะเรามีบัญชีใหม่ที่ Amazon ต้องการสำหรับ EC2-Classic มันเป็นปัญหาใหญ่เพราะเราชอบรูปแบบฐานข้อมูล AWS และฐานข้อมูล RDS แต่เราต้องรับ IPv6 ในแอปพลิเคชันของเรา
หลังจากเวลาคิดเราตัดสินใจที่จะสร้างเซิร์ฟเวอร์ Linode ที่มีการสนับสนุน IPv6 เป็นพร็อกซีแล้ว ในการกำหนดค่า nginx ของเราบน Linode เราทำการส่งทราฟฟิกทั้งหมดไปยังแอปพลิเคชัน EC2-VPC Django บนพอร์ต 9099 และเราจะได้รับคงที่จาก EC2-VPC:
location /static/ {
proxy_pass http://--AWS_IP--/s6/;
}
location /media/ {
proxy_pass http://--AWS_IP--/m6/;
}
location / {
proxy_pass http://--AWS_IP--:9099/;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 4000;
}
ใน EC2-VPC เราสร้างแอปพลิเคชั่น Django ของเราที่พอร์ต 9099 และทำให้สามารถเข้าถึงได้จากภายนอกนอกจากนี้ที่ Amazon Console เรายังอนุญาตให้พอร์ตภายนอกที่สามารถเข้าถึงพอร์ต 9099 ได้เช่นกันเพราะเราต้องการให้ Linode nginx ของเราสามารถส่งปริมาณข้อมูลได้ที่นี่ อย่าลืมส่งสแตติกและสื่อจาก EC2-VPC ไปยัง Linode โดย nginx:
location /s6/ {
alias /home/django/static/;
}
location /m6/ {
alias /home/django/media/;
}
ในที่สุดเราก็ชี้ระเบียน AAAA DNS ไปยังเซิร์ฟเวอร์ Linode และระเบียน A DNS ไปยัง EC2-VPC และทำงานได้ดี การรับส่งข้อมูลทั้งหมดมาถึง EC2-VPC, Real IP ที่เก็บไว้ในส่วนหัว X-Real-IP อันที่จริงฉันคิดว่าเซิร์ฟเวอร์ Linode อาจมีราคาแพงที่จะทำให้มันเหมือนกับพรอกซีถ้าคุณไม่มีแอปพลิเคชันอื่น ๆ ดังนั้นจึงเป็นไปได้ที่จะใช้เซิร์ฟเวอร์ใด ๆ ที่มีคุณสมบัติพร็อกซีและรองรับ IPv6 แน่นอน
โพสต์ต้นฉบับของฉัน: รับการจราจร Ipv6 ใน Amazon Ec2 Vpc