วิธีเพิ่ม Timezone ใน Elastic Beanstalk

เราสามารถเปลี่ยนแปลง Timezone ให้กับ EC2 Instance ที่สร้างขึ้นจาก Environment ใน Elastic Beanstalk ได้ ซึ่งในบทความนี้ผมจะมาแนะนำวิธีการเปลี่ยนแปลง Timezone จาก UTC ให้เป็น +07 หรือ Timezone ของเประเทศไทยในบทความนี้ครับ

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ครั้งนี้ผมจะมาอธิบายเกี่ยวกับ วิธีเพิ่ม Timezone ใน Elastic Beanstalk ครับ

สิ่งที่ต้องมี

ในบทความนี้ผมจะละเว้นการอธิบายในส่วนของ Elastic Beanstalk หากผู้อ่านต้องการเรียนรู้วิธีการเริ่มต้นใช้งาน Elastic Beanstalk ผมขอแนะนำให้อ่านบทความด้านล่างนี้ครับ

เตรียมไฟล์สำหรับ Deploy เพื่อใช้ตั้งค่าใน Elastic Beanstalk

ขั้นตอนนี้ผมจะสร้าง [โฟลเดอร์ .ebextensions] และ [ไฟล์ 02_timezone.config] เพื่อเตรียมไว้ใช้อัปโหลดใน Elastic Beanstalk เพื่อให้สามารถเปลี่ยนแปลง Timezone ของ EC2 Instance ที่สร้างจาก Environment ได้ครับ

ถ้ามีไฟล์ที่มีเนื้อหาการตั้งค่าในโฟลเดอร์ .ebextensions ของโปรเจกต์ที่จะ Deploy แล้ว เนื้อหาการตั้งค่าจะถูกดำเนินการในระหว่างการ Deploy ซึ่งเราสามารถใช้ไฟล์นี้ในการตั้งค่า Timezone ได้ครับ

ทำการเตรียมไฟล์ที่จะใช้ Deploy และเพิ่มการตั้งค่าต่อไปนี้ให้กับไฟล์ครับ

สร้างโฟลเดอร์ .ebextensions และไฟล์ 02_timezone.config

สร้างโฟลเดอร์.ebextensionsจากนั้นคลิกเข้าไปยังโฟลเดอร์และสร้างไฟล์02_timezone.configซึ่งขั้นตอนนี้คือการสร้างไฟล์ที่จะใช้ในการตั้งค่า Timezone ให้กับ EC2 Instance ที่สร้างขึ้นจาก Environment

ทำการตั้งค่า Timezone ด้วยคำสั่งนี้ โดย Copy Code ด้านล่างนี้วางลงในไฟล์ และ Save ลงในโฟลเดอร์ .ebextensions โดยใช้ชื่อไฟล์02_timezone.configครับ

commands:
  01_timezone:
    command: |
      timedatectl set-timezone Asia/Bangkok


เมื่อสามารถรวม ".ebextensions/02_timezone.config" ไว้ในกลุ่มไฟล์ที่ใช้ Deploy แล้ว ให้ทำการบีบอัดไฟล์
หน้าจอด้านล่างนี้คือตัวอย่าง ซึ่งตัวอย่างนี้คือกรณีของโปรเจกต์ที่มีแค่ไฟล์ที่ชื่อว่า info.php ครับ

ดูตัวอย่างที่นี่เฉพาะเนื้อหาการบีบอัดไฟล์นี้ครับ: Compress to ZIP file (2 ไฟล์)

เมื่อเตรียมไฟล์เสร็จแล้ว Deploy ได้เลยครับ

การเชื่อมต่อกับ EC2 ที่สร้างจาก Elastic Beanstalk ด้วย PuTTY

ขั้นตอนต่อไปนี้คือการแสดงผลลัพธ์ใน Terminal ที่ได้จากการตั้งค่าทั้งหมดตามตัวอย่างข้างต้น โดยให้เริ่มทำการตรวจสอบตามนี้ครับ

ดูตัวอย่างที่นี่เฉพาะหัวข้อย่อยนี้: ทำการเชื่อมต่อกับ EC2 ที่สร้างใน Elastic Beanstalk ด้วย PuTTY

รันคำสั่งนี้เพื่อตรวจสอบ Timezone

date

Output (example)
จะเห็นว่า Timezone ปัจจุบันนี้คือ +07 หรือเขตเวลา Asia/Bangkok นั่นเองครับ

root@ip-172-31-30-120:~

Using username "ec2-user".
Authenticating with public key "tinnakorn-test"
Last login: Mon Jul 18 12:20:53 2022 from node-bjt.pool-180-180.dynamic.totinternet.net
  _____ _           _   _      ____                       _        _ _
 | ____| | __   ___| |_(_) ___| __ )  ___  __ _ _ __  ___| |_ __ _| | | __
 |  _| | |/ _ \/ __| __| |/ __|  _ \ / _ \/ _\ | '_ \/ __| __/ _\ | | |/ /
 | |___| | (_| \__ \ |_| | (__| |_) |  __/ (_| | | | \__ \ || (_| | |   <
 |_____|_|\__,_|___/\__|_|\___|____/ \___|\__,_|_| |_|___/\__\__,_|_|_|\_\

 Amazon Linux 2 AMI

 This EC2 instance is managed by AWS Elastic Beanstalk. Changes made via SSH
 WILL BE LOST if the instance is replaced by auto-scaling. For more information
 on customizing your Elastic Beanstalk environment, see our documentation here:
 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

[ec2-user@ip-172-31-30-120 ~]$ date
Mon Jul 18 16:47:43 +07 2022
[ec2-user@ip-172-31-30-120 ~]$

เราสามารถตั้งค่า Timezone โดยการตั้งค่านี้ด้วยภาษาโปรแกรมนอกจาก PHP (สภาพแวดล้อม Elastic Beanstalk ที่ใช้ Amazon Linux 2 จะสามารถใช้งานได้ทั้งหมด)

สรุป

การสาธิตนี้ก็ได้เสร็จสิ้นแล้ว ซึ่งเราสามารถเปลี่ยน Timezone ได้ตามที่เราต้องการ เพียงแค่เขียน Code ลงในไฟล์โดยระบุ Timezone ของประเทศที่ต้องการ แล้วบีบอัดไฟล์รวมกันให้เป็น .zip จากนั้น Deploy ไปยัง Elastic Beanstalk และไปตรวจสอบใน Server EC2 ก็จะทำให้เรารู้ว่าปัจจุบันนี้เราใช้ Timezone ของประเทศอะไรอยู่นั่นเองครับ

บทความที่เกี่ยวข้อง