[Update] การใช้งาน Amazon Data Firehose ร่วมกับ Amazon S3
สิ่งที่ต้องมี
※มี S3 Bucket ที่สร้างไว้สำหรับใช้เป็นพื้นที่ในการเก็บข้อมูลเพื่อนำมาแสดงใน Amazon Data Firehose เตรียมไว้แล้ว
ครั้งนี้จะใช้ชื่อ S3 Bucket ดังนี้
・Bucket name: tinnakorn-test-s3
(ครั้งนี้สร้างไว้ใน Region Singapore
)
สามารถดูตัวอย่างได้ที่ลิงก์ด้านล่างนี้
การสร้าง Buckets ใน Amazon S3
แผนภาพโครงสร้าง
สร้าง Amazon Data Firehose
ครั้งนี้จะดำเนินการใน Region Singapore
ให้ค้นหาและคลิก Amazon Data Firehose
แล้วคลิก Create Firehose stream
แล้วจะตั้งค่าดังนี้
Choose source and destination
・Source: Direct PUT
・Destination: Amazon S3
(หลังจากเลือกนี้แล้ว หัวข้อ "Firehose stream name" จะแสดงขึ้นมาด้านล่างอัตโนมัติ)
Firehose stream name
・Firehose stream name: tinnakorn-test-firehose
ต่อไปหัวข้อ Destination settings
คลิก Browse
แล้วเลือก S3 bucket เช่น tinnakorn-test-s3
(เลือก S3 bucket ที่สร้างก่อนหน้านี้)
แล้วเลื่อนลงมาด้านล่างที่หัวข้อ Buffer hints, compression, file extension and encryption แล้วคลิกเพื่อขยายฟังก์ชันการตั้งค่าต่างๆด้านล่าง โดยครั้งนี้จะตั้งค่า "Buffer interval: 60
seconds" แล้วคลิก Create Firehose stream
ที่ด้านล่างสุด
รอ Create สักครู่ แล้วจะแสดงหน้าจอแบบนี้
เริ่มทดสอบการใช้งาน
การบวนการทำงานมีดังนี้
คลิกหัวข้อ Test with demo data เพื่อขยายฟังก์ชันต่างๆด้านล่าง แล้วจะแสดงหน้าจอแบบนี้
โดยในหน้านี้จะประกอบด้วยข้อมูลที่ใช้ในการทดสอบระบบ เช่น สคริปต์ที่ใช้ในการทดสอบก็จะมีลักษณะแบบนี้
{
"TICKER_SYMBOL": "QXZ",
"SECTOR": "HEALTHCARE",
"CHANGE": -0.05,
"PRICE": 84.51
}
แล้วคลิก Start sending demo data
ปุ่มก็จะเปลี่ยนเป็น Sending demo data
ก็ให้รอประมาณ 2-3 นาที แล้วข้อมูลจะถูกส่งไปยัง Amazon S3 ซึ่งเป็นการทดสอบระบบการใช้งาน
หลังจากผ่านไป 2-3 นาที ให้คลิก Stop sending demo data
เพื่อหยุดส่งข้อมูลไปยัง S3 ได้เลย
ต่อไปให้เข้าไปดูใน S3 Bucket ที่เราสร้าง ถ้าระบบทำงานถูกต้องจะมีโฟลเดอร์วันที่และไฟล์อยู่ใน Bucket ซึ่งไฟล์เหล่านี้จะถูกสร้างอัตโนมัติจากการทำงานของ Firehose ตอนที่เราคลิก "Start sending demo data"
แล้วถ้าเราเข้าไปยังไฟล์ลึกที่สุดก็จะเจอกับข้อมูลที่ระบบ Firehose ส่งมาที่ S3 Bucket นี้ โดยระยะเวลาการส่งนั้นคือทุกๆ 1 นาที ตามที่เราตั้งค่า Buffer interval ในตอนที่สร้าง Amazon Data Firehose ซึ่งจะสังเกตได้จากคอลัมน์ Last modified
ทีนี้ให้ติ๊ก ✅️
แล้วคลิก Download
ไฟล์ลงอุปกรณ์ของเรา
แล้วเปิดไฟล์เพื่อดูข้อมูลที่อยู่ในไฟล์เหล่านี้ ก็จะเห็นฟอร์มข้อมูลที่เหมือนกันกับโค้ดในหัวข้อ Test with demo data ก่อนหน้านี้
เมื่อถึงส่วนนี้ก็เป็นการจบในส่วนของการทดสอบระบบแล้ว ถ้าเราทำตามขั้นตอนและมีผลลัพธ์ตรงกับบทความนี้ แสดงว่าตอนนี้เราสามารถใช้งาน Firehose ร่วมกับ S3 ได้แล้ว
ลบ Resource
หากเราไม่ต้องการใช้งานแล้วก็ควรจะลบ Resource เพื่อประหยัดค่าใช้จ่ายโดยดูวิธีการลบในหัวข้อนี้ได้เลย
- Amazon Data Firehose
- Firehose stream
- Identity and Access Management (IAM)
- Roles
- Policies
- Amazon S3
- Buckets
- CloudWatch
- Log groups
ลบ Firehose stream ใน Amazon Data Firehose
เข้ามาที่หน้าจอบริการ "Amazon Data Firehose > Firehose streams" ของเรา แล้วคลิก Delete Firehose stream
แล้วยืนยันการลบตามคำแนะนำ
ลบ Identity and Access Management (IAM)
ลบ Roles
เข้ามาที่หน้าจอบริการ "Identity and Access Management (IAM) > Roles" ของเรา เนื่องจาก Role นี้ถูกสร้างโดยอัตโนมัติในขณะที่สร้าง Firehose stream โดยจะมีชื่อว่า KinesisFirehoseServiceRole-xxxxxx-ap-southeast-1-xxxxxx
แล้วคลิก Delete
แล้วยืนยันการลบตามคำแนะนำ
ลบ Policies
เข้ามาที่หน้าจอบริการ "Identity and Access Management (IAM) > Policies" ของเรา เนื่องจาก Policy นี้ถูกสร้างโดยอัตโนมัติในขณะที่สร้าง Firehose stream โดยจะมีชื่อว่า KinesisFirehoseServicePolicy-[your_firehose_name]-ap-southeast-1
แล้วคลิก Delete
แล้วยืนยันการลบตามคำแนะนำ
ลบ Bucket ใน Amazon S3
เข้ามาที่หน้าจอบริการ "Amazon S3 > Buckets" แล้วค้นหาและติ๊ก Bucket
ของเรา แล้วคลิก Empty
แล้วป้อน permanently delete
ตามคำแนะนำ และคลิก Empty
(หากมีข้อมูลเหลืออยู่ใน Bucket จะไม่สามารถลบได้)
เมื่อดำเนินการ Empty เสร็จแล้ว ให้ติ๊ก Bucket
ของเราอีกครั้ง แล้วคลิก Delete
แล้วยืนยันการลบโดยป้อนชื่อ Bucket ของเราตามคำแนะนำ แล้วคลิก Delete
ลบ CloudWatch
เข้ามาที่หน้าจอบริการ [CloudWatch > Logs > Log groups] แล้วค้นหาและลบ Log groups ตามรายการในตารางด้านล่างนี้ โดย [เลือกติ๊ก ✅️ Log group ที่จะลบ > คลิก Actions > Delete log group(s)]
Log groups |
---|
/aws/kinesisfirehose/[firehose_name] |
เพียงเท่านี้ก็สามารถลบ Resource ที่ไม่ต้องการได้ทั้งหมดแล้ว
เพียงเท่านี้ก็จบการสาธิตการใช้งาน Firehose ร่วมกับ S3 แล้วครับ
สรุป
สำหรับเนื้อหาในบทความนี้ ผมหวังเป็นอย่างยิ่งว่าจะมีประโยชน์ต่อผู้ที่สนใจและอยากศึกษาเกี่ยวกับการใช้งาน Firehose และ S3 นะครับ แล้วพบกันใหม่ในบทความต่อๆ ไปครับ