[Update] วิธีการใช้งานฟังก์ชัน Saved configuration ใน Elastic Beanstalk

[Update] วิธีการใช้งานฟังก์ชัน Saved configuration ใน Elastic Beanstalk

เราสามารถใช้งานฟังก์ชัน Saved configuration ใน Elastic Beanstalk เพื่อสร้าง Environment เดิมหรือปรับสภาพ Environment ที่กำลังใช้งานอยู่ได้อย่างง่ายดาย ซึ่งผมจะมาอธิบายในบทความนี้ครับ

สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ

ครั้งนี้ผมจะมาแนะนำการใช้งานฟังก์ชัน Saved configuration ใน Elastic Beanstalk โดยจะเน้นไปที่ฟังก์ชัน Saved configuration ที่อยู่ตรงเมนูด้านซ้ายใน Elastic Beanstalk ครับ

บทนำ

เราสามารถใช้ฟังก์ชัน Saved configuration บันทึกข้อมูลการตั้งค่าของแต่ละสภาพแวดล้อมได้ โดยเฉพาะ Environment ที่มีการตั้งค่าซับซ้อน ก็สามารถใช้ฟังก์ชันนี้ในการสร้าง Environment เดิมหรือปรับเปลี่ยนสภาพ Environment ที่กำลังใช้งานอยู่ได้

การ Saved configuration

ผมได้ทำการ Saved configuration ไว้ก่อนหน้านี้แล้ว โดยใช้ชื่อ Configuration name: single

ดูตัวอย่างได้ที่ลิงก์บทความนี้ครับ

การ [Load] Saved configuration เพื่อปรับสภาพ Environment

ขั้นตอนนี้คือการใช้ Saved configuration เปลี่ยนสภาพ Environment อื่นที่กำลังใช้งานอยู่

วิธีเข้ามาที่ Saved configuration

เข้ามาที่ Service Elastic Beanstalk แล้วเลือก Applications จากเมนูด้านซ้าย

แล้วค้นหาและคลิกเข้าไปที่ชื่อของเรา เช่น tinnakorn

แล้วดูที่เมนูด้านซ้าย จะเห็นว่าแสดงเป็นชื่อ Application ของเรา ในตัวอย่างนี้คือ ▼ Application: tinnakorn
ทีนี้ให้เลือก Saved configuration

การ Load Saved configuration ให้กับ Environment

ติ๊ก ตรง Configuration name ที่ต้องการนำไปใช้ เช่น single และคลิก Load

เลือก Environment ที่ต้องการ และคลิก Load แล้วรอระบบอัปเดตสักครู่

การสร้าง Environment จาก Saved configuration

เข้ามาที่ Saved configurations ของเรา
แล้วติ๊ก Configuration name ที่ต้องการใช้สร้าง Environment ซ้ำ และคลิก Launch evironment

แล้วตั้งค่า Environment ตามความเหมาะสมกับงานของเราได้เลย

ข้อควรระวัง: หาก Key Pair หรือ Security Group ที่อยู่ในการตั้งค่า Saved configuration หายไป จะไม่สามารถ Create enviroment ได้ ดังนั้นหากต้องการลบ Key Pair กับ Security Group กรุณาตรวจสอบว่าไม่ซ้ำกับการตั้งค่าที่มีอยู่ใน Saved configuration ด้วย

ตรวจสอบที่บันทึกไฟล์จริงของ Saved configuration ว่าอยู่ที่ไหน

เข้ามาที่ Service S3 แล้วเลือก Buckets จากเมนูด้านซ้าย
จากนั้นค้นหาและเลือก Buckets: elasticbeanstalk-[region]-[aws-account-id]

คลิกเข้าไปที่ Path: resources/templates/[application-name]
จะเห็นว่ามีไฟล์ของแต่ละสภาพแวดล้อมอยู่ในนี้ แต่ในตัวอย่างนี้มีแค่ไฟล์ single เพราะผมทำการ Saved configurations ไว้แค่ไฟล์เดียว

ดาวน์โหลดไฟล์ของ Saved configurations

ติ๊ก ไฟล์ที่ต้องการดาวน์โหลด และคลิก Download ไฟล์ที่ได้มาเป็นไฟล์ตั้งค่ารูปแบบ YAML

จากนั้นลองเปิดไฟล์ที่ดาวน์โหลดมา จะเห็นว่ามีข้อมูลการตั้งค่าถูกบันทึกลงในไฟล์นี้ทั้งหมด

File: single (คลิกดูตัวอย่างข้อมูลไฟล์ที่นี่)
EnvironmentConfigurationMetadata:
  DateCreated: '1719544543000'
  DateModified: '1719544543000'
Platform:
  PlatformArn: arn:aws:elasticbeanstalk:ap-southeast-1::platform/PHP 8.2 running on
    64bit Amazon Linux 2023/4.2.0
OptionSettings:
  aws:elasticbeanstalk:container:php:phpini:
    document_root: /public
  aws:ec2:instances:
    SpotFleetOnDemandAboveBasePercentage: '0'
    InstanceTypes: t3a.nano
  aws:elasticbeanstalk:application:environment:
    DB_HOST: [host]
    DB_DATABASE: laravel
    DB_PASSWORD: [********]
  aws:elasticbeanstalk:environment:
    ServiceRole: arn:aws:iam::[aws-account-id]:role/aws-elasticbeanstalk-service-role
    EnvironmentType: SingleInstance
    LoadBalancerType: application
  aws:elasticbeanstalk:healthreporting:system:
    ConfigDocument:
      Version: 1
      CloudWatchMetrics:
        Instance: {}
        Environment: {}
      Rules:
        Environment:
          ELB:
            ELBRequests4xx:
              Enabled: true
          Application:
            ApplicationRequests4xx:
              Enabled: true
  aws:autoscaling:launchconfiguration:
    RootVolumeSize: '10'
    EC2KeyName: [key-pair-name]
    RootVolumeType: gp2
  AWSEBAutoScalingLaunchConfiguration.aws:autoscaling:launchconfiguration:
    SecurityGroups: [security-group-name]
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
  aws:elasticbeanstalk:managedactions:
    PreferredStartTime: FRI:12:05
  aws:elasticbeanstalk:managedactions:platformupdate:
    UpdateLevel: minor
EnvironmentTier:
  Type: Standard
  Name: WebServer
AWSConfigurationTemplateVersion: 1.1.0.0

สรุป

ผมได้ลองใช้งานฟังก์ชัน Saved configuration แล้วรู้สึกว่ามีความสะดวกในการสร้าง Environment มาก เพราะมันจะบันทึกการตั้งค่าไว้ให้ทุกอย่างตามที่เราได้ตั้งค่าไว้ก่อนหน้านี้ ยิ่งไปกว่านั้นเรายังสามารถปรับเปลี่ยนสภาพ Environment ที่กำลังใช้งานอยู่ได้อีกด้วย

ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ

POP (Tinnakorn Maneewong) จากบริษัท Classmethod (Thailand) ครับ !

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

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.