AWS Thai Blog

Onboarding Paths สำหรับ Amazon Q Developer Pro

หลายคนน่าจะได้ลองใช้ Amazon Q Developer ไปบ้างแล้ว บางคนเริ่มอยากจะขยับขึ้นไปใช้ Pro subscription บทความนี้จะเป็นการแนะนำ options ในการ onboard Amazon Q Developer Pro ให้กับตัวเองและองค์กร ซึ่งการ onboarding แบ่งได้เป็น 2 paths ดังนี้

  • Path 1: Individual Developer (Personal Account/Builder ID)
    เหมาะสำหรับผู้ใช้งานทั่วไป ที่ลองใช้ free tier ด้วย AWS Builder ID แล้ว และต้องการใช้งานมากกว่า quota ที่กำหนดไว้ใน free tier
    หากยังไม่มี AWS Builder ID สามารถดูวิธีการสมัครได้ที่นี่
  • Path 2: Organization Setup (IAM Identity Center)
    เหมาะสำหรับผู้ใช้งานที่ต้องการใช้ Amazon Q Developer อย่างเต็มประสิทธิภาพ เช่น ใช้งาน Amazon Q Developer Pro ในหน้า AWS Console ได้ และสามารถทำ customization ให้ Amazon Q Developer แนะนำสิ่งต่างๆ ให้สอดคล้องกับ governance และ best practices ที่ admin กำหนด

หลังจากที่เลือก path ที่เหมาะกับตัวเองแล้ว ต่อไปเรามาดูการเตรียมการสำหรับการ onboarding ในแต่ละแบบกันบ้าง

Path 1: Individual Developer (Personal Account/Builder ID)

Prerequisites

  • AWS Builder ID เพื่อใช้ในการ login Amazon Q Developer Pro
  • AWS Account ที่ผูกกับบัตรเครดิตไว้แล้ว
  • เลือก AWS region ที่จะสร้าง Amazon Q Developer Pro

Plan Your Onboarding

AWS Builder ID - Free vs Pro Tier

ใน path นี้จะมีแค่ deployment option เดียว นั่นคือ subscribe AWS Builder ID ของเราเข้ากับ Amazon Q Developer Pro profile ใน AWS Account เพื่อให้สามารถคิดค่าใช้จ่ายได้
โดยค่าใช้จ่ายจะคิดเป็นรายเดือนตามจำนวน AWS Builder ID ที่ subscribe ใน AWS Account นั้นๆ

How to Set Up

Limitations ของการใช้ AWS Builder ID 

  • ไม่สามารถใช้งานความสามารถในส่วน customizations ที่ทำให้ Amazon Q Developer สามารถช่วยเหลือในส่วนของ internal libraries, เทคนิคต่างๆ ที่เป็น internal รวมถึง coding style ที่กำหนดไว้
  • ไม่สามารถใช้งาน Amazon Q Developer Pro ในหน้า AWS Console ได้

Path 2: Organization Setup (IAM Identity Center)

Prerequisites

  • AWS Account ที่ผูกกับบัตรเครดิต หรือผูกกับ Payment Partner แล้ว
  • เลือก AWS region ที่จะสร้าง Amazon Q Developer Pro

Deployment Options

การสร้าง Amazon Q Developer Pro Profile ใน path นี้ทำได้หลายแบบตามความต้องการและความเหมาะสม โดย AWS เสนอไว้ 4 options ด้วยกัน
แต่ก่อนที่เราจะไปเลือก option เรามาเตรียมข้อมูลกันก่อนว่า AWS environment ของเราตอนนี้เป็นแบบไหน เพื่อที่จะได้นำไปเป็นข้อมูลในการตัดสินใจเลือก option ต่อไป

  • Q: Account Structure เป็นอย่างไร ?
    • Standalone Account: เป็น account เดี่ยวๆ ไม่มี AWS Organization
    • AWS Organization: เป็น multiple accounts ที่มี 1 management account (payer account) และหลายๆ member accounts (linked accounts)
  • Q: IAM Identity Center (IdC) Instance เป็นแบบไหน ?
    • Account Instance: เป็น IdC ที่สร้างที่ member accounts ใน structure แบบ AWS Organization หรือที่ standalone account ใน structure แบบ Standalone Account
    • Organization Instance: เป็น IdC ที่สร้างที่ management account ใน structure แบบ AWS Organization
  • Q: การ manage users และ settings ใน Amazon Q Developer Pro profile ใน structure แบบ AWS Organization อยากให้เป็นแบบไหน ?
    • Centralized: manage ที่ account เดียวที่ management account เท่านั้น
    • Distributed: manage users ได้ที่ member account แต่ settings สำคัญๆ ต้องทำที่ management account

เมื่อเราตอบคำถามเหล่านี้ได้แล้ว มาดู Decision Tree Diagram กันว่าเราควรเลือก option ไหน

Decision Tree Diagram for Amazon Q Developer Pro Profile

ตัวอย่างการตัดสินใจใน Decision Tree

  • หากเราเป็น Standalone Account แสดงว่าไม่ได้ set up AWS Organization จะใช้ Deployment Option 1
  • หากเรามี AWS Organization แล้ว แต่อยากลองใช้งาน หรือไม่มี IAM Identity Center ที่เป็น Organization Instance จะใช้ Deployment Option 3
  • แต่หากเราใช้ IAM Identity Center ที่เป็น Organization Instance ในการ manage user เข้า AWS Accounts อยู่แล้ว แนะนำให้ไป Deployment Option 2 เลย
  • แต่หากเรามีข้อจำกัดอะไรบางอย่างทำให้เราต้อง manage ที่ management account จะใช้ Deployment Option 4 แต่วิธีนี้ไม่สอดคล้องกับ best practices ของ AWS ที่แนะนำว่า routine tasks (ในที่นี้คือ manage subscription) ไม่ควรทำที่ management account แต่ถ้าพิจารณาแล้วและมีมาตรการป้องกันที่ดีอยู่แล้วก็สามารถทำได้

เมื่อเราได้ deployment option แล้ว มาดูกันต่อว่าแต่ละ option มีวิธีการ set up และมีข้อดีข้อเสียอย่างไร

OPTION 1: Deploy in Standalone Account (EASIEST)

OPTION 1: Deploy in Standalone Account

ใน deployment option นี้ เราจะต้องสร้าง IdC แบบ Account Instance ขึ้นมาก่อน จากนั้นทำการสร้าง users ใน IdC นี้ โดย users ในส่วนนี้จะเป็นคนละส่วนกับ IAM users ที่มีอยู่แล้วใน AWS account แล้วจึงสร้าง Amazon Q Developer Pro profile ขึ้นมา โดยให้ link กับ IdC ที่เราเพิ่งสร้างขึ้นมา สุดท้ายทำการ subscribe users ใน IdC เข้าไปยัง profile เท่านี้ user ก็จะสามารถใช้งาน Amazon Q Developer Pro ได้แล้ว

ส่วนการคิดค่าใช้จ่าย ก็จะคิดตามจำนวน subscription ของ users ในแต่ละเดือน

How to Set Up

ข้อดี ข้อด้อย
  • เหมาะกับการทดลองใช้งาน หรือ demo
  • สามารถใช้ features ได้มากกว่าใช้ AWS Builder ID
  • การ set up ทำได้อย่างรวดเร็ว
  • ขาด feature ที่เป็นแบบ organization เนื่องจาก IdC เป็นแบบ account instance
  • ไม่สามารถใช้ Pro subscription ในหน้า AWS Console ได้
  • User ใน IdC เป็นคนละส่วนกับ IAM ทำให้ไม่สามารถ assign IAM policy ได้

OPTION 2: Deploy in Management + Member Accounts (RECOMMEND)

Deployment option นี้เป็นวิธีที่แนะนำให้ใช้งาน เนื่องจากรองรับทุก feature ของ Amazon Q Developer Pro profile และสอดคล้องกับ best practices ของ AWS ในการเข้าใช้งาน management account เนื่องจากเรามี IdC แบบ Organization Instance อยู่แล้ว สิ่งที่เราต้องทำคือ สร้าง Amazon Q Developer Pro profile ที่ management account โดยให้ link กับ IdC ดังกล่าว จากนั้น enable profile sharing เพื่อ share profile ไปยัง member accounts ต่อมาที่ member account ให้สร้าง Amazon Q Developer Pro profile เพิ่มเติม ที่ region เดียวกับ management account อีก 1 profile และ link กับ IdC แบบ Organization Instance จาก management account หลังจากนั้นเราจะสามารถ manage subscription ทั้งหมดได้ที่ member account โดยไม่ต้องเข้าไปที่ management account เลย

การ manage subscription ที่ member account เราสามารถปรับได้หลายแบบตามความต้องการ เช่น

  • Centralized: เราอาจเลือก member account มา 1 account เพื่อใช้ในการ manage subscription ทั้งหมด
  • Distributed: หากเราอยากแบ่งการ manage เป็นทีม เช่น developer และ operation ก็สามารถเลือก account มา 2 accounts เพื่อให้ แต่ละทีม manage subscription ได้ด้วยตัวเอง

ส่วนการคิดค่าใช้จ่าย เนื่องจากเราใช้ IdC เดียวกันทั้ง AWS Organization ไม่ว่า user จะมี subscription ในหลายๆ profile ที่อยู่ต่าง account กัน ก็จะมีค่าใช้จ่ายแค่ subscription เดียว ( ไม่เกิด double-billed)

How to Set Up

 ข้อดี  ข้อด้อย
  • รองรับการใช้งานทุก feature ของ Amazon Q Developer Pro
  • สามารถใช้งาน Pro subscription ใน AWS Console ได้
  • สอดคล้องกับ best practices ของ AWS ในการใช้งาน management account
  • การ set up ต้องผ่านการอนุมัติจากองค์กร
  • ต้องการ admin ทั้งที่ management account และ member account ในการ set up
  • ใช้งาน Pro subscription ใน AWS Console ได้เฉพาะ AWS account ที่เรามี subscription อยู่ 

OPTION 3: Deploy in Member Account Only

OPTION 3: Deploy in Member Account Only

Deployment ใน option นี้จะเหมือนการเอา option 1: Standalone Account มาใส่ไว้ใน member account ใน AWS Organization เนื่องจากเราไม่ได้ใช้ IdC ในการ manage user เพื่อเข้ามาใช้งาน AWS account ดังนั้นเราต้องเลือก member account ขึ้นมา 1 account เพื่อสร้าง IdC แบบ account instance และ Amazon Q Developer Pro profile จากนั้น create users ใน IdC และ subscribe users เข้ามาที่ profile จะเห็นว่าทุกกิจกรรมจะเกิดขึ้นที่ member account เท่านั้น

จากภาพด้านบน จะเห็นว่าหากเรามี IdC และ Amazon Q Developer Pro profile 2 ชุด และเรา create user คนเดียวกันเข้าไปทั้ง 2 IdC (ในที่นี้คือ User#1.1 และ User#1.3) และสร้าง subscription ให้ user นั้นด้วย ตอนคิดเงินจะถูก charge 2 subscriptions เนื่องจากถือว่าเป็นคนละ identity กัน

Note
หากที่ management account มี IdC อยู่ และสร้างมาก่อน 15 พฤศจิกายน 2566 ต้องทำการอนุญาตให้มีการ create IdC แบบ account instance ที่ member account ก่อน จึงจะสามารถ create IdC ที่ member account ได้ โดยสามารถทำได้ดังนี้

How to Set Up

 ข้อดี  ข้อด้อย
  • สามารถ set up ได้รวดเร็ว เหมือน standalone account
  • ไม่ต้องผ่านการอนุมัติในระดับองค์กร เนื่องจากเป็น resources ใน account ของตัวเอง
  • การ manage subscription ทำที่ member account เอง
  • ขาด feature ที่เป็นแบบ organization เนื่องจาก IdC เป็นแบบ account instance
  • ไม่สามารถใช้ Pro subscription ในหน้า AWS Console ได้
  • มีโอกาสถูก charge ซ้ำหากไม่จัดการ manage user ให้ดี

OPTION 4: Deploy in Management Account Only

OPTION 4: Deploy in Management Account Only

Deployment option สุดท้าย เป็น option ที่สามารถทำได้ แต่จะไม่สอดคล้องกับ best practices ของ AWS เนื่องจากงานที่เป็น routine task ในที่นี้คือ manage Amazon Q Developer Pro subscription ไม่ควรต้องเข้ามาทำที่ management account หากต้องการ centralize การ manage subscription เท่านั้น สามารถเลือก Option 2: Deploy in Management + Member Accounts และเลือก member account มา 1 account เพื่อใช้ในการ manage subscription แทน แต่ถ้าหากต้องการให้ assign subscription ที่เดียว แล้วผู้ใช้งานสามารถใช้งาน Amazon Q Developer Pro บน AWS Console ได้ในทุกๆ member account ที่ ผู้ใช้งานมีสิทธิ์เข้าถึง ณ เวลานี้ต้องใช้ deployment option นี้ option เดียว

จากภาพด้านบน สิ่งที่ต้องทำคือ สร้าง Amazon Q Developer Pro profile ที่ management account และ link เข้ากับ IdC แบบ Organization Instance จากนั้นการ subscribe user เข้าไปยัง profile และการ manage subscription ทั้งหมด จะทำที่ management account ทั้งหมด

ในส่วนของค่าใช้จ่าย ก็จะคิดตามจำนวน subscription ที่ management account

How to Set Up

 ข้อดี  ข้อด้อย
  • รองรับการใช้งานทุก feature ของ Amazon Q Developer Pro
  • สามารถ manage subscription และ setting ต่างๆ ได้ในที่เดียว
  • สามารถใช้งาน Pro subscription ใน AWS Console ได้ในทุกๆ member account
  • ไม่สอดคล้องกับ best practices ในการ access management account ของ AWS
  • งาน routine task ต้องเข้ามาทำที่ management account
  • เปิดโอกาสให้เกิดความเสี่ยงทั้งด้าน security และ operations

Detailed Comparison Matrix

จาก Deployment Options ทั้ง 4 ที่ได้นำเสนอไป สามารถสรุปออกมาเป็น comparison metrix ได้ดังนี้

Factor Option 1: Standalone Option 2: Mgmt + Member Option 3: Member Only Option 4: Mgmt Only
Complexity Low High Medium Medium
Features Limited Full Limited Full
AWS Console Access No Yes No Yes
Best Practices Yes Yes Yes No
Scalability Low High Medium High
Setup Time Fast Slow Medium Medium
Coordination Required None High Low Medium

Conclusion

การเลือก onboarding path และ deployment option สำหรับ Amazon Q Developer Pro ขึ้นอยู่กับโครงสร้างและความต้องการขององค์กร หากเป็นนักพัฒนาส่วนบุคคลที่ต้องการใช้งานเบื้องต้น Path 1 (AWS Builder ID) จะเป็นทางเลือกที่เหมาะสม แต่หากต้องการใช้งานอย่างเต็มประสิทธิภาพในระดับองค์กร Path 2 (IAM Identity Center) จะให้ความสามารถที่ครบถ้วนมากกว่า
สำหรับ Path 2 (IAM Identity Center) แนะนำให้พิจารณา Deployment Option 2 (Deploy in Management + Member Accounts) เป็นอันดับแรก เนื่องจากสอดคล้องกับ best practices ของ AWS และรองรับ feature ครบถ้วน แต่ถ้าหากมีความต้องการให้ใช้งานสามารถใช้ Amazon Q Developer Pro บน AWS Console ได้ในทุกๆ member account ที่มีสิทธิ์เข้าถึง โดยการ assign subscription ที่เดียว Deployment Option 4 (Deploy in Management Account Only) ก็สามารถทำได้เช่นกัน

การวางแผนและเตรียมความพร้อมก่อนการ deploy เป็นสิ่งสำคัญ โดยต้องพิจารณาโครงสร้าง account, IAM Identity Center instance, และรูปแบบการจัดการที่ต้องการ เพื่อให้การใช้งาน Amazon Q Developer Pro เป็นไปอย่างมีประสิทธิภาพและปลอดภัยสูงสุด สำหรับข้อมูลเพิ่มเติม สามารถอ่านได้ที่ Amazon Q Developer User Guide