การติดตั้ง Ubuntu 20.04 บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วย PuTTy

Ubuntu เป็นระบบปฏิบัติการ Linux ที่รวดเร็วและทรงพลัง โดยให้บริการอย่างน่าเชื่อถือ คาดการณ์ได้ และประหยัด ซึ่งเป็นฐานที่สมบูรณ์แบบในการสร้าง Instance ของคุณ

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

ครั้งนี้ผมจะมาอธิบายเกี่ยวกับ การติดตั้ง Ubuntu บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วย PuTTy ด้วยขั้นตอนที่ละเอียดและเข้าใจง่าย

การสร้าง Key pair

ค้นหา?︎ EC2» เลือกEC2
Search-EC2

มาที่เมนูด้านซ้าย เลือกKey Pairs
KP-1

คลิกCreate key pair
KP-2

ใส่ชื่อที่ต้องการในช่อง Name เช่นtinnakorn-ubuntu» คลิกCreate key pair
ubuntu-kp-1

เมื่อสร้าง Key Pair เสร็จแล้ว ไฟล์.ppkจะถูกดาวน์โหลดมาที่คอมพิวเตอร์และชื่อไฟล์จะเปลี่ยนไปตามที่เราได้ตั้งชื่อไว้โดยอัตโนมัติ
ubuntu-kp-2

การติดตั้ง Ubuntu บน EC2

ค้นหา?︎ EC2» เลือกEC2
Search-EC2

มาที่เมนูด้านซ้าย เลือกInstances
Instance-select

คลิกLaunch instances
Ins-win-1

มาที่หัวข้อ Name and tags
» Name:tinnakorn-ubuntu(ชื่ออะไรก็ได้)
» คลิกAdd additional tags
cre_ubuntu-1

ถ้าได้หน้าตาแบบนี้ การเพิ่ม tag ก็ถือว่าเสร็จ
cre_ubuntu-2

หัวข้อถัดมา Application and OS Images (Amazon Machine Image) นี้คือ Instance จะมีเซิร์ฟเวอร์ให้เลือกใช้มากมาย เช่น macOS, Red Hat, SUSE Linux, Ubuntu, Microsoft Windows, Debian เป็นต้น ซึ่งในบทความนี้จะใช้ Ubuntu ในการติดตั้ง

» เลือกUbuntu
cre_ubuntu-3

ถัดมาหัวข้อ Instance type นี้คือ เราสามารถเลือก Type CPU Memory ที่จะนำไปใช้งานได้ตามความต้องการ ไม่ว่าเว็บไซต์จะมีขนาดเล็กหรือขนาดใหญ่ ก็สามารถเลือกขนาดความจุของ CPU Memory ได้ตามความเหมาะสม

ค้นหา?︎ t3a.nanoและเลือกt3a.nano
ก็จะได้สเปค Family:t3a | 2 vCPU | 0.5 GiB Memoryตามนี้
cre_ubuntu-4

ถัดมาหัวข้อ Key pair (login)
เลือก Key pair name - required ที่สร้างไว้เมื่อสักครู่นี้
cre_ubuntu-5

ถัดมาหัวข้อ Network settings คลิกEdit
cre_ubuntu-6

เลื่อนลงมาที่หัวข้อ Firewall (security groups)
จากนั้นเปลี่ยนชื่อ Security group name - required และ Description - required เป็นชื่ออะไรก็ได้ เช่นtinnakorn-ubuntu
cre_ubuntu-7-fix

ถัดมาหัวข้อ Inbound security groups rules นี้คือ การตั้งค่า My IP เพื่อจำกัดการเชื่อมต่อ SSH จากทุกตำแหน่ง ซึ่งในส่วนนี้จะทำให้สามารถเชื่อมต่อ SSH จาก My IP (ที่อยู่ IP ปัจจุบันของคุณ) ได้เท่านั้น และในกรณีที่ใช้ HTTP จะเป็นการแสดงผลหน้าเว็บไซต์นั่นเอง

» เปลี่ยน Source type ของ ssh ให้เป็น Source type:My IP
cre_ubuntu-8-fix

ถัดมาหัวข้อ Configure storage นี้คือ เราสามารถเพิ่ม Storage ในส่วนของ Size (GiB) ได้ โดยค่าเริ่มต้นจะเป็น 8 GB
ในตัวอย่างนี้จะใช้เป็นค่าเริ่มต้น ก็จะไม่ทำการตั้งค่าใดๆ
cre_ubuntu-9

มาที่หัวข้อ Summary ด้านขวามือ คลิกLaunch instance
cre_ubuntu-10

คลิกView all instances
cre_ubuntu-11

หลังจากสร้าง Instance เสร็จแล้ว ให้สังเกตคำว่า Status Checks จะเห็นว่ามีสถานะเป็น? Initializingคือ Instance กำลังทำการสตาร์ทระบบขึ้นมานั่นเอง
cre_ubuntu-12

เมื่อ Instance เริ่มต้นระบบเสร็จเรียบร้อยแล้ว จะมีสถานะเป็น✅ 2/2 checks passed
cre_ubuntu-13

Connect to EC2 by PuTTY

ขั้นตอนนี้จะลองทดสอบ Login เข้าใช้งาน Server Ubuntu

สำหรับผู้ใช้งานที่ยังไม่เคยใช้โปรแกรม PuTTy สามารถ Download PuTTy ได้ที่นี่เลย หรือ ถ้าผู้ใช้งานมี PuTTy อยู่แล้ว ให้ข้ามขั้นตอนการดาวน์โหลดโปรแกรมไปได้เลย

การดาวน์โหลดและติดตั้งโปรแกรมควรเลือกให้ตรงกับระบบ Windows ของเรา เช่น ถ้าระบบ Windows ของเราเป็น 64-bit ก็ให้เลือกดาวน์โหลดเป็น64-bit x86เป็นต้น ซึ่งในปัจจุบันนี้ 32-bit ก็ไม่ค่อยมีแล้ว หรือ อาจจะพบได้ในคอมพิวเตอร์รุ่นเก่าที่มีขนาด RAM ต่ำกว่า 4 GB นั่นเอง ทั้งนี้ทั้งนั้นเพื่อความชัวร์ !แนะนำให้ตรวจสอบระบบ Windows ของเราก่อนดาวน์โหลดและติดตั้งโปรแกรมจะดีที่สุดครับ

เมื่อเรามี PuTTy แล้วให้เปิดโปรแกรม PuTTy เตรียมไว้
แล้วไปที่หน้า Instance ของเราเพื่อคัดลอกPublic IPv4 address มาใส่ใน Host Name ของ PuTTy
connect_putty-1

PuTTy Configuretion

กลับมาที่หน้า PuTTy แล้วตั้งค่าเพื่อทดสอบการ Login ไปยัง Server ตามขั้นตอนด้านล่างนี้

การตั้งค่า Basic options for your PuTTY session นี้คือ
เลือกSession
นำ Public IPv4 address ที่คัดลอกมาสักครู่นี้มาวางที่ Host Name
ใส่ชื่อที่ Saved Sessions เช่นtinnakorn-ubuntu
connect_putty-2

การตั้งค่า Options controlling the connection นี้คือ
» เลือกConnection
» ใส่ค่าการเชื่อมต่อที่ช่อง Seconds between keepalives (0 to turn off):60
connect_putty-3

การตั้งค่า Data to send to the server นี้คือ
» เลือกData
» ใส่ Auto-login username:ubuntu(โปรดระวังในส่วนนี้ด้วย เนื่องจากว่าไม่ใช่ Amazon Linux 2)
connect_putty-4

การตั้งค่า Options controlling SSH authentication นี้คือ
» เลือกSSHAuth
» คลิกBrowse...
connect_putty-5

มาที่เก็บไฟล์ Key pair ของเรา เช่น This PC › Downloads
แล้วคลิกที่ Key pair ของเรา เช่นtinnakorn-ubuntu.ppk
ตามด้วยคลิกOpen(หรือจะดับเบิ้ลคลิกที่ตัวไฟล์เลยก็ได้)
connect_putty-6

เมื่อ Browse ไฟล์.ppkเสร็จแล้ว คลิกที่Session
connect_putty-7

เมื่อกลับมาที่หน้า Session แล้ว ทำการบันทึกการตั้งค่าดังนี้
คลิกSave
ชื่อที่เราใส่ไว้ก็จะไปอยู่ในช่องตามลูกศร ทีนี้ให้คลิกที่ชื่อเรา (สามารถดับเบิ้ลคลิกเพื่อ Login ได้เลย)
คลิกOpen(ถ้าดับเบิ้ลคลิกจะไม่ต้องกด Open)
connect_putty-8

คลิกAccept
connect_putty-9

เมื่อเข้ามาแล้วจะได้หน้าตาแบบนี้โดยมี username "ubuntu" ก็คือเราสามารถ Login เข้ามายัง ubuntu ได้แล้ว

Using username "ubuntu".
Authenticating with public key "tinnakorn-ubuntu"
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-1022-aws x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Tue Apr 26 07:06:38 UTC 2022

  System load:  0.0               Processes:             103
  Usage of /:   18.2% of 7.69GB   Users logged in:       0
  Memory usage: 42%               IPv4 address for ens5: 172.31.27.40
  Swap usage:   0%

1 update can be applied immediately.
To see these additional updates run: apt list --upgradable


The list of available updates is more than a week old.
To check for new updates run: sudo apt update


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

ubuntu@ip-172-31-27-40:~$


ทีนี้มาทดสอบการเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ root โดยการเปลี่ยน ubuntu ให้เป็น root กันครับ

รันคำสั่งsudo su -นี้เพื่อเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ root

ubuntu@ip-172-31-27-40:~$ sudo su -    // รันคำสั่งนี้
root@ip-172-31-27-40:~#


รันคำสั่งapt updateนี้เพื่อรับรายการแพ็คเกจ

root@ip-172-31-27-40:~# apt update


รันคำสั่งapt upgradeนี้เพื่อติดตั้งแพ็คเกจล่าสุด

root@ip-172-31-27-40:~# apt upgrade    // รันคำสั่งนี้

......omission (ละเว้นช่วงบนไว้)......

The following packages will be upgraded:
  alsa-ucm-conf apport base-files bash bind9-dnsutils bind9-host bind9-libs bolt bsdutils busybox-initramfs
  busybox-static cloud-init command-not-found cryptsetup cryptsetup-bin cryptsetup-initramfs cryptsetup-run fdisk
  fwupd fwupd-signed git git-man grub-common grub-pc grub-pc-bin grub2-common gzip initramfs-tools
  initramfs-tools-bin initramfs-tools-core klibc-utils landscape-common libarchive13 libblkid1 libc-bin libc6
  libcryptsetup12 libdrm-common libdrm2 libexpat1 libfdisk1 libfribidi0 libfwupd2 libjcat1 libklibc liblzma5
  libmount1 libnetplan0 libnss-systemd libnss3 libpam-systemd libpolkit-agent-1-0 libpolkit-gobject-1-0 libpython3.8
  libpython3.8-minimal libpython3.8-stdlib libsasl2-2 libsasl2-modules libsasl2-modules-db libseccomp2 libsmartcols1
  libssl1.1 libsystemd0 libudev1 libuuid1 libxml2 linux-aws linux-headers-aws linux-image-aws locales
  motd-news-config mount netplan.io open-vm-tools openssh-client openssh-server openssh-sftp-server openssl
  policykit-1 python-apt-common python3-apport python3-apt python3-commandnotfound python3-distupgrade
  python3-problem-report python3-twisted python3-twisted-bin python3-update-manager python3.8 python3.8-minimal rsync
  snapd sosreport systemd systemd-sysv systemd-timesyncd tar tcpdump tzdata ubuntu-advantage-tools
  ubuntu-release-upgrader-core udev update-manager-core update-notifier-common util-linux uuid-runtime vim vim-common
  vim-runtime vim-tiny xxd xz-utils zlib1g
113 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
68 standard security updates
Need to get 136 MB of archives.
After this operation, 237 MB of additional disk space will be used.
Do you want to continue? [Y/n] y    // พิมพ์ y + Enter เพื่อยืนยันการติดตั้งแพ็คเกจล่าสุด

สรุป

การสร้าง Instance ubuntu ขึ้นมาใช้งาน จำเป็นต้องใช้ Key Pair ในการสร้าง Instance เพราะว่า Key Pair จะเป็นส่วนสำคัญที่เปรียบเสมือนกุญแจที่ใช้สร้าง Instance นั่นเอง นอกจากนี้ ubuntu สามารถนำไปปรับใช้ให้เข้ากับทรัพยากรที่ต้องการได้ เช่น การนำ IP Instance ไปตั้งค่าในโปรแกรม PuTTy เพื่อทำการเชื่อมต่อไปยัง Server Linux บน EC2 และจะทำให้สามารถจัดการระบบ Server Linux ได้ตามต้องการ เช่น การ update server, upgrade server, ติดตั้งแอปพลิเคชัน และอื่นๆ เป็นต้น

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