Prototype Deployment
การส่งออกโปรเจคไปใช้งานจริง ฉบับง่ายมากกกก!
by Uncle Engineer
AGENDA
Topic 1: มารู้จัก streamlit กันก่อนเลย
Topic 2: Deployโปรเจค ฉบับ ‘ฉีกซอง พร้อมปรุง กิน!’ ด้วย Streamlit Cloud
What We’ll Learn Today
Topic 3: Deployโปรเจค ฉบับ ‘มือโปรผ่าน AWS EC2’
Topic 4: Deployโปรเจค ฉบับ ‘cloud สาย dev’ ของ DigitalOcean
Topic 5: จดโดเมนเนมเปิดเป็นเว็บไซต์ให้บริการแก่สาธารณชน
Topic 1: มารู้จัก streamlit กันก่อนเลย
Steamlit คือ?
steamlit คือ ไลบรารี python ที่ใช้สร้าง Web application สาย Data ได้รวดเร็วที่สุด
เพียงแค่เขียน Python เป็น
ก็เพียงพอสำหรับการสร้าง
โปรเจค Streamlit แล้ว! ลุย..
ติดตั้ง steamlit + สร้างไฟล์ app.py
pip install streamlit
*** ในบทที่ 8 แนะนำให้ใช้ Python official แทนการใช้ผ่าน Jupyter เพราะตอน deploy ขึ้น Server จะไม่มี Jupyter ให้ใช้งาน
เริ่มเขียนโปรแกรม app.py
import streamlit as st
import pandas as pd
df = pd.DataFrame({
'first column': [1, 2, 3, 4],
'second column': [10, 20, 30, 40]
})
st.write("Here's our first table:")
st.write(df)
run app.py
python -m streamlit run app.py
หรือ
streamlit run app.py
โปรเจค streamlit แรกพร้อมใช้งาน!
พล็อตกราฟเส้นด้วย line_chart
import streamlit as st
import numpy as np
import pandas as pd
chart_data = pd.DataFrame(
np.random.randn(20, 3),
columns=['a', 'b', 'c'])
st.line_chart(chart_data)
ผลลัพธ์ line_chart
สร้าง app เกี่ยวกับแผนที่
import streamlit as st
import numpy as np
import pandas as pd
map_data = pd.DataFrame(
np.random.randn(1000, 2) / [50, 50] + [13.76514, 100.53829],
columns=['lat', 'lon'])
st.map(map_data)
สร้าง app เกี่ยวกับแผนที่
Topic 2: Deployโปรเจค ฉบับ ‘ฉีกซอง พร้อมปรุง กิน!’ ด้วย Streamlit Cloud
อัพโหลดไฟล์ขึ้น github
เตรียมพร้อมไฟล์ app.py
Sign in ด้วย google / github
จำเป็นต้อง Authorize ด้วย github
สร้างแอพใหม่
สร้าง App ใหม่เพื่อเริ่มต้นโปรเจค
> New app
> Connect to Github
กรอกรายละเอียด
รอสักครู่
จะดำเนินการเองอัตโนมัติ
สำเร็จ!
ตั้งค่าการแชร์
Topic 3: Deployโปรเจค ฉบับ ‘มือโปรผ่าน AWS EC2’
EC2 คือ?
AWS EC2 คือ Elastic Compute Cloud หรือ Virtual Server ที่รันอยู่บนคลาวด์ สามารถปรับเปลี่ยนสเปคได้ตลอดเวลา
อธิบายให้เห็นภาพชัดๆ คือ EC2 เหมือน Server ทั่วไป ที่สามารถติดตั้ง OS สำหรับให้บริการเว็บไซต์หรือใช้รันโปรแกรมได้ เพียงแค่เช่าใช้บริการตามที่เราใช้งาน Pay โดยไม่ต้องลงทุนซื้อ Hardware เองเหมือน Server
การใช้งาน EC2
1 - ลงทะเบียน aws.amazon.com
2- สร้าง EC2 Instance
3- ใช้ซอฟแวร์ SSH (Secure Shell) เช่น PuTTY หรือ คำสั่ง ssh ของ mac ในการพิมพ์คำสั่งควบคุม EC2
4- ใช้ซอฟแวร์ประเภท FTP ในการอัพโหลด/ดาวโหลดไฟล์ขึ้น EC2
*** การเข้าถึง EC2 จะใช้ private key ในการเข้าถึง
1 . ลงทะเบียน aws.amazon.com
** ก่อนเริ่มต้นใช้งาน EC2 ต้องผูกบัตรเครดิตเพื่อชำระค่าบริการด้วย
2- สร้าง EC2 Instance
2.1 ตั้งค่าโปรเจค เลือก OS Image
2.2 ตั้งค่าสเป็ค Cloud Server
*** สเปค Cloud Server สามารถปรับเปลี่ยนได้ตลอด นี่คือคุณสมบัติหนึ่งที่ Cloud Server ต่างจาก Server ทั่วไปที่ต้องเปลี่ยนฮาร์ดแวร์
2.3 สร้าง private key เพื่อใช้เข้าถึง EC2
*** mac ให้เลือก .pem
ดูคลิปนี้เพิ่มเติม https://www.youtube.com/watch?v=eVqWVGE-LcQ
2.4 เตรียม IPv4 address ในการเข้าถึง EC2
3- ใช้ซอฟแวร์ SSH (Secure Shell) ใน
การพิมพ์คำสั่งควบคุม EC2
3- ใช้ซอฟแวร์ SSH (Secure Shell) ใน
การพิมพ์คำสั่งควบคุม EC2
4- คำสั่ง linux
Topic 4: Deployโปรเจค ฉบับ ‘cloud สาย dev’ ของ DigitalOcean
Topic 5: จดโดเมนเนมเปิดเป็นเว็บไซต์ให้บริการแก่สาธารณชน
1- ค้นหา Domain name ที่ต้องการ
2- confirm order & pay
3- Manage Domain name
4- AWS : ค้นหา Service: Route 53
5- เตรียม Nameservers
6- Namecheap.com: กรอก Nameservers
7- create record เพื่อลิ้งค์กับ Instance
7.1 สร้าง record เว็บไซต์
7.2 สร้าง record เว็บไซต์ www
เว็บไซต์ถูกอัพโหลดพร้อมใช้งานเรียบร้อยแล้ว
THANK YOU