【Update】วิธีการ Shutdown Windows ด้วย Schedule จาก EventBridge

【Update】วิธีการ Shutdown Windows ด้วย Schedule จาก EventBridge เราจะทำการตั้งค่าใน Service ที่ชื่อว่า Amazon EventBridge โดยสาธิตการกำหนดเวลา Shutdown Windows

สวัสดีครับ ผมป๊อปครับ ครั้งนี้จะมา 【Update】วิธีการ Shutdown Windows ด้วย Schedule จาก EventBridge ในหัวข้อ วิธีการ Shutdown Windows ด้วย Schedule จาก EventBridge เนื่องจากว่าหน้า AWS Console ของฟังก์ชัน Rules ใน Amazon EventBridge มีการ Update

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

ให้ทำการรันคำสั่ง Shutdown จาก Management Console โดยไม่ต้องเข้า Windows ก่อน สามารถดูได้ที่คำอธิบายและลิงก์ด้านล่างนี้เลย

วิธีการรันคำสั่ง Shutdown จาก Management Console โดยไม่ต้องเข้า Windows

เมื่อทำวิธีตามด้านบนนี้เสร็จเรียบร้อยแล้ว ให้เริ่มทำหัวข้อถัดไปได้เลย

การสร้าง Rule ใน IAM

ทำสร้าง Role ใน IAM ก่อน เพื่อนำไปใช้ในขั้นตอนถัดไปของ วิธีการ Shutdown Windows ด้วย Schedule จาก EventBridge

เข้ามาที่ Service IAM โดยค้นหา🔍︎ IAM» เลือกIAM
search_iam

มาที่เมนูด้านซ้าย เลือกRoles
menu_roles

คลิกCreate role
create_role-1

การตั้งค่า Step 1 : Select trusted entity นี้คือ:
Trusted entity type
» เลือกAWS service

Use case
» Common use cases:EC2
» คลิกNext
create_role-2

การตั้งค่า Step 2 : Add permissions นี้คือ:
Add permissions
» ค้นหา Permissions policies:🔍︎ AmazonSSMAutomationRole+ Enter
» Checkที่ชื่อ AmazonSSMAutomationRole
» คลิกNext
create_role-3

การตั้งค่า Step 3 : Name, review, and create นี้คือ:
» Role name:tinnakorn-win-shutdown-ssm-automation-role(ชื่ออะไรก็ได้) role_shutdown-4

เลื่อนลงมาด้านล่างสุด คลิกCreate role
create_role-5

ค้นหาชื่อ Role ที่สร้างไปเมื่อสักครู่นี้:🔍︎ tinnakorn-win-shutdown-ssm-automation-role+ Enter จากนั้นคลิกที่ Role name ของเรา
role_shutdown-6

คลิกที่หัวข้อTrust relationshipsและคลิกEdit trust policy
create_role-7

แก้ไข Code ที่ "Service": โดยการเพิ่ม"ssm.amazonaws.com"ลงไป
เพื่อให้ง่ายต่อการแก้ไข แนะนำให้ลบ Code เก่าในช่อง Edit trust policy ออกให้หมดและ Copy Code ด้านล่างนี้วางลงไปแทนที่

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "ssm.amazonaws.com",
                    "ec2.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

create_role-8

เลื่อนลงมาด้านล่างสุด คลิกUpdate policy
create_role-9

มาดูที่หัวข้อTrust relationshipsอีกครั้ง จะเห็นว่าแก้ไข Code เสร็จเรียบร้อยแล้ว
create_role-10

วิธีการ Shutdown Windows ด้วย Schedule จาก EventBridge

เราจะสาธิตวิธีตั้งค่ากำหนดการ Stop EC2 Instance ใน Service Amazon EventBridge โดยจะใช้ชื่อว่าtinnakorn-schedule-stopซึ่งเป็นชื่อเดียวกับ Instance นั่นเอง

ค้นหา🔍︎ Amazon EventBridge» เลือกAmazon EventBridge
search_eventbridge

เมื่อเข้ามาที่ Amazon EventBridge แล้ว มาที่เมนูด้านซ้าย เลือกRules
menu_rules_eventbridge

มาที่หัวข้อ Rules คลิกCreate rule
cre_schedule_stop_ec2-1

เมื่อเข้ามาหน้า Create rule แล้ว สามารถดูการตั้งค่านี้เป็นแนวทางได้เลย
การตั้งค่า Step 1 Define rule detail นี้คือ:
» Name:tinnakorn-win-shutdown
» Description - optional:tinnakorn-win-shutdown
» เลือก⚫ Schedule
» คลิกNext
fix_shutdown_win-1

การตั้งค่า Step 2 Define schedule นี้คือ:
» เลื่อนลงมาหัวข้อ Schedule pattern ด้านล่างสุด
» Cron expression: ใส่วันที่และเวลาที่ต้องการ Shutdown โดยในแต่ละช่องจะมีข้อความบอกอยู่ด้านล่าง เช่น50 9 * * ? *(ซึ่งเวลาประเทศไทยคือ16:50นาที ส่วนวันที่ถ้าเป็น*ก็จะหมายถึงวันปัจจุบัน)
» เมื่อใส่วันที่และเวลาแล้ว จะมี Next 10 trigger date(s) ปรากฎขึ้นมา เราสามารถเลือก:Local time zone ▼เพื่อดูเวลาประเทศไทยได้
» คลิกNext
fix_shutdown_win-2

สามารถศึกษาเรื่อง Cron expression เพิ่มเติมได้ที่ : https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html

มาที่หน้า EC2 Instance ของเรา คลิกเพื่อ Copy Instance ID แล้วนำไปบันทึกไว้ที่ Notepad ก่อนก็ได้
cre_schedule_stop_ec2-4-fix

การตั้งค่า Step 3 Select target(s) นี้คือ:
Select a target
» เลือก Select a target:System Manager Run Command ▼
» เลือก Document:AWS-RunPowerShellScript ▼
» Target key*:InstanceIds
» Target value(s)*:i-*****************+ คลิกAdd(เมื่อใส่ Instance ID ที่ Copy มาแล้วอย่าลืมคลิก Add)
fix_shutdown_win-3

ในส่วนของ ▼ Configure automation parameter(s) เราสามารถใส่คำสั่งอะไรลงไปก้ได้
ในตัวอย่างนี้จะใส่คำสั่ง Shutdown Windows โดยอัตโนมัติ สามารถทำได้ดังนี้

・3600 วินาที = 1 ชั่วโมง
・1800 วินาที = 30 นาที
・900 วินาที = 15 นาที
・600 วินาที = 10 นาที
・300 วินาที = 5 นาที
・60 วินาที = 1 นาที

ในตัวอย่างนี้จะสาธิตแค่เวลา 60 วินาที ดังนั้นให้ใส่คำสั่งตามนี้และกำหนดเวลาของคุณเอง
» เลือก⚫ Constant
» Commands:shutdown /s /t 60+ คลิกAdd(เมื่อใส่คำสั่งไปแล้วอย่าลืมคลิก Add)
» ⚫ Create a new role for this specific resource: ชื่อ Role ตัวอย่างนี้คือ ↓
tinnakorn-win-shutdown_Amazon_EventBridge_Invoke_Run_Command

※ตัวอย่างการตั้งชื่อ Role (ดูเพื่อเป็นแนวทาง โดยคุณสามารถตั้งชื่ออะไรก็ได้)

# ใส่ชื่อ "tinnakorn-win-shutdown_" ข้างหน้าและลบเลขข้างหลังอออก
# ก็จะได้เป็น ↓
tinnakorn-win-shutdown_Amazon_EventBridge_Invoke_Run_Command  # (ชื่อนี้เป็นแค่ตัวอย่าง)

» คลิกNext
fix_shutdown_win-4

การตั้งค่า Step 4 - option Configure tags นี้ไม่ต้องตั้งค่าอะไร คลิกNextได้เลย
fix_shutdown_win-5

ขั้นตอน Step 5 Review and create นี้คือการตรวจสอบข้อมูลการตั้งค่า
fix_shutdown_win-6-fix

เมื่อทำการตรวจสอบการตั้งค่าเสร็จแล้ว คลิกCreate ruleได้เลย
fix_shutdown_win-7

เมื่อมาหน้านี้แล้ว ให้คลิกที่ชื่อ Rule ของเรา
cre_schedule_win-8

ในส่วนนี้คือ Rule ของเรา ซึ่งจะมีข้อมูลที่เราได้ตั้งค่าไว้ในหน้านี้
fix_shutdown_win-8

เมื่อตั้งค่าเสร็จแล้ว รอจนกว่าจะถึงเวลาที่เราตั้งค่าไว้ ในตัวอย่างนี้เวลา Shutdown จะอยู่ที่ 60 วินาที และเวลา Stop Instance อยู่ที่ 16.50 น.
เมื่อเวลามาถึง 16.50 น. แล้วก็รอไปอีก 60 วินาทีนั่นเอง
fix_shutdown_win-complected

เมื่อ Windows ถูก Shutdown ตามเวลาที่กำหนดไว้แล้ว มาดูที่หน้า Instance State จะมีสถานะเป็นStopped
cre_schedule_win-11

การตรวจสอบข้อมูลการใช้งานย้อนหลังด้วย CloudTrail

ดูวิธีการตรวจสอบข้อมูลการใช้งานย้อนหลังด้วย CloudTrail ได้ที่บทความนี้

การตรวจสอบข้อมูลการใช้งานย้อนหลังด้วย CloudTrail

การลบ Features ที่สร้างใน Services ของ AWS

ดูวิธีการลบ Features ที่สร้างใน Services ของ AWS ได้ที่บทความนี้

การลบ Features ที่สร้างใน Services ของ AWS

สรุป

ในบทความนี้ก็ได้สาธิตวิธีการ Shutdown Windows ด้วย Schedule จาก EventBridge เรียบร้อยแล้ว ซึ่งการตั้งค่านี้ จะช่วยให้เราสามารถ Shutdown ตามวัน เวลาที่เรากำหนดได้โดยอัตโนมัติ

ตัวอย่างเช่น ถ้าเราไม่ได้ใช้งานเซิร์ฟเวอร์ Instance ในตอนกลางคืน แต่บางครั้งอาจจะลืม Shutdown Windows ซึ่งเราสามารถ Shutdown Windows ด้วยการตั้งค่านี้ได้ตลอดเวลา นอกจากนี้ยังช่วยประหยัดค่าใช้จ่ายให้เรา และทำให้เราสามารถใช้งาน AWS ได้ในราคาที่ถูกลงอีกด้วย

ดูรายละเอียดเพิ่มเติมได้ที่นี่ สอบถามเพิ่มเติมเกี่ยวกับ AWS คลิกที่นี่