ฉันมีเซิร์ฟเวอร์ที่อยู่นอก AWS ฉันต้องการที่จะติดตั้งไดรฟ์ข้อมูล EFS ลงไป แต่ฉันไม่แน่ใจว่าเป็นไปได้หรือไม่
บางทีถ้าคุณสร้าง VPC และคุณสร้างอุโมงค์ผ่าน VPN?
มีใครรู้บ้างไหมว่าสิ่งนี้เป็นไปได้หรือไม่?
ฉันมีเซิร์ฟเวอร์ที่อยู่นอก AWS ฉันต้องการที่จะติดตั้งไดรฟ์ข้อมูล EFS ลงไป แต่ฉันไม่แน่ใจว่าเป็นไปได้หรือไม่
บางทีถ้าคุณสร้าง VPC และคุณสร้างอุโมงค์ผ่าน VPN?
มีใครรู้บ้างไหมว่าสิ่งนี้เป็นไปได้หรือไม่?
คำตอบ:
การอัปเดตที่สำคัญ:
ในเดือนตุลาคมปี 2018 AWS ได้ขยายขีดความสามารถของเทคโนโลยีเครือข่ายที่สนับสนุน EFS เพื่อให้สามารถใช้งานได้ผ่านการเชื่อมต่อ VPN ที่ได้รับการจัดการและ VPC ข้ามภูมิภาคที่ได้รับการจัดการ
EFS ได้เพิ่มการรองรับการเชื่อมต่อผ่านวงจร AWS Direct Connect ในปลายปี 2559
https://aws.amazon.com/blogs/aws/amazon-efs-update-on-premises-access-via-direct-connect-vpc/
ความคิดเห็นทำให้เกิดปัญหาที่น่าสนใจเนื่องจากในการอ่านคำถามครั้งแรกของฉันฉันอาจสันนิษฐานว่ามีความคุ้นเคยกับ EFS มากกว่าที่คุณอาจมี
ดังนั้นก่อนเล็กน้อยของพื้นหลัง:
"Elastic" ใน Elastic File System หมายถึงการปรับขนาดพื้นที่จัดเก็บและปริมาณงานโดยอัตโนมัติไม่ใช่ความยืดหยุ่นในการเข้าถึงจากภายนอก
EFS ดูเหมือนจะไม่มีข้อ จำกัด ที่มีความหมายต่อปริมาณข้อมูลที่คุณสามารถจัดเก็บได้ ขนาดสูงสุดของไฟล์เอกสารใด ๆ เดียวบนไดรฟ์ EFS เป็น52.673.613.135.872 ไบต์ (52 TiB) ข้อ จำกัด อื่น ๆ ส่วนใหญ่มีขนาดใกล้เคียงกัน
EFS โดยเฉพาะอย่างยิ่ง "ยืดหยุ่น" ในวิธีการเรียกเก็บเงิน แตกต่างจากระบบไฟล์ในปริมาณ EBS พื้นที่จะไม่ได้รับการจัดสรรล่วงหน้าบน EFS และคุณจ่ายเฉพาะค่าที่คุณจัดเก็บตามค่าเฉลี่ยรายชั่วโมง ค่าใช้จ่ายของคุณจะเพิ่มขึ้นและลดลง (พวกเขา "ยืดหยุ่น") ตามจำนวนเงินที่คุณเก็บไว้ เมื่อคุณลบไฟล์คุณจะหยุดจ่ายสำหรับพื้นที่ที่พวกเขาครอบครองภายในหนึ่งชั่วโมง หากคุณเก็บ 1 GB เป็นเวลา 750 ชั่วโมง (≅1เดือน) แล้วลบทิ้งหรือถ้าคุณเก็บ 375 GB เป็นเวลา 2 ชั่วโมงแล้วลบออกบิลรายเดือนของคุณจะเท่ากัน ... $ 0.30 ซึ่งแตกต่างจาก EBS อย่างแน่นอนซึ่งจะทำให้คุณมีค่าใช้จ่าย $ 37.50 สำหรับการจัดเก็บ 375 GB 0x00
สำหรับเวลาที่เหลือในเดือนนี้
รูปแบบการกำหนดราคาพื้นที่เก็บข้อมูลของ S3 นั้นเหมือนกับ EFS เนื่องจากการเรียกเก็บเงินสำหรับที่เก็บข้อมูลหยุดลงทันทีที่คุณลบวัตถุและค่าใช้จ่ายคือ EFS ประมาณ 1/10 แต่ในขณะที่ฉันและคนอื่น ๆ พูดถึงหลายครั้ง S3 ไม่ใช่ ระบบแฟ้ม ยูทิลิตี้อย่าง s3fs-fuse พยายามที่จะให้ "สะพานอิมพีแดนซ์" แต่มีปัญหาในการพยายามรักษาบางสิ่งที่ไม่ใช่ระบบไฟล์อย่างแท้จริงราวกับว่ามันเป็น (ความสอดคล้องในที่สุดสำหรับการเขียนทับไม่ได้น้อยที่สุด) ดังนั้นหากระบบไฟล์ "ของจริง" คือสิ่งที่คุณต้องการและเป็นแอปพลิเคชันที่ต้องใช้การเข้าถึงร่วมกันหรือพื้นที่หน่วยความจำที่ต้องการนั้นยากต่อการพิจารณาหรือคุณต้องการปรับขนาดตามความต้องการ EFS อาจมีประโยชน์
และดูดีเมื่อคุณมีพื้นที่ว่าง 8.0 EiB
$ df -h | egrep '^Filesystem|efs'
Filesystem Size Used Avail Use% Mounted on
us-west-2a.fs-5ca1ab1e.efs.us-west-2.amazonaws.com:/ 8.0E 121G 8.0E 1% /srv/efs/fs-5ca1ab1e
us-west-2a.fs-acce55ed.efs.us-west-2.amazonaws.com:/ 8.0E 7.2G 8.0E 1% /srv/efs/fs-acce55ed
แต่เป็นเรื่องสำคัญที่จะต้องใช้บริการจัดเก็บข้อมูลที่เหมาะสมที่สุดสำหรับแอปพลิเคชันของคุณ ตัวเลือกแต่ละตัวมีกรณีการใช้งานที่ถูกต้อง EFS น่าจะเป็นโซลูชันเฉพาะด้านการจัดเก็บข้อมูลที่นำเสนอโดย AWS มีกรณีการใช้งานที่แคบกว่า EBS หรือ S3
แต่คุณสามารถใช้มันจากภายนอก VPC ได้หรือไม่?
คำตอบอย่างเป็นทางการคือไม่ :
ไม่สนับสนุนการเมานต์ระบบไฟล์ผ่านกลไกการเชื่อมต่อส่วนตัวของ VPC เช่นการเชื่อมต่อ VPN, VPC peering และ AWS Direct Connect
- http://docs.aws.amazon.com/efs/latest/ug/limits.html
ปัจจุบัน EFS ถูก จำกัด ให้เข้าถึงเฉพาะ EC2 Linux เท่านั้น นั่นก็เช่นกันภายใน VPC คุณสมบัติเพิ่มเติมจะถูกเพิ่มในไม่ช้า คุณสามารถติดตามประกาศ AWS สำหรับคุณสมบัติใหม่ที่เปิดตัว
- https://forums.aws.amazon.com/thread.jspa?messageID=732749
อย่างไรก็ตามคำตอบที่เป็นประโยชน์คือใช่แม้ว่านี่ไม่ใช่การกำหนดค่าที่รองรับอย่างเป็นทางการ เพื่อให้ทำงานได้ต้องมีขั้นตอนพิเศษบางอย่าง
แต่ละระบบไฟล์ EFS ได้รับการกำหนดที่อยู่ IP ปลายทางใน VPC ของคุณโดยใช้ Elastic network Interface (ENI) ซึ่งโดยทั่วไปจะมีหนึ่งรายการต่อหนึ่งโซนความพร้อมใช้งานและคุณต้องการให้แน่ใจว่าคุณติดตั้งที่อยู่ในโซนว่างที่ตรงกับอินสแตนซ์ ยังเป็นเพราะค่าใช้จ่ายแบนด์วิดธ์ใช้เมื่อมีการขนส่งข้อมูลข้ามเขตพื้นที่ว่าง
สิ่งที่น่าสนใจเกี่ยวกับ ENIs เหล่านี้คือไม่ปรากฏว่าใช้ตารางเส้นทางสำหรับซับเน็ตที่แนบมา ดูเหมือนว่าพวกเขาจะสามารถตอบสนองต่ออินสแตนซ์ภายใน VPC เท่านั้นโดยไม่คำนึงถึงการตั้งค่ากลุ่มความปลอดภัย (แต่ละระบบไฟล์ EFS มีกลุ่มความปลอดภัยของตนเองเพื่อควบคุมการเข้าถึง)
เนื่องจากไม่มีเส้นทางภายนอกที่เข้าถึงได้ฉันจึงไม่สามารถเข้าถึงจุดปลาย EFS โดยตรงผ่านฮาร์ดแวร์ VPN ของฉัน ... ดังนั้นฉันจึงหันไปใช้ HAProxy เพื่อนเก่าของฉันซึ่งแน่นอน (ตามที่ @ Tim คาดการณ์ไว้) เป็นสิ่งจำเป็นเพื่อให้งานนี้สำเร็จ มันเป็นการกำหนดค่าที่ตรงไปตรงมาเนื่องจาก EFS ใช้พอร์ต TCP เพียง 2049
ฉันใช้ HAProxy ใน t2.nano (HAProxy มีประสิทธิภาพมาก) ด้วยการกำหนดค่าที่มีลักษณะดังนี้:
listen fs-8d06f00d-us-east-1
bind :2049
mode tcp
option tcplog
timeout tunnel 300000
server fs-8d06f00d-us-east-1b us-east-1b.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000
server fs-8d06f00d-us-east-1c us-east-1c.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000 backup
server fs-8d06f00d-us-east-1d us-east-1d.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000 backup
เซิร์ฟเวอร์นี้อยู่ใน us-east-1b ดังนั้นจึงใช้จุดปลาย us-east-1b เป็นเซิร์ฟเวอร์หลักอีกสองเซิร์ฟเวอร์เป็นข้อมูลสำรองหากปลายทางใน 1b ไม่ผ่านการตรวจสุขภาพ
หากคุณมี VPN ใน VPC ของคุณคุณจะเมานต์ไดรฟ์โดยใช้ที่อยู่ IP ของพร็อกซีอินสแตนซ์นี้เป็นเป้าหมาย (แทนที่จะใช้ EFS endpoint โดยตรง) และvoilàคุณได้ติดตั้งระบบไฟล์ EFS จากภายนอก VPC
ฉันติดตั้งมันเรียบร้อยแล้วบนเครื่อง Ubuntu ภายนอกรวมถึงเซิร์ฟเวอร์ Solaris (ที่ EFS ได้พิสูจน์แล้วว่ามีประโยชน์มากสำหรับการเร่งการรื้อถอนโดยการทำให้การย้ายบริการออกไปง่ายกว่า)
สำหรับบางสถานการณ์เช่นการย้ายข้อมูลไปยัง AWS หรือใช้งานระบบดั้งเดิมและระบบคลาวด์ควบคู่ไปกับข้อมูลเฉพาะในระหว่างการย้ายข้อมูล EFS ดูเหมือนจะเป็นผู้ชนะ
แน่นอนว่าระบบดั้งเดิมที่มีเวลาในการไปกลับสูงกว่าจะไม่ทำงานเช่นเดียวกับ EC2 แต่คาดว่าจะไม่มีข้อยกเว้นสำหรับกฎของฟิสิกส์ ทั้งๆที่ EFS และเกตเวย์ HAProxy ดูเหมือนจะเป็นทางออกที่มั่นคงสำหรับการทำให้มันทำงานจากภายนอก
หากคุณไม่มี VPN จากนั้นเครื่อง HAProxy หนึ่งเครื่องใน AWS และอีกหนึ่งเครื่องในศูนย์ข้อมูลของคุณยังสามารถส่งสัญญาณ EFS ผ่าน TLS สร้างการเชื่อมต่อ TCP เดี่ยว ๆ ด้วย payload ที่ห่อไว้ใน TLS สำหรับการขนส่งแต่ละ EFS แต่ละรายการ การเชื่อมต่อผ่านอินเทอร์เน็ต ไม่ใช่ทางเทคนิค VPN แต่ใช้ช่องทางการเข้ารหัสของการเชื่อมต่อ นี่ก็ดูเหมือนว่าจะทำงานได้ค่อนข้างดี
ol โซลาริส 10 คือ (ไม่น่าแปลกใจ) ค่อนข้างผิดปกติ - ในขั้นต้นรูทไม่ได้รับสิทธิ์พิเศษ - ไฟล์บนไดรฟ์ข้อมูล EFS ที่สร้างโดยรูทนั้นเป็นของรูท แต่ไม่สามารถchown
แก้ไขให้ผู้ใช้รายอื่นได้ เครื่อง Solaris ( Operation not permitted
) แม้ว่าทุกอย่างทำงานได้ตามที่คาดหวังจากไคลเอนต์ Ubuntu วิธีการแก้ปัญหาในกรณีนี้คือการพ่ายแพ้การทำแผนที่ภูต NFS ID บนเครื่อง Solaris svcadm disable svc:/network/nfs/mapid:default
ใช้ การหยุดบริการนี้ทำให้ทุกอย่างทำงานได้อย่างที่คาดไว้ นอกจากนี้การภาวนาของแต่ละความต้องการเข้าสู่ระบบเพื่อใช้งานในการ/usr/sbin/quota
/etc/profile
อาจจะมีวิธีแก้ปัญหาที่ดีกว่าหรือถูกกว่า แต่ก็เป็น Solaris ดังนั้นฉันจึงไม่อยากรู้อยากเห็นมากนัก
ณ วันที่ 20 ธันวาคม 2559, Amazon ประกาศ AWS Direct Connect ซึ่งสามารถใช้เพื่อเมาท์ระบบไฟล์ EFS บนเซิร์ฟเวอร์ในสถานที่ ดังนั้นโดยทั่วไปมีคุณสมบัติดั้งเดิมที่ให้คุณใช้ AWS EFS นอก VPC ได้
ตามข้อกำหนดเบื้องต้นคุณจะต้องเปิดใช้งานและสร้างการเชื่อมต่อ AWS Direct Connect จากนั้นใช้ nfs-utils ตามที่คุณควรใช้เมื่อติดตั้ง EFS ภายในอินสแตนซ์ EC2
ข้อมูลเพิ่มเติมสามารถดูได้ที่URLต่อไปนี้ ฉันเพิ่งโพสต์สิ่งนี้เนื่องจากฉันได้ค้นหาอนาคตนี้เช่นกันเพื่อให้ผู้อื่นทราบว่ามีวิธีแก้ปัญหาดั้งเดิมสำหรับการเชื่อมต่อ EFS นอก VPC