ลองใช้ AWS Application Migration Service(MGN) ย้าย Windows Server ขึ้น AWS

วิธีการย้าย Transfer Migration Microsoft Server จาก On-premise มายัง AWS โดยการใช้ AWS Application Migration Service(MGN) ทำอย่างไรลองดูบทความนี้ได้
2024.01.09

บทความนี้ดัดแปลงมาจาก Hands-on หัวข้อด้านล่างนี้
Application Migration Service(MGN) ハンズオン :: Application Migration Service(MGN) ハンズオン (ภาษาญี่ปุ่น)
AWS Hands on lab - AWS MGN - Replicate server from one region to another - YouTube (ภาษาอังกฤษ)

วันนี้เรามาทำความรู้จักเกี่ยวกับ AWS Application Migration Service (ชื่อย่อๆ คือ MGN) ซึ่งจะช่วยในการ Transfer VMWare Server ขึ้น AWS ครับ
โดยเราจะทำการสมมุติ Ohio Region เป็น on-premise Environment แล้วลองทำการย้าย Application Server จาก Ohio Region ไปยัง N. Virginia Region โดยใช้ MGN กันครับ
โดยในบทความนี้เราจะใช้เป็น Windows Server ครับ
เวลาในการ Replication กับการรอในการสร้าง Instance จะอยู่ที่ประมาณ 2-3 ชม ครับ

ขั้นตอนที่ 1: การ Setup MGN

สิ่งที่จะทำในขั้นตอนนี้
- ตั้งค่า MGN สำหรับการใช้ครั้งแรก
- เปิดการใช้งาน Access key สำหรับ MGN Agent

  • ล็อกอิน AWS Management Console ไปที่ N. Virginia Region
  • ไปที่ MGN Console
  • กด Get started

  • กด Set up service

  • ไปที่ IAM Console หน้าต่าง Users
  • กด Create user

  • กำหนดชื่อ User name: mgn
  • เลือก Attach policies directly
  • เลือก AWSApplicationMigrationAgentPolicy(ให้เลือกตัวที่ไม่ใช่ v2)
  • กด Next
  • กด Create user

สำหรับวิธีการสร้าง User แบบละเอียดสามารถตรวจสอบได้ที่บทความต่อไปนี้
วิธีสร้าง User เพื่อใช้ Login AWS Management Console | DevelopersIO

  • กดเข้าไปดูรายละเอียด User ที่เราสร้างขึ้น
  • เลือกหัวข้อ Security credentials
  • กด Create access key

หัวข้อนี้เขาจะถามจุดประสงค์ที่เราใช้ Access key โดยในบทความนี้เราจะใช้ Access key ในการใช้ CLI จึงแนะนำให้เลือกตามด้านล่างนี้ลยครับ

  • เลือก Command Line Interface (CLI)
  • ติ๊กหัวข้อด้านล่าง
  • กด Next

  • กด Create access key

จด Access key และ Secret access key ไว้

ขั้นตอนที่ 2: เตรียม Ohio Region Environment (สมมุติว่าเป็น on-premise)

สิ่งที่จะทำในขั้นตอนนี้
- สร้าง VPC กับ EC2 อัตโนมัติโดยใช้ CloudFormation
- Install MGN Agent
- install Application ที่จะใช้ในการ Migration

  • ล็อกอิน AWS Management Console ไปที่ N. Ohio Region
  • ไปที่ CloudFormation Console
  • กด Create stack

  • ดาวน์โหลด mgn.yaml
  • เลือก Template is ready
  • เลือก Upload a template file
  • เลือก mgn.yaml ที่เราดาวน์โหลดมา
  • กด Next

  • ตั้งชื่อ stack name ว่า mgn
  • กด Next

  • กด Next

  • เลือก I acknowledge that AWS CloudFormation might create IAM resources with custom names.
  • กด Submit

  • รอจนขึ้นสถานะ CREATE_COMPLETE แล้วไปที่หน้าต่าง EC2

  • ทำการ Terminated 001-Linux เนื่องจากไม่ได้ใช้ในบทความนี้

  • ติ๊ก 002-Windows
  • กด Connect

  • เลือก Session Manager
  • กด Connect

ขั้นตอนที่ 2.1: install MGN Agent

  • ย้ายไปยัง directory ที่เราจะทำงาน
cd ../..
mkdir tmp
cd tmp

  • Start command prompt
cmd

  • ใช้คำสั่งดาวน์โหลด MGN Agent install file
curl -O https://aws-application-migration-service-ap-northeast-1.s3.amazonaws.com/latest/windows/AwsReplicationWindowsInstaller.exe
  • รันคำสั่งต่อไปนี้โดย ใช้ค่า Access key ที่เราจดไว้ในหัวข้อด้านบนแทนค่าในคำสั่งด้านล่าง
AwsReplicationWindowsInstaller.exe --region us-east-1 --aws-access-key-id <ACCESS_KEY_ID> --aws-secret-access-key <SECRET_ACCESS_KEY> --no-prompt

  • กลับมาที่ Powershell แล้วทำการตรวจสอบว่า IIS(Internet Information Services) ได้ทำการ install แล้วหรือยัง
exit

Install-WindowsFeature Web-Server

  • กลับมาที่ EC2 Console
  • คลิกที่ instance ID ของ 002-Windows
  • Copy Public ID Address

  • นำไปเปิดที่ browser (http://xxx.xxx.xxx.xxx) หากได้ตามภาพด้านล่างถือว่า ขั้นตอนการสมมุติ On-premise เสร็จสิ้น

ขั้นตอนที่ 3: ตั้งค่า Transfer ปลายทาง (N. Virginia Region)

สิ่งที่จะทำในขั้นตอนนี้
- ตรวจสอบสถานะของ Replication
- ตั้งค่า Launch Template ที่จะ Migration โดย MGN

  • ล็อกอิน AWS Management Console ไปที่ N. Virginia Region
  • ไปที่ MGN Console
  • ไปที่ Source servers
  • จะเห็นตามภาพด้านล่างว่ามี Source server ปรากฏขึ้นอยู่ นี่คือ Windows server ของเราที่อยู่ที่ Ohio Region

ต่อไปเราจะไปตั้งค่า EC2 instance ที่ถูกสร้างขึ้นให้มีขนาดเล็กลง เพื่อที่จะลดค่าใช้จ่ายที่จะเกิดขึ้นกันครับ(Default จะถูกตั้งค่าไว้ที่ c5.large)

  • ให้เราคลิกไปที่ Source Server ที่ถูกสร้างขึ้น

  • เปิดแถบ Launch Settings แล้วกด Edit

  • ตั้งค่า Instance type right sizing ให้เป็น Off แล้วกด Save Setting

  • กลับมาที่ EC2 Launch Template ให้เราทำการกด Modify

  • กด Modify

  • ตั้งชื่อ Template ว่า mgn

  • เลือก Instance type เป็น t2.medium

  • เปิดแถบ Advance Network Configuration แล้วตั้งค่าในหัวข้อ Auto-assign public IP ให้เป็น Enable
  • กด Create template version

  • กด View launch templates

ทำการตั้งค่า launch template ที่เราสร้างขึ้นเมื่อครู่ให้เป็น Default version

  • เลือก launch template ที่เราสร้างขึ้น
  • กด Actions
  • กด Set default version

  • เลือก template version ที่เราสร้างขึ้น(mgn)
  • กด Set default version

กลับไปดูที่ Launch settings จะเห็นว่า instance type และ Public IP ถูกเปลี่ยนค่าตามที่เราตั้งไว้แล้ว

ขั้นตอนที่ 4: ทำการ migration Test

สิ่งที่จะทำในขั้นตอนนี้
- สร้าง Test Server จาก MGN
- ตรวจสอบ Test Server

  • ล็อกอิน AWS Management Console ไปที่ N. Virginia Region
  • ไปที่ MGN Console
  • เลือก Source servers
  • เลือก Source server ที่ถูกสร้างขึ้น

ตรวจสอบสถานะ Replication progress ว่าเสร็จแล้วหรือยัง
หากขึ้นว่า Initial replication finished หมายความว่าเสร็จแล้ว

ตรวจสอบว่าในหัวข้อ Next actions เป็น Launch test instance แล้วหรือยัง

  • หากเป็น Launch test instance ให้กด Test and Cutover แล้วกด Launch test instance

  • กด Launch

รอจนขึ้นว่า Launched (ใช้เวลาค่อนข้างนาน)

  • กด View in EC2 console

คราวนี้จะเห็นว่าเราได้ Clone EC2 เสร็จเรียบร้อยแล้ว
เราจะลองเข้าใช้งาน EC2 ดูกันครับ

  • ทำการ Copy Public IPv4 address

  • แล้วนำไปเปิดใน Browser

หากเปิดได้ตามภาพด้านล่างคือ OK
หากไม่ได้ให้ลองทำการตรวจสอบ Security Group ของ EC2 เพื่อดูว่ามีการเปิด Port HTTP(80) อยู่หรือไม่

Note: ในขั้นตอนนี้หากเป็นการ Migration ของจริง คือการทดสอบ Migration Test แล้วทำการตรวจสอบการทำงานภายในว่าสามารถใช้งานได้ครบสมบูรณ์หรือไม่

  • หากการตรวจสอบสำเร็จด้วยดี ให้ทำการกด Test and Cutover → Mark as "Ready for cutover"

  • กด Continue

ขั้นตอนที่ 5: ทำการ migration ของจริง

สิ่งที่จะทำในขั้นตอนนี้
- สร้าง production server จาก MGN
- ตรวจสอบ production server
- หยุดการ Replication

ตรวจสอบหัวข้อใน Next action = Launch cutover instance
ตรวจสอบหัวข้อใน Replication progress = Initial replication finished

  • กดปุ่ม Test and Cutover ด้านขวาบน
  • กด `Launch cutover instances

  • กด Launch หมายเหตุ: ห้ามขึ้น error Failed to launch cutover.... ให้รอสักครู่แล้วทำขั้นตอนนี้อีกครั้ง

เมิ่อรอสักครู่
Launch status = Launched
First boot: Succeeded

  • ให้เรากด View in EC2 console

  • ทำการ Copy Public IPv4 address

  • แล้วนำไปเปิดใน Browser

หากเปิดได้ตามภาพด้านล่าง เราตรวจสอบการใช้งานแล้วไม่พบอะไรผิดปกติคือ migration สำเร็จครับ

ขั้นตอนที่ 5.1: การหยุด Replication

  • กด Test and Cutover
  • กด Finalize Cutover

  • กด Finalize

ต่อไปเป็นวิธีการ Archived ครับ

  • กด Actions
  • กด Mark as Archived

  • กด Archive

ลบ Resource ที่สร้างขึ้น

ฝั่ง N. Virginia Region

Terminate instance ที่เราสร้างขึ้น

ฝั่ง Ohio Region

Delete CloudFormaiton Stack ที่เราสร้างขึ้น

ฝั่ง Global

Delete user ที่เราสร้างขึ้น

สรุปสั้นๆ

บทความนี้อาจจะยาวหน่อยเพราะภาพเยอะ แต่เนื้อหาจริงๆ เรียบง่ายมาก แค่ทำการ install MGN Agent ใส่ใน Server ทที่เราจะทำการย้าย แล้วก็กดปุ่มไม่กี่ปุ่มใน AWS ก็ย้ายเสร็จแล้ว
แต่ที่เราทดลองในบทความนี้เป็นตัวอย่าง Server เปล่าๆที่ไม่มีอะไร สำหรับงานจริง ที่มีขนาดใหญ่ หรือซับซ้อน ต้องลองมาดูอีกทีว่าใช้ MGN ได้ไหม

บทความอ้างอิง