มาทำ Static IP ให้ Lambda กันเถอะ

ก่อนอื่นต้องเล่าที่มาของปัญหาก่อน พอดีผมต้องไปต่อ API กับ บริการๆนึงซึ่งเขามีหลังบ้านให้แต่เราจะเรียกใช้ API เขาให้ใส่ Whitelist IP ซึ่งไม่สามารถใส่ Allow IP ทั้งหมดได้ ซึ่งผมก็รู้วิธีแรกแหละตั้ง Server เองเพื่อที่จะได้ Static IP แต่ผมคิดว่าไหนๆก็มาทางสาย Serverless แล้วยังต้องไปเสียเวลา Maintain เสียตังสร้าง Server อีกทำไมแค่ต่อ Service อันเดียว ผมเลยไปถามพี่คนนึง นามสมมุติ พี่หนึ่ง พี่ๆมีวิธีทำ Whitelist แบบไหนบ้างทำ Nat Gateway กับ ตั้ง Server เอง โอเครผมได้คำตอบแล้วแหละผมหวังคำตอบแรกนั้นแหละมาเข้าเรื่องกันดีกว่าครับ 5555

ถ้าใครยังไม่รู้จักตัว Lambda ไปทำความรู้จักกับมันก่อนได้ครับ Lambda คือ , วิธีสร้าง Lambda

Static IP คืออะไร ก็คือตรงๆเลย IP ที่ตั้งตายตัวส่วนใหญ่เอาไว้ให้ Domain ชี้มา และเอาทำ Whitelist IP เพื่อจะได้เข้าถึง Service ต่างๆที่ไม่ได้เปิดให้ใครก็ได้เข้าไปใช้

ก่อนจะไปขั้นตอนแรกมารู้จัก VPC ก่อน เป็นบริการของ AWS ที่เอาไว้ทำเรื่อง Network และสามารถกำหนดช่วง IP เองได้ด้วย ซึ่งเรื่อง IP การแบ่งต่างๆสามารถหาอ่านเพิ่มเติมเองได้เลยครับ

ขั้นแรกต้องสร้าง VPC ก่อน สามารถเข้าเมนู Service แล้วเข้าเลือก VPC แล้วเข้า Menu YOUR VPC แล้วกด Create VPC

ผมก็ทำการตั้งชื่อ Lambda_VPC และเลือกช่วง IP เป็น 10.0.0.0/16 จริงๆจะเอาเป็น/23 ก็ได้ เพราะผมจะแบ่งแค่ 2 Subnets

ต่อมาผมก็จะทำการสร้าง Subnets ผมจะสร้างเป็น Public กับ Private

ตอนนี้ผมก็สร้างเสร็จแล้ว

ต่อมาเราจะมทำการสร้าง Internet Gateways แล้วมันคืออะไรมันคือการที่จะให้ Network เราออกสู่โลกภายนอกได้

ต่อมาผมก็จะมาสร้าง Internet Gateways และทำแนบ VPC เข้าไป

เป็นอันสร้างเสร็จเรียบร้อย

ต่อมาเราจะทำการสร้าง Nat Gateway มันคือตัวที่จะมาสร้าง Static IP ให้เราแหละ มันจะทำให้ตัว subnet private ของเราออกสู่โลกภายนอกได้

หลังจากนั้นตั้งชื่อและทำการเลือก Subnets ที่เป็น Public

หลังจากนั้นเราก็จะได้ Nat Gateway และ Elastic IP address (Static IP) แต่ Elastic เหมือนเป็นการจองไว้ตลอดจนเราจะมาลบแหละ จริงๆถ้าตั้ง Server เวลาเรา ปิดแล้ว Start ใหม่ IP จะเปลี่ยน Elastic IP ก็คือตัวจอง Static IP ไม่ให้เปลี่ยนก็จะประมาณนี้

ต่อมาจะทำการ Route

ผมทำการสร้าง Lambda มา 2 อัน เป็น lambda_public และ lambda_private โดยผมจะให้ lambda_private ใช้ Nat และ lambda_public ใช้ Internet Gateway

อันนี้ผมทำการเชื่อม lambda_public เข้า Internet Gateway

ส่วน lambda_private ก็เลือก เป็น Nat Gateway ที่เราสร้างไว้

จากนั้นเข้าไปที่ Service EC2 และเข้า Menu Security Groups แล้วกดปุ่ม Create

จากนั้นก็เลือก VPC และตั้งชื่อและใส่ Description

เป็นอันเสร็จ

หลังจากนั้นมาที่ Lambda Function ของเรา แล้วไปที่ Config แล้วไป VPC ทำการ ADD VPC ที่เราสร้างไว้

ตอนนี้เราก็ต่อ Lambda ของเราก็มี Static IP แล้ว ก็นำไปเป็น whitelist ของ Service ต่างๆที่ต้องใช้ IP

*ถ้าใครสร้างไม่ได้ ก่อนจะ add vpc เข้า lambda ได้เราต้องมากำหนด permission ให้ตัว lambda ก่อนนะครับ coppy ด้านบนไปใส่ได้เลย เพราะบางทีเราไม่ได้เป็น Root User ครับเวลาทำงานเป็นทีม เราจะเป็นแค่ User แต่บางคนสร้างได้สำเร็จเลยก็เพราะเป็น Root User ครับ

เป็นแผนภาพที่เราจะได้หลังทำเสร็จเพราะเราสามารถกำหนด Whitelist IP ที่จะเข้าเราได้ด้วยไม่ใช่แค่ทำ Static IP เพื่อไปใช้ Services คนอื่นเพียงอย่างเดียว

เป็นยังไงกันบ้างครับก็จะมีอยู่หลาย Step อยู่เหมือนกันกว่าเราจะทำ Static IP ให้ ตัว Lambda ของเรา วันนี้ลาไปก่อนครับ ไว้ผมจะเขียนบทความออกมาเรื่อยๆนะครับ

( CR. ธำรงค์ ไชยวงค์ )

--

--

No responses yet