ใช้งาน MySQL บน AWS ( Amazon Web Service )

aws-mysql-วิธีใช้งาน
aws-mysql-วิธีใช้งาน

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);

ผลลัพธ์

Leave a Reply