รู้จัก Cloud Computing ด้วยตัวอย่างการสร้าง datacenter บน AWS (Amazon Web Services)

          เทคโนโลยีที่กำลังมาแรงในช่วงนี้คงหนีไม่พ้น 'Cloud' ซึ่งผมเองก็มีโอกาสได้ลองเล่น AWS (Amazon Web Services) วันนี้ก็จะมาเขียน review ให้ได้รู้จักกันเบื้องต้นนะครับ ก่อนที่จะโชว์ของก็คงขาดไม่ได้กับความรู้ที่ต้องเล่าสู่กันฟังก่อน

Cloud คืออะไร ?

          Cloud ณ ตอนนี้ยังไม่มีมาตรฐานที่แน่นอน แต่ละค่ายอยากเล่นอยากอวดอะไร ก็จะทำขึ้นมาให้ใช้งานในลักษณะของ services โดยหลัก ๆ แล้วสิ่งที่ Cloud เป็น คือการสร้าง ecosystems ที่อยู่ที่ไหนก็ไม่รู้ มีความเสถียรสูง โดยผู้ใช้สามารถปรับขนาดบริการได้เอง ซึ่งเราในฐานะ admin จะสามารถจัดการได้ผ่าน internet ทั้งหมด

Cloud มักถูกจัดกลุ่มให้เป็น *aaS ซึ่งมีตัวหลัก ๆ คือ
  1. SaaS (Software-as-a-Service) เป็นบริการ Software หรือ Application ที่จินตนาการได้ง่ายที่สุด ส่วนใหญ่แล้วมักจะเป็นบริการที่เราใช้งานในด้านต่างๆ เช่น Microsoft Office 365, Facebook เป็นต้น
  2. PaaS (Platform-as-a-Service) เป็นบริการที่ให้ resource ต่างๆ ถ้าใครมีโอกาสได้ใช้ Web hosting มาบ้าง PaaS ก็น่าจะเป็นอะไรที่ใกล้เคียงที่สุด ซึ่งบริการเหล่านี้ก็จะกำหนดมาว่าให้บริการอะไรเท่าไร เช่น รองรับภาษาโปรแกรมอะไรบ้าง รองรับ dependencies อะไร โดยบริการที่เป็น PaaS ก็เช่น Google App Engine, IBM Bluemix, Github เป็นต้น
  3. IaaS (Infrastructure-as-a-Service) เป็นบริการระดับที่ล่างสุดที่ Cloud ทำได้เลยก็ว่าได้ โดย IaaS จะเป็นการจัดการเกี่ยวกับ เครื่อง, network, firewall, storage และอื่น ๆ โดยตัวอย่างบริการประเภทนี้ก็มี Oracle VirtualBox รวมถึง AWS ที่กำลังจะพูดถึงต่อไปนี้ครับ

          AWS เป็นบริการ Cloud Computing แรกๆ และเป็นเพียงหนึ่งในไม่กี่ตัวที่ทำงานในระดับ IaaS ซึ่ง services ทั้งหมดที่ aws มี ก็ตามภาพนี้เลยครับ (อะไรบ้างไม่รู้ เอาภาพมาให้ดูเยอะๆ เฉยๆ)

Service ที่เกี่ยวข้องสำหรับ datacenter มี 5 ตัวครับ
*อ้อก่อนอื่นต้องบอกว่า amazon เค้าชอบย่อโดยเอาตัวซ้ำมารวมเป็นเลข สร้างความสับสนเล็ก ๆ
Compute Service สิ่งที่นิยาม EC2 ได้ดีที่สุด หรือเราอาจพูดได้ว่ามันเป็นเครื่อง server ของเราก็ได้
VPC เป็นตัวจัดการ network ซึ่งเราจะต้องกำหนดการใช้ public IP, subnets, gateway, firewall, route table ซึ่งเราต้องทำช่องทางการเข้าถึงของเราเองด้วย
RDS ชื่อก็บอกอยู่แล้วว่าเป็นบริการเกี่ยวกับ relational database ซึ่ง aws มีให้ใช้คือ MySQL, MariaDB, PostgreSQL, ORACLE, Microsoft SQL Server
S3 คือ Storage Service ซึ่งปกติเวลาสร้าง EC2 ก็จะให้สร้าง S3 ไปด้วยพร้อมกัน
CloudWatch เป็นบริการที่ทำให้เราสามารถ monitoring cloud ของเราได้ โดยสามารถดูในรูปแบบกราฟ และยังสามารถดัก event ต่าง ๆ ให้แจ้งเตือน หรือให้ auto scaling ในกรณีที่มีการใช้งานจำนวนมากก็ทำได้


เหนื่อยกันมาเยอะแล้ว ถึงเวลาเริ่มซะที โดยเราจะมาสร้าง Datacenter ของตัวเองกัน

ขั้นตอนการสร้าง Data Center บน AWS

1. ตั้งค่า VPC

  1. อย่างแรกที่สุด ผมจะสร้าง VPC 1 ตัวโดย CIDR block จะต้องกำหนดให้วงใหญ่เพียงพอสำหรับ subnets
    lordgift-vpc : 1.0.0.0/16

  2. ถัดมาสร้าง subnets 3 ตัว โดย 1 ตัวสำหรับ EC2 และ 2 ตัวสำหรับ RDS ซึ่ง CIDR block จะต้องอยู่ภายใต้ VPC และจะต้องไม่ overlap บนแต่ละ subnet
    lordgift-sn-for-ec2 : 1.0.1.0/24
    lordgift-sn-for-rds-1a : 1.0.100.0/24
    lordgift-sn-for-rds-1b : 1.0.101.0/24


  3. ทำ Security Groups (firewall) 2 ตัว เพื่อสร้างเงื่อนไขการเข้าใช้งานโดย 1 ตัวเป็นการเข้าใช้งานเครื่อง EC2 และอีกตัวสำหรับ RDS ซึ่งเราจะกำหนดเงื่อนไขให้สามารถเข้าถึง RDS ได้จาก IP ภายใต้ VPC ที่เราสร้างเท่านั้น และต้องเปิด port SSH และ MySQL ให้กับ Security Group ตามลำดับ
    lordgift-sg-for-ec2 : เปิด port SSH(22)
    lordgift-sg-for-rds : เปิด port MySQL(3306)



  4. สร้าง Internet Gateway เปิดช่องทางให้เข้าถึงจากภายนอกได้ โดยจะต้อง attach to VPC ด้วย
  5. Route เส้นทางการเชื่อมต่อจาก Internet Gateway และ VPC เข้าด้วยกัน เพื่อเชื่อมโยง private network ให้วิ่งผ่าน gateway และออกสู่ internet ได้

2. สร้าง Server

  1. สร้าง EC2 โดยการสร้างหลัก ๆ จะมีการให้เลือก Software ที่จะติดตั้ง AMI กำหนดขนาด S3 และเลือกใช้ Security Group จากที่สร้างไว้ก่อนหน้า และสำหรับครั้งแรกต้องทำ key pair ด้วยเพื่อเป็น digital signature ในการเข้าใช้งาน

  2. ทดสอบเข้าเครื่องผ่าน SSH ไปที่ public IP ที่ได้ (เปลี่ยนใหม่ทุกครั้งที่ start ก็เลยไม่เบลอ เปิดเผยให้โลกรู้ไปเลย !!) Windows ใช้ PuTTY, Mac ใช้ Terminal ได้เลย แต่ถ้า Windows 10 เปิด linux subsystems ไว้ก็ใช้ command แต่ต้อง Anniversary Update ก่อนนะเอ้อ
    Connect Using SSH
    Connect Using PuTTY

    ถ้าเข้ามาได้แล้วจะเห็นชื่อเครื่องเป็น IP ภายใต้ subnet ที่เราสร้าง
    เข้ามาแล้วก็ลองเล่น command ดู
    sudo su -
    yum install mysql
    

3. สร้าง Database Server

  1. ก่อนจะสร้าง RDS จำเป็นต้องทำ Subnet Groups ก่อน โดยเลือกจาก subnet 2 ตัวที่เตรียมไว้ก่อนหน้า ที่ต้อง 2 ตัวเพราะเราสามารถวางไว้หลาย zone ได้
  2. สร้าง RDS โดยผมจะเลือก MySQL มาใช้งาน เลือก subnet group ใส่ database config ต่างๆ แล้วก็เลือกใช้ Security Group ที่เตรียมไว้สำหรับ RDS ได้เลย
  3. ทดสอบผ่าน command ภาคต่อ (mysql ต้องลงเสร็จก่อนนะ)
    mysql -h <hostname> -u <user> -p
    
    (ตรงนี้ใครรู้ว่าอาจต่อ password ไปได้เลย แต่จะทำให้คนกดขึ้นเพื่อดู recent command ก็จะเห็น password หลาเลย!!)
    ถ้าเข้าได้ก็ลองใช้คำสั่ง MySQL ได้เลย

          เท่านี้เราก็จะได้ Datacenter มาเป็นที่เรียบร้อยแล้ว เพียงแต่ตอนนี้อาจจะยังไม่เห็นอะไร ถ้าเราเลือก AMI เป็น Wordpress ก็สามารถสร้างเว็บ blog ได้ในไม่กี่คลิก หรืออาจลองตามขั้นตอนข้างต้น แต่ใช้การ download ผ่าน centos ก็ได้ แต่ถ้าจะทำเว็บก็อย่าลืมเปิด port 80 ด้วยนะ แต่ทั้งนี้ทั้งนั้น AWS ถือว่ามีค่าใช้จ่ายการใช้งานอยู่ ใครสายเปก็ไม่ต้องสนใจก็ได้ครับ :D

Facebook Comment

Recent Posts

Popular post of 7 days

Portal คืออะไรกันนะ???

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

Popular

[Java] Java 8 DateTime ใหม่ ไฉไลกว่าเดิม

Portal คืออะไรกันนะ???

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

เรื่องของ ++i กับ i++

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

[Java] Java Static Variable และ Static Method

Push Notification คืออะไร มีวิธีทำอย่างไร (No Code)

พิมพ์ซองจากรายชื่อ excel ด้วยวิธี Mail Merge

[Android] เปิดเครื่องไม่ได้ โลโก้ค้าง (Boot Loop)