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);ผลลัพธ์

