การเพิ่ม Disk Storage ใน Amazon Lightsail

Amazon Lightsail มีฟังก์ชันให้เราสามารถเพิ่ม Disk Storage ได้ในขณะที่ Storage ของเราไม่เพียงพอในการใช้งาน ในบทความนี้ก็จะมาอธิบายขั้นตอนการเพิ่ม Disk Storage และวิธีการตั้งค่าใน Linux เพื่อใช้งาน Storage ที่เราต้องการเพิ่ม

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

สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ

ครั้งนี้จะมาแนะนำการเพิ่ม Disk Storage ใน Lightsail

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

※เปิดใช้งาน WordPress ด้วย Amazon Lightsail แล้ว
ครั้งนี้เราจะดำเนินการโดยใช้สภาพแวดล้อม WordPress (สามารถใช้ในสภาพแวดล้อมอื่นๆ ได้ด้วย)

ดูตัวอย่างการเปิดใช้งาน Application ได้ที่ลิงก์ด้านล่างนี้

คุณสมบัติของ Lightsail Disk (Block Storage)

Disk ที่สามารถเพิ่มได้ มีข้อกำหนดดังนี้

  • ป้องกันความล้มเหลวโดยการทำซ้ำภายใน Availability Zone ซึ่งออกแบบมาสำหรับความพร้อมใช้งาน 99.99%
  • SSD Storage สำหรับความแฝงต่ำ
  • สามารถเชื่อมต่อ(Attach) Storage ขนาดสูงสุด 16TB ได้ถึง 15 ตัวต่อ Instance
  • สามารถ Encryption Disks หรือ Snapshots ได้โดยอัตโนมัติ
  • $0.10/GB ต่อเดือน (8GB ขึ้นไป)
    ให้คิดว่ามันเป็นเหมือนกับ SSD (GP2) เอนกประสงค์ของ EBS

การสร้าง Disk

เลือกแท็บ Home ด้านบนซ้าย และเลือกแท็บ Storage แล้วคลิกปุ่ม Create disk

เมื่อเข้ามาที่หน้า "+ Create an additional storage disk" ให้ตั้งค่าดังนี้
New disk location
» Select a Region: Singapore

Choose your disk size
» ครั้งนี้เลือก 8 GB (เราสามารถกำหนดขนาด Storage ตั้งแต่ 8 GB ขึ้นไปได้ตามต้องการ แต่ไม่สามารถกำหนดให้ต่ำกว่า 8 GB ได้)

Identify your disk
» Name: tinnakorn-wordpress-disk2

» แล้วคลิก Create disk ด้านล่างสุด

เมื่อสร้าง Disk เสร็จแล้ว เราต้องเพิ่ม Disk ไปยัง Instance ที่เราต้องการ โดยทำการ Attach

มาที่แท็บ Detail แล้วตั้งค่าดังนี้
Attach to an instance
เลือก Instance ที่เราต้องการเพิ่ม Disk ครั้งนี้คือ tinnakorn-wordpress แล้วคลิก Attach ✅

เมื่อ Attach เสร็จแล้วจะแสดงหน้าจอแบบนี้

การตั้งค่า Disk Storage ใน Linux

เนื่องจากตอนนี้เรายังไม่สามารถใช้งาน Disk ที่สร้างจากขั้นตอนที่แล้วใน Linux ได้ ดังนั้นจำเป็นต้องตั้งค่าเพื่อให้สามารถใช้งาน Disk บน Linux ได้

ก่อนเริ่มทำการตั้งค่า ให้เราเชื่อมต่อเข้าไปใน Instance โดยเข้าไปหน้า Instance ของเรา
แล้วคลิก Connect using SSH ในหัวข้อ Connect to your instance ในแท็บ Connect (หากเชื่อมต่อกับ Instance อยู่แล้ว ให้ข้ามขั้นตอนนี้ไปได้เลย)

รันคำสั่ง df เพื่อแสดง Partitions ของ Disk ต่างๆที่ถูก mount มาในระบบ
จะเห็นว่ามีแต่ /dev/xvda1 ที่เป็นที่เก็บข้อมูลดั้งเดิมของ Instance โดยมีขนาด 20 GB ตามที่เลือกไว้ตอนสร้าง Instance ครั้งแรก

tinnakorn-wordpress - Terminal | Lightsail - Google Chrome

bitnami@ip-xxx-xx-xx-xxx:~$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              231340       0    231340   0% /dev
tmpfs              48380     420     47960   1% /run
/dev/xvda1      20403592 3156836  16314204  17% /
tmpfs             241880       0    241880   0% /dev/shm
tmpfs               5120       0      5120   0% /run/lock
/dev/xvda15       126678   10856    115822   9% /boot/efi
tmpfs              48376       0     48376   0% /run/user/1000
bitnami@ip-xxx-xx-xx-xxx:~$


รันคำสั่ง lsblk เพื่อแสดงข้อมูลของอุปกรณ์เก็บข้อมูลในระบบ
แล้วตรวจสอบ xvdf ที่ถูกเพิ่มขึ้นมา นี่คือ Disk Storage ที่สร้างขึ้นและทำการ Attach โดยมีขนาด 8 GB ตามที่เราเลือกไว้เมื่อสักครู่นี้ ซึ่งเราจะมาตั้งค่า Disk นี้กัน

tinnakorn-wordpress - Terminal | Lightsail - Google Chrome

bitnami@ip-xxx-xx-xx-xxx:~$ lsblk
NAME     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda     202:0    0   20G  0 disk 
├─xvda1  202:1    0 19.9G  0 part /
├─xvda14 202:14   0    3M  0 part 
└─xvda15 202:15   0  124M  0 part /boot/efi
xvdf     202:80   0    8G  0 disk 
bitnami@ip-xxx-xx-xx-xxx:~$


ก่อนอื่นเราจะมา format disk xvdf โดยรันคำสั่งตามนี้

sudo mkfs -t ext4 /dev/xvdf


รันคำสั่งนี้เพื่อสร้างโฟลเดอร์สำหรับทำการ mount point

sudo mkdir -p /mnt/data


รันคำสั่งนี้เพื่อทำการ mount แล้ว Storage ก็จะพร้อมใช้งาน

sudo mount /dev/xvdf /mnt/data


รันคำสั่ง df เพื่อแสดง Partitions ของ Disk ต่างๆที่ถูก mount มาในระบบอีกครั้ง
จะเห็นว่า Disk /dev/xvdf ถูก mount เข้ามาโดยมีโฟลเดอร์ /mnt/data ตามที่ตั้งค่าไว้เรียบร้อยแล้ว

tinnakorn-wordpress - Terminal | Lightsail - Google Chrome

bitnami@ip-xxx-xx-xx-xxx:~$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              231340       0    231340   0% /dev
tmpfs              48380     412     47968   1% /run
/dev/xvda1      20403592 3156924  16314116  17% /
tmpfs             241880       0    241880   0% /dev/shm
tmpfs               5120       0      5120   0% /run/lock
/dev/xvda15       126678   10856    115822   9% /boot/efi
tmpfs              48376       0     48376   0% /run/user/1000
/dev/xvdf        8154588      28   7718748   1% /mnt/data
bitnami@ip-xxx-xx-xx-xxx:~$


รันคำสั่งนี้เพื่ออนุญาตให้สามารถจัดการสิ่งต่างๆในโฟลเดอร์ /mnt/data/ ได้

sudo chmod 777 /mnt/data/


รันคำสั่งนี้เพื่อสร้างไฟล์ที่ต้องการ ครั้งนี้จะสร้างไฟล์ test.txt
เมื่อป้อนเนื้อหาในไฟล์ที่ต้องการแล้วให้ Save โดยกดปุ่ม Ctrl+X ตามด้วยกดปุ่ม Y เพื่อ Save แล้วกดปุ่ม Enter

nano /mnt/data/test.txt


รันคำสั่งนี้เพื่อตรวจสอบข้อมูลที่อยู่ในโฟลเดอร์ /mnt/data/
จะเห็นว่ามีไฟล์ test.txt เพิ่มขึ้นมา

ls -al /mnt/data/

tinnakorn-wordpress - Terminal | Lightsail - Google Chrome

bitnami@ip-xxx-xx-xx-xxx:~$ ls -al /mnt/data/
total 28
drwxrwxrwx 3 root    root     4096 Feb  3 09:43 .
drwxr-xr-x 3 root    root     4096 Feb  3 09:26 ..
drwx------ 2 root    root    16384 Feb  3 09:23 lost+found
-rw-r--r-- 1 bitnami bitnami    48 Feb  3 09:43 test.txt
bitnami@ip-xxx-xx-xx-xxx:~$

การตั้งค่าเพิ่มเติมในไฟล์ fstab

หากตั้งค่าเพียงเท่านี้ จะทำให้การ mount ถูกลบออกเมื่อมีการรีสตาร์ท Instance ดังนั้นให้เพิ่มการตั้งค่าใน /etc/fstab ด้วย

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

sudo nano /etc/fstab

เมื่อเข้ามาแล้วให้เพิ่มด้านล่างนี้ต่อจากคำว่า "UUID=DFF0-D616 /boot/efi vfat defaults 0 0"

/dev/xvdf   /mnt/data       ext4    defaults,nofail 0   2

[↓ ผลลัพธ์ ↓] เมื่อได้ตามผลลัพธ์แล้วให้ Save โดยกดปุ่ม Ctrl+X ตามด้วยกดปุ่ม Y เพื่อ Save แล้วกดปุ่ม Enter

tinnakorn-wordpress - Terminal | Lightsail - Google Chrome

# /etc/fstab: static file system information
UUID=8fee2a17-de2a-4336-9a82-68be6e435b44 / ext4 rw,discard,errors=remount-ro,x-systemd.g>
UUID=DFF0-D616 /boot/efi vfat defaults 0 0
/dev/xvdf   /mnt/dataext4    defaults,nofail 0   2

การทดสอบรีสตาร์ท Instance

เมื่อตั้งค่าเพิ่มเติมในไฟล์ fstab แล้ว ทีนี้เราก็จะสามารถรีสตาร์ท Instance ได้โดยที่การตั้งค่า mount ของเราจะไม่ถูกลบออก

รันคำสั่งนี้เพื่อรีสตาร์ท Instance

sudo shutdown -r now

แล้วรอ Instance รีสตาร์ทสักครู่ แล้วคลิกปุ่ม Reconnect

แล้วรันคำสั่ง df เพื่อแสดง Partitions ของ Disk ต่างๆที่ถูก mount มาในระบบอีกครั้ง
จะเห็นว่า Disk /dev/xvdf ที่ตั้งค่า mount ไว้ก่อนหน้านี้ยังคงอยู่เหมือนเดิม

tinnakorn-wordpress - Terminal | Lightsail - Google Chrome

bitnami@ip-xxx-xx-xx-xxx:~$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              231340       0    231340   0% /dev
tmpfs              48380     424     47956   1% /run
/dev/xvda1      20403592 3157240  16313800  17% /
tmpfs             241880       0    241880   0% /dev/shm
tmpfs               5120       0      5120   0% /run/lock
/dev/xvda15       126678   10856    115822   9% /boot/efi
/dev/xvdf        8154588      28   7718748   1% /mnt/data
tmpfs              48376       0     48376   0% /run/user/1000
bitnami@ip-xxx-xx-xx-xxx:~$ 

เพียงเท่านี้เราก็สามารถใช้งาน Disk Storage ใน Lightsail ได้ตามที่ตั้งค่าไว้แล้ว

สรุป

ถ้า Storage ไม่เพียงพอต่อการใช้งาน เราสามารถเพิ่ม Disk Storage ได้โดยการสร้าง Disk และ Attach ไปยัง Instance ที่เราต้องการเพิ่ม แล้วเข้าไปตั้งค่าทำการ mount ใน Linux ก็จะทำให้สามารถใช้ Storage ที่เพิ่มเข้ามาได้ทันที นอกจากนี้เราสามารถเพิ่ม Disk Storage ได้ถึง 15 ตัวต่อ Instance อีกด้วย

ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ

POP จากบริษัท Classmethod (Thailand) ครับ !

Link อ้างอิง