วิธีการสร้าง Amazon EFS และเชื่อมต่อกับ EC2

Amazon Elastic File System (Amazon EFS) เป็นระบบไฟล์ที่ยืดหยุ่น เรียบง่าย ไร้เซิร์ฟเวอร์ ซึ่งจะเพิ่มและลดขนาดโดยอัตโนมัติเมื่อคุณเพิ่มและลบไฟล์ โดยที่คุณไม่จำเป็นต้องจัดการหรือจัดเตรียมใดๆ

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ครั้งนี้ ผมจะมาเขียนบทความเกี่ยวกับการสร้าง Amazon EFS และทำการเชื่อมต่อกับ EC2

Amazon EFS คืออะไร?

Amazon EFS (Elastic File System) คือ บริการ NFS (Network File System) บน AWS

พื้นที่จัดเก็บที่สามารถเชื่อมต่อกับเครือข่ายอื่นๆ เช่น EC2 ได้โดยตรง

  • เชื่อถือได้เนื่องจากข้อมูลอยู่ใน AZ หลายแห่ง (ความทนทาน 99.999999999%)
  • ดิสก์กลางสําหรับใช้ร่วมกันที่สามารถเชื่อมต่อจาก EC2 ได้หลายตัว
  • คิดราคาตามขนาดของไฟล์ที่จัดเก็บ
  • ปรับขนาดเป็นเพตะไบต์โดยอัตโนมัติ คุณจึงใช้งานได้อย่างไม่จํากัดความจุ

ตารางเปรียบเทียบ EFS, EBS, S3

table-efs-ebs-s3

สิ่งที่ต้องมี

1. EC2 Instance

ให้ทำการติดตั้ง EC2 Instance ก่อน สำหรับเพื่อนๆ ที่ยังไม่ได้ทำการติดตั้ง สามารถดูขั้นตอนได้ที่ลิงก์ วิธีติดตั้ง Amazon Linux บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วยโปรแกรม PuTTy นี้ได้เลย

เมื่อทำการติดตั้ง EC2 Instance เรียบร้อยแล้ว Security Group ที่ชื่อว่าec2-tinnakornหรือชื่อ EC2 Instance ของเพื่อนๆ จะถูกตั้งค่าเป็น Default โดยอัตโนมัติ

2. เป้าหมายในการสร้าง EFS และเชื่อมต่อไปยัง EC2

SG-EFS

ถ้าพร้อมแล้วเรามาเริ่มทำตามขั้นตอนในหัวข้อถัดไปได้เลย

สร้าง Security Group ที่ใช้สำหรับ EFS

ไปที่ช่องค้นหา พิมพ์?︎ EC2» เลือกEC2
E-K-1

มาที่หัวข้อ ▼ Network & Security เลือกSecurity Groups
C-SG-EFS-1

คลิกCreate security group
C-SG-EFS-2

ในส่วนของ Basic details ให้ตั้งค่าตามนี้
» Security group name:tinnakorn-efs
» Description:tinnakorn-efs
C-SG-EFS-3-1

เลื่อนลงมาด้านล่าง มาที่ Inbound rules แล้วตั้งค่าตามนี้
» คลิกAdd rule
» Type:NFS ▼
» Source:Custom ▼
» ค้นหาชื่อของเรา เช่น? tinnakorn
» Description - optional จะใส่หรือไม่ใส่ก็ได้
C-SG-EFS-4-1

เลื่อนลงมาด้านล่างสุด มาที่ Tags - optional แล้วตั้งค่าตามนี้
» Key:? Name
» Value - optional:tinnakorn-efs
» คลิกCreate security group
C-SG-EFS-5-1

เมื่อสร้าง Security group เสร็จแล้ว จะได้หน้าตาแบบนี้
C-SG-EFS-6-1

ขั้นตอนการสร้าง EFS

ไปที่ช่องค้นหา พิมพ์? EFS» เลือกEFS
C-EFS-1

คลิกCreate file system
C-EFS-2

» Name - optional:tinnakorn-efs
» เลือกCreate
C-EFS-3-1

คลิกที่ชื่อ EFS ของเรา เช่นtinnakorn-efs
C-EFS-4-1

เลื่อนลงมาด้านล่างสุด แล้วเลือกหัวข้อ Network จากนั้นให้ดูที่คอลัมน์ Mount target state จะเห็นว่ามีสถานะเป็น Creating ต้องรอจนกว่าจะขึ้นAvailable
C-EFS-5-1

เมื่อขึ้น Available แล้วให้คลิกManage
C-EFS-6-1

ให้ลบ Security groups ของ Default ออกให้หมดโดยการคลิก✕ กากบาทตามรูปภาพ
C-EFS-7

จากนั้นให้คลิกที่Choose security groups ▼แล้วค้นหาชื่อ security groups ที่สร้างไว้ก่อนหน้านี้ เช่น? tinnakorn-efsแล้วเลือก security groups ที่เป็นชื่อของเราทั้งหมด 3 โซน
C-EFS-8-1

เราจะใช้ security groups ที่สร้างไว้สำหรับ EFS ทั้งหมด 3 โซนตามรูปภาพ จากนั้นคลิกSave
C-EFS-9-1

เมื่อสร้าง EFS เสร็จแล้วก็จะได้หน้าตาเหมือนรูปภาพ จากนั้นให้ Copy ID EFS ตามส่วนที่มาร์คไว้เพื่อนำไปใช้ในหัวข้อถัดไป และนำไปวางที่ Notepad ก่อนก็ได้
C-EFS-10-1

ขั้นตอนการติดตั้ง Attach EFS จาก EC2

ขั้นตอนต่อไปให้กลับไปที่โปรแกรม PuTTy
สำหรับ PuTTy ของเพื่อนๆ ที่เป็น
[ec2-user@ip-123-45-67-890 ~]$
ให้เปลี่ยนเป็น
[root@ip-123-45-67-890 ~]#
ด้วยคำสั่งนี้ทุกครั้งก่อนที่จะทำการตั้งค่าหรือจัดการ Server

sudo su -

C-EFS-10-2

ทำการติดตั้ง EFS เข้าไปใน EC2 เพื่อทำการเชื่อมต่อด้วยคำสั่งนี้

yum install amazon-efs-utils -y

C-EFS-11-1

เรียกใช้คำสั่งนี้เพื่อตรวจสอบ Filesystem ที่อยู่ใน EC2 Instance ของเรา
จะเห็นว่าพื้นที่จัดเก็บข้อมูลจะเป็นของ EC2 อย่างเดียว

df

C-EFS-12-1

ต่อไปเราจะทำการเชื่อมต่อและเพิ่มพื้นที่จัดเก็บ EFS เข้าไปยัง EC2 เรียกใช้คำสั่งนี้เพื่อสร้างโฟลเดอร์

mkdir -p /mnt/efs

C-EFS-13

เรียกใช้คำสั่งนี้เพื่อแก้ไขไฟล์ fstab

vi /etc/fstab

C-EFS-14

เมื่อเข้ามาในไฟล์ fstab แล้วให้แก้ไขไฟล์ตามนี้
ก่อนที่จะแก้ไขเราต้องเตรียม Code ไว้ดังนี้

# ID ที่ได้จากการสร้าง EFS
fs-00*************a6

# ap-southeast-1 นี้เป็นโซนของ Singapore ซึ่งเราต้องนำ Code นี้ไปต่อท้าย ID ของ EFS
.efs.ap-southeast-1.amazonaws.com:/ /mnt/efs efs defaults,_netdev 0 0

# นำ ID กับ Code มารวมกันตามนี้
fs-00*************a6.efs.ap-southeast-1.amazonaws.com:/ /mnt/efs efs defaults,_netdev 0 0

ต่อไปมาเริ่มแก้ไขไฟล์ fstab ได้เลย
» กดปุ่มiให้ขึ้น-- INSERT --
» นำ ID กับ Code ที่รวมกันไว้แล้วมาวางในบรรทัดสุดท้ายเสมอ (*ในกรณีที่มีการทำ Swap Memory หรืออื่นๆ ที่ทำให้มีข้อมูลที่แสดงเพิ่มขึ้นมา ไม่ต้องสนใจ สามารถวางในบรรทัดสุดท้ายได้เลย)
C-EFS-15-1

ต่อมาให้กดปุ่มEscแล้วคำว่า-- INSERT --จะหายไป
ตามด้วยพิมพ์:wqหรือ:xเพื่อบันทึกและออกจากไฟล์ fstab
C-EFS-16-1

เรียกใช้คำสั่งนี้เพื่อเปิดการใช้งานพื้นที่เก็บข้อมูล EFS ไปยัง EC2

mount -a

C-EFS-17-1

เรียกใช้คำสั่งนี้เพื่อตรวจสอบ Filesystem อีกครั้ง จะเห็นว่ามีพื้นที่เก็บข้อมูลของ EFS เพิ่มขึ้นมาใน EC2 แล้ว

df

C-EFS-18-1

สรุป

ระบบไฟล์ Amazon EFS สามารถจัดเก็บข้อมูลได้ถึงระดับเพตะไบต์ ระบบไฟล์ Amazon EFS มีความยืดหยุ่นและสามารถขยายและลดขนาดได้อัตโนมัติตามการเพิ่มและการลบไฟล์ คุณไม่ต้องจัดเตรียมขนาดระบบไฟล์ล่วงหน้า และจ่ายเฉพาะสิ่งที่คุณใช้เท่านั้น

บทความที่เกี่ยวข้อง