Site icon บริษัท โค๊ดบี จำกัด

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

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

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

&NewLine;<figure class&equals;"wp-block-video"><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">AWS หรือ Amazon Web Service คือ แพลตฟอร์มคลาวด์ &lpar; Cloud Platform &rpar; เหตุผลที่เรียกว่า แพลตฟอร์มคลาวด์ เพราะว่า AWS มีรูปแบบการให้บริการถึง 175 บริการ เรียกได้ว่า สมัครสมาชิกเข้าไปเจอหน้า console ของ AWS ก็งงจนเลือกไม่ถูกแล้วว่าจะเริ่มต้นใช้งานอะไรก่อนดี<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">แต่วันนี้เราจะมาเริ่มต้นง่าย ๆ กับเทคโนโลยีที่น่าจะคุ้นเคยกันเป็นอย่างดี นั้นคือ Relational Database อย่าง MySQL ตั้งแต่วิธีการสร้างฐานข้อมูล ไปจนถึงการใช้งานร่วมกับ PHP Codeigniter Framework<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<h4 class&equals;"wp-block-heading">สมัครสมาชิก AWS และสร้างฐานข้อมูล RDS<&sol;h4>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li>สมัครสมาชิก AWS ได้ที่ <a rel&equals;"noreferrer noopener" href&equals;"https&colon;&sol;&sol;aws&period;amazon&period;com&sol;console&sol;" target&equals;"&lowbar;blank">https&colon;&sol;&sol;aws&period;amazon&period;com&sol;console&sol;<&sol;a><&sol;li><li>จากนั้นเข้าสู่ระบบ AWS Console จะเจอช่องค้นหาให้พิมพ์ค้นหา &&num;8220&semi;RDS&&num;8221&semi; และเลือก RDS หรือคลิกที่ลิงค์นี้เลย <a rel&equals;"noreferrer noopener" href&equals;"https&colon;&sol;&sol;console&period;aws&period;amazon&period;com&sol;rds&sol;home" target&equals;"&lowbar;blank">https&colon;&sol;&sol;console&period;aws&period;amazon&period;com&sol;rds&sol;home<&sol;a><&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน01-940x675&period;png" alt&equals;"" class&equals;"wp-image-5519" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน01&period;png" data-full-size&equals;"1284x922" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li>ในหน้า Dashboard ให้คลิกที่ <strong>&&num;8216&semi;Create Database&&num;8217&semi;<&sol;strong> เพื่อไปยังหน้าสร้างฐานข้อมูล<&sol;li><li>ในส่วนของ Engine Option ให้เลือกเป็น <strong>&&num;8216&semi;MySQL&&num;8217&semi;<&sol;strong> เพื่อทดสอบฐานข้อมูล MySQL<&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน02-940x673&period;png" alt&equals;"" class&equals;"wp-image-5521" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน02&period;png" data-full-size&equals;"1568x1122" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph"><&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li>ในส่วนของ Template ให้เลือก <strong>&&num;8216&semi;Free Tier&&num;8217&semi;<&sol;strong> เพราะในเบื้องต้น เราต้องการทดลองใช้งานฟรีก่อน<&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน04-940x308&period;png" alt&equals;"" class&equals;"wp-image-5520" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน04&period;png" data-full-size&equals;"1550x508" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li>ในส่วนหัวข้อ Setting -> <strong>Credentials Setting<&sol;strong> ให้กำหนด username &sol; password สำหรับการเข้าถึงฐานข้อมูล &lpar; หมายความว่า เราจะใช้ user &sol; pass ที่เรากำหนดในส่วนนี้สำหรับเชื่อมต่อฐานข้อมูล &lpar; ส่วนของ host และ db name จะพูดถึงในขั้นตอนต่อไป &rpar;<&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน05-940x479&period;png" alt&equals;"" class&equals;"wp-image-5522" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน05&period;png" data-full-size&equals;"1550x790" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li>สำหรับส่วนอื่น ๆ ถ้าเราไม่ต้องการเปลี่ยนแปลงอะไรก็ปล่อยไว้อย่างงั้นครับ กดปุ่ม &&num;8216&semi;Create Database&&num;8217&semi; เพื่อไปในขั้นตอนต่อไปได้เลย <&sol;li><li>เราจะเห็นว่ามีฐานข้อมูลของเราโผล่มาแล้ว แต่ก่อนที่เราจะสามารถเชื่อมต่อฐานข้อมูลตัวนี้ได้ เราจะต้องตั้งค่านิดหน่อย เพื่อให้สามารถเข้าถึงได้จากทุกที่ก่อน ให้คลิกที่ชื่อ <strong>DB identifier<&sol;strong> ในหน้านี้ข้อมูลส่วน Endpoint คือ host&lowbar;name ที่เราจะนำไปใช้งาน และให้สังเกตุส่วน Public accessibility จะต้องเป็น Yes จากนั้นให้คลิกต่อไปที่ส่วนของ <strong>VPC security groups <&sol;strong>เลือกไปที่ Inbound rules -> Edit inbound rules และกด Save Rules เป็นอันเสร็จสิ้นการตั้งค่า MySQL ในส่วนของ AWS<&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน08-940x229&period;png" alt&equals;"" class&equals;"wp-image-5523" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน08&period;png" data-full-size&equals;"2248x548" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<div style&equals;"height&colon;100px" aria-hidden&equals;"true" class&equals;"wp-block-spacer"><&sol;div>&NewLine;&NewLine;&NewLine;&NewLine;<h4 class&equals;"wp-block-heading">เชื่อมต่อฐานข้อมูล AWS MySQL<&sol;h4>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li>ในขั้นตอนของการเชื่อมต่อฐานข้อมูล AWS MySQL เราสามารถใช้โปรแกรม Remote Access อย่าง MySQL Workbench&comma; Sequel Pro เชื่อมต่อเข้าไปได้เลย โดยในตัวอย่างจะใช้ MySQL Workbench สามารถดาวน์โหลดได้ที่ <a rel&equals;"noreferrer noopener" href&equals;"https&colon;&sol;&sol;downloads&period;mysql&period;com&sol;archives&sol;workbench&sol;" target&equals;"&lowbar;blank">Download MySQL Workbench<&sol;a><ul><li><strong>Hostname<&sol;strong> ให้ใส่เป็น endpoint ที่ได้จากขั้นตอนก่อนหน้านี้<&sol;li><li><strong>Username<&sol;strong> ให้ใส่เป็น master username ที่ได้จากหัวข้อ Credentials Setting<&sol;li><li><strong>Password<&sol;strong> ให้ใส่เป็น master password ที่ได้จากหัวข้อ Credentials Setting<&sol;li><&sol;ul><&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน09-940x708&period;png" alt&equals;"" class&equals;"wp-image-5525" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน09&period;png" data-full-size&equals;"1624x1224" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li>กรณีที่ไม่สามารถเชื่อมต่อฐานข้อมูลได้ ให้กลับไปดูการตั้งค่าก่อนหน้านี้ว่า ตั้งถ้าถูกต้องหรือไม่ กรณีเชื่อมต่อผ่านเรียบร้อยแล้ว เราสามารถสร้างฐานข้อมูล หรือสร้าง Table ต่าง ๆ ผ่านโปรแกรมจัดการฐานข้อมูลได้เลย จากตัวอย่าง ได้สร้าง Table ชื่อว่า test และ aws-codebee เพื่อไว้สำหรับทดสอบในขั้นตอนต่อไป<&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน11&period;png" alt&equals;"" class&equals;"wp-image-5528" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน11&period;png" data-full-size&equals;"726x192" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<div style&equals;"height&colon;100px" aria-hidden&equals;"true" class&equals;"wp-block-spacer"><&sol;div>&NewLine;&NewLine;&NewLine;&NewLine;<h4 class&equals;"wp-block-heading">เชื่อมต่อฐานข้อมูล AWS MySQL ด้วย Codeigniter<&sol;h4>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li>สำหรับการทดสอบการเชื่อมต่อไปยัง AWS MySQL จะใช้ codeigniter framework ในการทดสอบนะครับ เริ่มต้นให้ไปตั้งค่าที่<&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph"><strong>ตั้งค่าที่ application&sol;config&sol;database ดังนี้<&sol;strong><&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<pre class&equals;"wp-block-preformatted">'hostname' &equals;> 'AWS Database Endpoint URL'&comma;&NewLine;'username' &equals;> 'Credentials Username'&comma;&NewLine;'password' &equals;> 'Credentials Password'&comma;&NewLine;'database' &equals;> 'DB name'&comma;<&sol;pre>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph"><strong>สร้างตารางฐานข้อมูล application&sol;models&sol;Model&lowbar;migrate<&sol;strong><&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<pre class&equals;"wp-block-preformatted"><&quest;php&NewLine;class Model&lowbar;migrate extends CI&lowbar;Model &lbrace;&NewLine;&NewLine;&Tab;function &lowbar;&lowbar;construct&lpar;&rpar;&NewLine; &lbrace;&NewLine; parent&colon;&colon;&lowbar;&lowbar;construct&lpar;&rpar;&semi;&NewLine; &dollar;this->load->dbforge&lpar;&rpar;&semi;&NewLine; &rcub;&NewLine; public function create&lowbar;tb&lowbar;user&lpar;&rpar;&lbrace;&NewLine; if&lpar; &excl;&dollar;this->db->table&lowbar;exists&lpar;'tb&lowbar;user'&rpar; &rpar;&lbrace;&NewLine; &dollar;this->dbforge->add&lowbar;field&lpar;array&lpar;&NewLine; 'id' &equals;> array&lpar;&NewLine; 'type' &equals;> 'INT'&comma;&NewLine; 'constraint' &equals;> 11&comma;&NewLine; 'unsigned' &equals;> TRUE&comma;&NewLine; 'auto&lowbar;increment' &equals;> TRUE&NewLine; &rpar;&comma;&NewLine; 'name' &equals;> array&lpar;&NewLine; 'type' &equals;> 'VARCHAR'&comma;&NewLine; 'constraint' &equals;> 200&comma;&NewLine; &rpar;&NewLine; &rpar;&rpar;&semi;&NewLine; &dollar;this->dbforge->add&lowbar;field&lpar;"timestamp TIMESTAMP DEFAULT CURRENT&lowbar;TIMESTAMP"&rpar;&semi;&NewLine; &dollar;this->dbforge->add&lowbar;key&lpar;'id'&comma; TRUE&rpar;&semi;&NewLine; &dollar;this->dbforge->create&lowbar;table&lpar;'tb&lowbar;user'&rpar;&semi;&NewLine; echo 'create table create&lowbar;tb&lowbar;user <br>'&semi;&NewLine; &rcub;else&lbrace;&NewLine; echo 'table create&lowbar;tb&lowbar;user already exists <br>'&semi;&NewLine; &rcub;&NewLine; &rcub;&NewLine;&rcub;<&sol;pre>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph"><strong>สำหรับสั่งสร้างตารางฐานข้อมูล application&sol;controllers&sol;Migrate<&sol;strong><&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<pre class&equals;"wp-block-preformatted"><&quest;php&NewLine;defined&lpar;'BASEPATH'&rpar; OR exit&lpar;'No direct script access allowed'&rpar;&semi;&NewLine;&NewLine;class Migrate extends CI&lowbar;Controller &lbrace; &NewLine;&NewLine;&Tab;public function &lowbar;&lowbar;construct&lpar;&rpar; &lbrace;&NewLine; parent&colon;&colon;&lowbar;&lowbar;construct&lpar;&rpar;&semi;&NewLine;&Tab;&Tab;&dollar;this->load->model&lpar;'model&lowbar;migrate'&rpar;&semi;&NewLine;&Tab;&rcub;&NewLine;&Tab;public function index&lpar;&rpar;&NewLine;&Tab;&lbrace;&NewLine;&Tab;&Tab;&dollar;this->model&lowbar;migrate->create&lowbar;tb&lowbar;user&lpar;&rpar;&semi;&NewLine;&Tab;&rcub;&NewLine;&rcub;<&sol;pre>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">หลังจากที่เราสร้าง Model&lowbar;migrate และ Migrate Controller เรียบร้อยแล้ว ให้ทดสอบการเชื่อมต่อด้วยการ Run คำสั่งที่ Migrate Controller หากไม่มีอะไรผิดพลาดเราจะได้ตารางฐานข้อมูลชื่อว่า tb&lowbar;user โผล่ขึ้นมา ตัวอย่างตามภาพด้านล่าง<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน13&period;png" alt&equals;"" class&equals;"wp-image-5535" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน13&period;png" data-full-size&equals;"726x748" &sol;><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">ทดสอบ Query ด้วยการ Select ข้อมูล โดยการสร้าง Model&lowbar;user ขึ้นมา ดังนี้<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<pre class&equals;"wp-block-preformatted"><&quest;php&NewLine;class Model&lowbar;user extends CI&lowbar;Model&NewLine;&lbrace;&NewLine;&Tab;public function getUser&lpar;&rpar;&NewLine;&Tab;&lbrace;&NewLine;&Tab;&Tab;&dollar;this->db->select&lpar;"&ast;"&rpar;&semi;&NewLine;&Tab;&Tab;&dollar;this->db->from&lpar;"tb&lowbar;user"&rpar;&semi;&NewLine;&Tab;&Tab;&dollar;query &equals; &dollar;this->db->get&lpar;&rpar;&semi;&NewLine;&NewLine;&Tab;&Tab;if &lpar;&dollar;query->num&lowbar;rows&lpar;&rpar; > 0&rpar; &lbrace;&NewLine;&Tab;&Tab;&Tab;return &dollar;query->result&lpar;&rpar;&semi;&NewLine;&Tab;&Tab;&rcub; else &lbrace;&NewLine;&Tab;&Tab;&Tab;return array&lpar;&rpar;&semi;&NewLine;&Tab;&Tab;&rcub;&NewLine;&Tab;&rcub;&NewLine;&Tab;public function setUser&lpar;&dollar;name&rpar;&NewLine;&Tab;&lbrace;&NewLine;&Tab;&Tab;&dollar;this->db->set&lpar;"name"&comma;&dollar;name&rpar;&semi;&NewLine;&Tab;&Tab;&dollar;this->db->insert&lpar;"tb&lowbar;user"&rpar;&semi;&NewLine;&Tab;&rcub;&NewLine;&rcub;<&sol;pre>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">ทดสอบการทำงานด้วยคำสั่งดังนี้<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<pre class&equals;"wp-block-preformatted">&dollar;this->model&lowbar;user->setUser&lpar;"นายเอ นามสมมุติ"&rpar;&semi;&NewLine;&dollar;user &equals; &dollar;this->model&lowbar;user->getUser&lpar;&rpar;&semi;&NewLine;var&lowbar;dump&lpar;&dollar;user&rpar;&semi;<&sol;pre>&NewLine;&NewLine;&NewLine;&NewLine;<p class&equals;"wp-block-paragraph">ผลลัพธ์<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image size-large"><img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน14-940x119&period;png" alt&equals;"" class&equals;"wp-image-5537" data-full&equals;"https&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2020&sol;10&sol;aws-mysql-วิธีใช้งาน14&period;png" data-full-size&equals;"2486x314" &sol;><&sol;figure>&NewLine;

Exit mobile version