ลองใช้ AWS Application Migration Service(MGN) ย้าย Windows Server ขึ้น AWS
บทความนี้ดัดแปลงมาจาก 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 แล้วหรือยัง
รอจนขึ้นว่า Launched
(ใช้เวลาค่อนข้างนาน)
คราวนี้จะเห็นว่าเราได้ Clone EC2 เสร็จเรียบร้อยแล้ว
เราจะลองเข้าใช้งาน EC2 ดูกันครับ
หากเปิดได้ตามภาพด้านล่างคือ OK
หากไม่ได้ให้ลองทำการตรวจสอบ Security Group ของ EC2 เพื่อดูว่ามีการเปิด Port HTTP(80) อยู่หรือไม่
Note: ในขั้นตอนนี้หากเป็นการ Migration ของจริง คือการทดสอบ Migration Test แล้วทำการตรวจสอบการทำงานภายในว่าสามารถใช้งานได้ครบสมบูรณ์หรือไม่
ขั้นตอนที่ 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
หากเปิดได้ตามภาพด้านล่าง เราตรวจสอบการใช้งานแล้วไม่พบอะไรผิดปกติคือ migration สำเร็จครับ
ขั้นตอนที่ 5.1: การหยุด Replication
ต่อไปเป็นวิธีการ Archived ครับ
ลบ Resource ที่สร้างขึ้น
ฝั่ง N. Virginia Region
Terminate instance ที่เราสร้างขึ้น
ฝั่ง Ohio Region
Delete CloudFormaiton Stack ที่เราสร้างขึ้น
ฝั่ง Global
Delete user ที่เราสร้างขึ้น
สรุปสั้นๆ
บทความนี้อาจจะยาวหน่อยเพราะภาพเยอะ แต่เนื้อหาจริงๆ เรียบง่ายมาก แค่ทำการ install MGN Agent ใส่ใน Server ทที่เราจะทำการย้าย แล้วก็กดปุ่มไม่กี่ปุ่มใน AWS ก็ย้ายเสร็จแล้ว
แต่ที่เราทดลองในบทความนี้เป็นตัวอย่าง Server เปล่าๆที่ไม่มีอะไร สำหรับงานจริง ที่มีขนาดใหญ่ หรือซับซ้อน ต้องลองมาดูอีกทีว่าใช้ MGN ได้ไหม
บทความอ้างอิง
- Application Migration Service(MGN) ハンズオン :: Application Migration Service(MGN) ハンズオン (ภาษาญี่ปุ่น)
- AWS Hands on lab - AWS MGN - Replicate server from one region to another - YouTube (ภาษาอังกฤษ)
- AWS CloudFormation คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS | DevelopersIO
- AWS IAM คืออะไร การแนะนำฟังก์ชันล่าสุดของ AWS | DevelopersIO
- วิธีสร้าง User เพื่อใช้ Login AWS Management Console | DevelopersIO