การสร้าง EC2 Instance ฉบับง่าย

หมายเหตุ ผู้อ่านสามารถดู table of contents ของ AWS The Series ฉบับ Coeffest ได้ที่ http://bit.ly/2QiJgpY

ในบทความนี้เราจะมาพูดถึงการสร้าง AWS EC2 Instance แบบง่ายๆเพื่อเอาไว้ในงานสำหรับทำตามตัวอย่างในบทความต่อไปในอนาคต

Preparation

ก่อนที่เราจะสร้าง EC2 instance กันเราจำเป็นต้องมี VPC หรือ Virtual Private Cloud, Security Groups และ EC2 Key Pair กันก่อนนะครับ ซึ่งเป็นสิ่งจำเป็นด้านความปลอดภัยขั้นพื้นฐานของการใช้งาน AWS เลย หากใครที่เคยมีอยู่แล้วสามารถข้ามไปยังขั้นตอนการสร้าง EC2 instance ได้เลยครับ สำหรับใครที่ยังไม่เคยสร้างเรามาเริ่มกันที่ VPC ซึ่งเป็นเสมือนเครือข่าย network ที่เราจะสร้าง instance หรือ aws service เอาไว้ภายใน โดยเข้าไปหน้า VPC จากนั้นเมนูทางขวาเลือกเป็น Your VPC และเลือก Create VPC ตามรูปที่ 1 ต่อมาในรูปที่ 2 จะเป็นหน้าจอให้เราทำการกรอกข้อมูลเกี่ยวกับ VPC ที่เราจะทำการสร้างโดยหลักจะเป็นการกรอกชื่อของ VPC และขนาดของ network โดยเป็นการช่วงของ IP ที่เราต้องการให้มีใน network นี้ ซึ่งในตัวอย่างนี้เราจะกำหนดค่า range IP เป็น 10.0.0.0/16 นั้นหมายความว่าใน network นี้จะมี IP ที่สามารถให้กับ EC2 instance หรือ aws service อื่นๆอยู่ทั้งหมด 65,534 IPs ด้วยกันคือ 10.0.0.1 ไปจนถึง 10.0.255.254 เมื่อกรอกข้อมูลแล้วก็กด create ได้เลย

รูปที่ 1 การสร้าง VPC
รูปที่ 2 การกรอกข้อมูล VPC

เนื่องจากเราต้องการให้ทุก service ที่อยู่ใน VPC นี้สามารถออก internet ได้ ฉะนั้นเราต้องทำการสร้าง Internet Gateway โดยการเลือกเมนู Internet Gateways จากนั้นกด Create Internet Gateway แล้วกรอกชื่อของ Internet Gateway ที่เราต้องการสร้าง

รูปที่ 3 การสร้าง Internet Gateway
รูปที่ 4 การสร้าง Internet Gateway

หลังจากที่เราได้ Internet Gateway ให้เราทำการเชื่อม Internet Gateway เข้ากับ VPC โดยการเลือกที่ Internet Gateway ที่เราต้องการจากนั้นกดปุ่ม Actions -> Attach to VPC แล้วให้ทำการเลือก VPC ที่เราพึ่งทำการสร้างไป ซึ่ง 1 VPC กำหนดให้มี Internet Gateway ได้แค่ตัวเดียวเท่านั้น

รูปที่ 5 การเชื่อม Internet Gateway เข้ากับ VPC
รูปที่ 6 การเชื่อม Internet Gateway เข้ากับ VPC

เมื่อได้ Internet Gateway แล้วก็มาถึงการสร้าง Route Table ซึ่งเป็นเสมือนตัวเชื่อม Internet Gateway, VPC และ subnet โดยสามารถ click เลือกได้ตามรูปที่ 7 ซึ่งเราต้องกรอกชื่อของ Route Table รวมถึงเลือก VPC ที่เราได้ทำการสร้างไป ตมรูปที่ 8

รูปที่ 7 การสร้าง Route Table
รูปที่ 8 การสร้าง Route Table

หลังจากเราได้ Route Table ให้ทำการ click เลือก Route Table ที่พึ่งสร้างไปจากนั้นในเมนูด้านล่างเลือก tab menu ที่ชื่อว่า Route และกด Edit routes จากนั้นในหน้าจอตามรูปที่ 10 ให้ทำการ Add Route โดย Destination ให้เป็น 0.0.0.0/0 เพื่อเปิดให้ทุก IP ทุก Port สามารถใช้งานได้ ในส่วนของ Target ให้เลือกเป็น Internet Gateway จากนั้นเลือก Internet Gateway ที่เราได้ทำการสร้างไป แล้วกด Save Route

รูปที่ 9 EditRoute Table
รูปที่ 10 EditRoute Table

จากนั้นให้กลับไปยังหน้าจอของ Subnet แล้วทำการเลือก Subnet ที่ได้ทำการสร้างแล้วไปที่เมนูด้านล่างจากนั้นเลือก Tab ที่ชื่อว่า Route Table และกด Edit route table association เราจะพบหน้าจอเหมือนกับในรูปที่ 12 ให้ทำการเลือก Route Table ที่ได้ทำการสร้างไว้ข้างต้นจากนั้นกด Save

รูปที่ 11 เชื่อม subnet เข้ากับ route table
รูปที่ 12 เชื่อม subnet เข้ากับ route table

ตัวต่อไปที่เราจะทำการสร้างนั้นก็คือ Security Groups โดยกดไปที่เมนู Security Groups ซึ่งอยู่ด้านซ้ายมือในหน้าของ VPC ตามรูปที่ 13 จากนั้นทำการกด Create Security Groups จากนั้นเราต้องทำการกรอกชื่อของ security group นี้รวมถึงกดว่า VPC ให้กับ security group นี้ ตามรูปที่ 14

รูปที่ 13 การสร้าง security group
รูปที่ 14 การกรอกข้อมูล security group

เมื่อเราได้ security group แล้วขั้นตอนต่อไปเราจะกำหนด network protocol และ IP ที่สามารถเข้าใช้งานในวง VPC โดยให้เราคลิกเลือกที่ security group ที่เราได้ทำการสร้างจากนั้นด้านล่างจะ show เมนูตามรูปที่ 15 มาให้

รูปที่ 15 การ config inbound และ outbound
รูปที่ 16 การ config outbound rules

ซึ่ง 2 ตัวที่เราสนใจนั้นคือ Inbound Rules และ Outbound Rules หรือการกำหนดข้อบังคับขาเข้าวง network และขาออกวง network นั้นเอง โดย default ของตัว Outbound Rules จะเป็น Protocol=ALL, Port Range=ALL, Destination=0.0.0.0/0 ตามรูปที่ 16 นั้นหมายความว่า network นี้สามารถออกสู่ภายนอกได้ทุก protocol ทุก port และทุก IP ของเครื่องปลายทาง ซึ่งเราจะไม่เปลี่ยนค่า default นี้ ต่อมาเป็นใน tab ของ Inbound Rules ให้เรากดที่ Edit rules จากนั้นในหน้าจอรูปที่ 17 ให้กด Add Rule และเลือก Type เป็น All traffic เลือก Source เป็น My IP ซึ่งหมายความว่า เรากำหนดให้การเข้าใช้งาน network นี้ถ้ามาจาก IP ของเครื่องเราจะสามารถเข้าใช้งานได้ทุก protocol ทุก port ส่วน IP อื่นๆนอกจากนี้เข้าใช้งานไม่ได้ทุกกรณี

รูปที่ 17 การ config inbound rules

อีกหนึ่งตัวที่เราจำเป็นต้องสร้างก่อนที่จะสร้าง EC2 instance นั้นก็คือ Subnet ตัวเมนูการสร้าง Subnet จะอยู่ในกลุ่มของ VPC ตามรูปที่ 18

รูปที่ 18 การสร้าง subnet

เมื่อกด Create Subnet แล้วขั้นตอนต่อไปเราต้องทำการกรอกข้อมูลเกี่ยวกับ Subnet ประกอบไปด้วยชื่อ subnet, vpc ที่จะผูกกับ subnet ซึ่งก็คือ vpc ที่เราสร้างไปก่อนหน้า, availability zones เราสามารถเลือกอันไหนก็ได้ และสุดท้าย IPv4 CIDR block เพื่อความง่ายผู้อ่านสามารถกรอกตามรูปที่ 19 ได้เลยครับ

รูปที่ 19 ข้อมูลการสร้าง subnet

มาถึงตัวสุดท้ายที่เราจำเป็นต้องสร้างนั้นคือ EC2 Key Pair ซึ่งเป็นสิ่งที่จำเป็นของการใช้งาน SSH เข้าไปยังเครื่อง EC2 instance เริ่มที่ไปยังหน้า EC2 จากนั้นในเมนูด้านซ้ายเลือกเป็น Key Pairs จากนั้นกด Create Key Pair ระบบจะขึ้นหน้าจอให้กรอกชื่อตามรูปที่ 20 จากนั้นกด Create เมื่อสร้าง Key Pair เสร็จแล้วระบบจะส่ง file Key Pair มาให้เรา download เก็บไว้ตามรูปที่ 21 ซึ่งเราควรจะเก็บ file นี้ไว้ให้ดีเพราะเท่าที่ผมรู้มันไม่สามารถ download ใหม่ได้ ต้องสร้างใหม่อย่างเดียว

รูปที่ 20 การสร้าง Key Pair
รูปที่ 21 download Key Pair

Create EC2 Instance

เมื่อเรามี VPC, Subnet, Security Groups และ EC2 Key Pair แล้วเราจะมาทำการสร้าง EC2 instance กัน(สะที) โดยเมื่อเราเข้ามา EC2 Dashboard ให้กดปุ่ม Launch Instance

รูปที่ 22 EC2 Dashboard

จากนั้นจะเข้าสู่การเลือก Amazon Machine Image (AMI) คำว่า Image ในที่นี้จะคล้ายๆกับ Docker image หรือ VM snapshot คือมีคนสร้าง environment ให้เราทั้งลง OS หรืออาจจะรวมไปถึงการลงโปรแกรมอื่นๆ จากนั้นเค้าก็ทำการ save environment ดังกล่าวเป็น image เมื่อเราสร้าง instance จาก Image เราก็จะมี environment แบบเดียวกับที่คนสร้างเตรียมไว้ให้เราทั้งหมด ซึ่งในบทความนี้ผมจะเลือก image ที่มาจาก AWS นั้นคือ Ubuntu Server 18.04 LTS เมื่อเลือก image แล้วจากนั้นจะเป็นการเลือก spec ของ instance โดยทาง AWS ได้จัดเตรียม spec ไว้หลากหลายรูปแบบมาก โดยสามารถดู spec ของ instance ทั้งหมดได้จาก https://aws.amazon.com/ec2/instance-types/ แต่ในบทความนี้เราจะเริ่มกันที่ t2.micro ซึ่งมี 1 vCPU และมี RAM 1 GB เพื่อความประหยัด

รูปที่ 23 การเลือก AMI
รูปที่ 24 เลือก spec ของ instance

ขั้นตอนต่อมาคือการใส่รายละเอียดของ instance ซึ่งเราจะทำการกำหนด VPC และ Subnet ให้กับ instance ในขั้นตอนนี้ รวมถึงเลือก Auto-assign Public IP เพื่อจะให้ระบบกำหนด IP ที่สามารถ access ผ่านทาง internet ได้ตามรูปที่ 25 เมื่อกด Next ด้านล่างขวาก็จะเป็นขั้นตอนต่อไปนั้นคือการใส่พื้นที่ของ Storage ให้กับ instance ซึ่งเราสามารถใช้ค่า default ได้เลยตามรูปที่ 26

รูปที่ 25 กำหนด vpc และ subnet ให้กับ instance
รูปที่ 26 storage ให้กับ instance

ขั้นตอนต่อมาจะเป็นการกำหนด tag ให้กับ instance ซึ่งเราจะใส่ tag ที่ชื่อ Name เพื่อเป็นชื่อของ instance ตามรูปที่ 27 จากนั้นกด Next เราจะมาถึงขั้นตอนการกำหนด security groups ให้กับ instance ซึ่งเราสามารถเลือก security groups ที่เราได้สร้างไปในตอนต้นได้เลย ตามรูปที่ 28

รูปที่ 27 กำหนด tag
รูปที่ 28 กำหนด security group

และแล้วก็มาถึงขั้นตอนสุดท้ายนั้นคือการ review config ทั้งหมดที่เราได้กำหนดให้กับ instance นี้ ซึ่งหลังตรวจสอบแล้วให้ทำการกด launch ได้เลย แล้วระบบจะขึ้นหน้าจอมาให้ดังเช่นใน รูปที่ 30 เพื่อให้เราทำการเลือก key pair ที่จะใช้ในการเข้าในงาน instance นี้ จากนั้นกด Launch Instance

รูปที่ 29 review instance config
รูปที่ 30 กำหนด key pair

เมื่อ instance ถูกสร้างขึ้นทีนี้เรามาลอง ssh เข้าไปภายในกันนะครับ ซึ่งในบทความนี้ผมจะนำเสนอวิธีการใช้งาน ssh ไปยัง EC2 บน Windows OS กันนะครับ

ขั้นตอนแรกให้เราติดตั้ง PuTTY จาก https://www.putty.org/ กันก่อนนะครับ ซึ่งเมื่อเราติดตั้งเสร็จแล้ว ให้เข้าไปยัง folder ที่ติดตั้ง PuTTY จะพบกับ app ที่ชื่อ puttygen.exe เมื่อเปิด app ขึ้นมาแล้วไปยังเมนู Conversions -> Import Key จะเป็นหน้าตาเช่นเดี่ยวกับรูปที่ 31

รูปที่ 31 app putty key gen

ซึ่ง key ที่เราจะทำการ import ก็คือ Key Pair ซึ่ง file นามสกุล pem ที่ได้ save ที่เราได้ save เก็บไว้ในตอนต้น หลังจาก import แล้ว ก็ทำการกด Save private key เพื่อ save key โดย key ทีไ่ด้นี้จะมีนามสกุลเป็น ppk

รูปที่ 32 save private key

จากนั้นให้ทำการเปิด app putty.exe แล้วไปที่ Menu ของ Connection -> SSH -> Auth แล้วทำการเลือก key file นามสกุล ppk ที่เราได้ในข้างต้นจากนั้นไปที่ Menu Session แล้วทำการใส่ชื่อ Host Name เป็น IP ของ EC2 instance ที่เราทำการสร้างซึ่งสามารถดูได้จากหน้าจอ menu EC2 เหมือนรูปที่ 34 จากนั้นในช่องของ Saved Sessions ให้ทำการกำหนดชื่อ Session ตามต้องการแล้วกด Save ตามรูปที่ 35

รูปที่ 33 config SSH
รูปที่ 34 config SSH
รูปที่ 35 config SSH

เมื่อเราทำการสร้าง Session เสร็จแล้วแล้วทำการเลือก Session ที่สร้างแล้วกด Open จากนั้นจะมีหน้าจอพร้อมกับให้เราใส่ชื่อที่จะ login ตามรูปที่ 36 ซึ่งให้ทำการใส่ชื่อ ubuntu เข้าไป เราก็จะสามารถ ssh เข้าไปใช้งาน EC2 instance ได้แล้ว และเมื่อเราไม่ได้ใช้งานนั้นเป็นระยะเวลาหลายชั่วโมง ผมแนะนำว่าให้ Stop Instance ไว้ก่อนนะครับ เดียวจะโดนคิดเงินโดยไม่จำเป็นซึ่งขั้นตอนการ Stop Instance ก็สามารถทำได้ตามรูปที่ 36

รูปที่ 36 stop instance

สุดท้ายนี้ถ้าท่านใดมีข้อสงสัยหรือคำชี้แนะใดๆสามารถฝากข้อความได้ที่ https://www.facebook.com/coeffest/ นะครับ ขอบคุณมากครับที่ติดตาม