AWS หรือ Amazon Web Service คือ แพลตฟอร์มคลาวด์ ( Cloud Platform ) เหตุผลที่เรียกว่า แพลตฟอร์มคลาวด์ เพราะว่า AWS มีรูปแบบการให้บริการถึง 175 บริการ เรียกได้ว่า สมัครสมาชิกเข้าไปเจอหน้า console ของ AWS ก็งงจนเลือกไม่ถูกแล้วว่าจะเริ่มต้นใช้งานอะไรก่อนดี
แต่วันนี้เราจะมาเริ่มต้นง่าย ๆ กับเทคโนโลยีที่น่าจะคุ้นเคยกันเป็นอย่างดี นั้นคือ Relational Database อย่าง MySQL ตั้งแต่วิธีการสร้างฐานข้อมูล ไปจนถึงการใช้งานร่วมกับ PHP Codeigniter Framework
สมัครสมาชิก AWS และสร้างฐานข้อมูล RDS
- สมัครสมาชิก AWS ได้ที่ https://aws.amazon.com/console/
- จากนั้นเข้าสู่ระบบ AWS Console จะเจอช่องค้นหาให้พิมพ์ค้นหา “RDS” และเลือก RDS หรือคลิกที่ลิงค์นี้เลย https://console.aws.amazon.com/rds/home

- ในหน้า Dashboard ให้คลิกที่ ‘Create Database’ เพื่อไปยังหน้าสร้างฐานข้อมูล
- ในส่วนของ Engine Option ให้เลือกเป็น ‘MySQL’ เพื่อทดสอบฐานข้อมูล MySQL

- ในส่วนของ Template ให้เลือก ‘Free Tier’ เพราะในเบื้องต้น เราต้องการทดลองใช้งานฟรีก่อน

- ในส่วนหัวข้อ Setting -> Credentials Setting ให้กำหนด username / password สำหรับการเข้าถึงฐานข้อมูล ( หมายความว่า เราจะใช้ user / pass ที่เรากำหนดในส่วนนี้สำหรับเชื่อมต่อฐานข้อมูล ( ส่วนของ host และ db name จะพูดถึงในขั้นตอนต่อไป )

- สำหรับส่วนอื่น ๆ ถ้าเราไม่ต้องการเปลี่ยนแปลงอะไรก็ปล่อยไว้อย่างงั้นครับ กดปุ่ม ‘Create Database’ เพื่อไปในขั้นตอนต่อไปได้เลย
- เราจะเห็นว่ามีฐานข้อมูลของเราโผล่มาแล้ว แต่ก่อนที่เราจะสามารถเชื่อมต่อฐานข้อมูลตัวนี้ได้ เราจะต้องตั้งค่านิดหน่อย เพื่อให้สามารถเข้าถึงได้จากทุกที่ก่อน ให้คลิกที่ชื่อ DB identifier ในหน้านี้ข้อมูลส่วน Endpoint คือ host_name ที่เราจะนำไปใช้งาน และให้สังเกตุส่วน Public accessibility จะต้องเป็น Yes จากนั้นให้คลิกต่อไปที่ส่วนของ VPC security groups เลือกไปที่ Inbound rules -> Edit inbound rules และกด Save Rules เป็นอันเสร็จสิ้นการตั้งค่า MySQL ในส่วนของ AWS

เชื่อมต่อฐานข้อมูล AWS MySQL
- ในขั้นตอนของการเชื่อมต่อฐานข้อมูล AWS MySQL เราสามารถใช้โปรแกรม Remote Access อย่าง MySQL Workbench, Sequel Pro เชื่อมต่อเข้าไปได้เลย โดยในตัวอย่างจะใช้ MySQL Workbench สามารถดาวน์โหลดได้ที่ Download MySQL Workbench
- Hostname ให้ใส่เป็น endpoint ที่ได้จากขั้นตอนก่อนหน้านี้
- Username ให้ใส่เป็น master username ที่ได้จากหัวข้อ Credentials Setting
- Password ให้ใส่เป็น master password ที่ได้จากหัวข้อ Credentials Setting

- กรณีที่ไม่สามารถเชื่อมต่อฐานข้อมูลได้ ให้กลับไปดูการตั้งค่าก่อนหน้านี้ว่า ตั้งถ้าถูกต้องหรือไม่ กรณีเชื่อมต่อผ่านเรียบร้อยแล้ว เราสามารถสร้างฐานข้อมูล หรือสร้าง Table ต่าง ๆ ผ่านโปรแกรมจัดการฐานข้อมูลได้เลย จากตัวอย่าง ได้สร้าง Table ชื่อว่า test และ aws-codebee เพื่อไว้สำหรับทดสอบในขั้นตอนต่อไป

เชื่อมต่อฐานข้อมูล AWS MySQL ด้วย Codeigniter
- สำหรับการทดสอบการเชื่อมต่อไปยัง AWS MySQL จะใช้ codeigniter framework ในการทดสอบนะครับ เริ่มต้นให้ไปตั้งค่าที่
ตั้งค่าที่ application/config/database ดังนี้
'hostname' => 'AWS Database Endpoint URL', 'username' => 'Credentials Username', 'password' => 'Credentials Password', 'database' => 'DB name',
สร้างตารางฐานข้อมูล application/models/Model_migrate
load->dbforge(); } public function create_tb_user(){ if( !$this->db->table_exists('tb_user') ){ $this->dbforge->add_field(array( 'id' => array( 'type' => 'INT', 'constraint' => 11, 'unsigned' => TRUE, 'auto_increment' => TRUE ), 'name' => array( 'type' => 'VARCHAR', 'constraint' => 200, ) )); $this->dbforge->add_field("timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP"); $this->dbforge->add_key('id', TRUE); $this->dbforge->create_table('tb_user'); echo 'create table create_tb_user
'; }else{ echo 'table create_tb_user already exists
'; } } }
สำหรับสั่งสร้างตารางฐานข้อมูล application/controllers/Migrate
load->model('model_migrate'); } public function index() { $this->model_migrate->create_tb_user(); } }
หลังจากที่เราสร้าง Model_migrate และ Migrate Controller เรียบร้อยแล้ว ให้ทดสอบการเชื่อมต่อด้วยการ Run คำสั่งที่ Migrate Controller หากไม่มีอะไรผิดพลาดเราจะได้ตารางฐานข้อมูลชื่อว่า tb_user โผล่ขึ้นมา ตัวอย่างตามภาพด้านล่าง

ทดสอบ Query ด้วยการ Select ข้อมูล โดยการสร้าง Model_user ขึ้นมา ดังนี้
db->select("*"); $this->db->from("tb_user"); $query = $this->db->get(); if ($query->num_rows() > 0) { return $query->result(); } else { return array(); } } public function setUser($name) { $this->db->set("name",$name); $this->db->insert("tb_user"); } }
ทดสอบการทำงานด้วยคำสั่งดังนี้
$this->model_user->setUser("นายเอ นามสมมุติ"); $user = $this->model_user->getUser(); var_dump($user);
ผลลัพธ์
