์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Flutter
- Streamlit๊ธฐ๋ณธ
- ํ์ด์ฌ๊ณต๋ถ
- ํ๋ค์ค
- serverless
- ์คํธ๋ฆผ๋ฆฟ
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ
- streamlit
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํ์ด์ฌ
- ์๋ฐํ๋ก๊ทธ๋๋ฐ
- ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ
- ์๋ฐ
- RESTful API
- ์๋ฐ๊ธฐ์ด
- ์๋๋ก์ด๋ ์คํ๋์ค
- ํ๋ค์ค๊ณต๋ถ
- Android
- ์คํธ๋ฆผ๋ฆฟ ๊ธฐ๋ณธ
- ์๋ฐ์คํฌ๋ฆฝํธ
- Streamlit๊ธฐ์ด
- java
- ์น๋์๋ณด๋ ์ ์
- ์๋ฐ๊ณต๋ถ
- ์๋ฐ์ด๋ณด
- ์น๋์๋ณด๋ ๊ธฐ์ด
- db
- JavaScript
- MySQL
- Pandas
- Today
- Total
ruriruriya
[Serverless] ์๋ฒ๋ฆฌ์ค ํ๋ ์์ํฌ ์๋ฒ ๋ฐฐํฌ(sls deploy) ๋ณธ๋ฌธ
[Serverless] ์๋ฒ๋ฆฌ์ค ํ๋ ์์ํฌ ์๋ฒ ๋ฐฐํฌ(sls deploy)
๋ฃจ๋ฆฌ์ผใ 2023. 12. 20. 17:14
์๋ฒ๋ฆฌ์ค๋ก ๋ง๋ API app์ serverless deploy๋ก ์๋ฒ ๋ฐฐํฌ๋ฅผ ํด๋ณด์ :)
1. ์ฌ์ ์์
์ฌ์ ์์ ์ seserverless ํ๋ ์ ์ํฌ๊ฐ ์ค์น๋์ด ์์ด์ผ ํ๋ค.
https://ruriruriya.tistory.com/106
๊ทธ๋ฆฌ๊ณ AWS IAM Credentials ์ ์ ์์ฑ๋ ๋์ด ์์ด์ผ ํ๋ค.
https://ruriruriya.tistory.com/114
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ ์ค๊ณ
- MySQL workbench์์ admin ๊ณ์ ์ผ๋ก ์คํค๋ง ์๋ก์ด ์ ์ ์์ฑํ๋ค.
use mysql;
create user 'new_user'@'%' identified by '1288';
grant all privileges on movie_db.* to 'movie_db_user'@'%';
- ํ ์ด๋ธ ์์ฑ ์์ ์ ํ๋ค.
* user ํ
์ด๋ธ์ password ๋ VARCHAR(300)์ผ๋ก ๋๋ํ ํ๋ค.
์ํธํ ํค๊ฐ ๊ธธ๊ธฐ ๋๋ฌธ์ ๋ชจ์๋ผ๋ฉด ์๋ฌ๊ฐ ๋ ์ ์๋ค.
3. cmd ์์ serverless API ํด๋ ์์ฑ
์์ค ํด๋ ๊ฒฝ๋ก cd๋ก ์ง์ ํ serverless ๋ช ๋ น์ด ์คํ
Flask -App ์ ํ
ํด๋ ์ด๋ฆ ์์ฑ ํ ๋๋จธ์ง [Skip] > n > no ์ ํ ๋
4. VSCODE์์ ๊ฐ์ํ๊ฒฝ ์ค์
- serverless.yml provider ํ์ด์ฌ ๋ฒ์ , ๋ฆฌ์ ๋ณ๊ฒฝ ๋๋ ์ถ๊ฐ
provider:
name: aws
runtime: python3.10
region: ap-northeast-2
5. ๋ก์ปฌ ํ ์คํธ
ํด๋ ์์ฑ ํ VSCODE๋ก ํด๋๋ฅผ ์ด์ด๋ณด๋ฉด ํ
์คํธํ ์ ์๋ app.py๊ฐ ๋ง๋ค์ด์ ธ ์๋ค.
์ธํฐํ๋ฆฌํฐ ์ ํ์ผ๋ก ๊ฐ์ํ๊ฒฝ์ ์ง์ ํ์ flask run ๋ช
๋ น์ด๋ก ํ
์คํธ ํด๋ณธ๋ค.
ํด๋น ํด๋์ค์ url์ ํ์ฉํด์ ํฌ์คํธ๋งจ์์ ํ ์คํธ๋ฅผ ํ ์ ์๋ค.
6. GitHub ์น์์ ์ repository ์์ฑ
- ReadMe, ์ธ์ด ์ ํ ๋ชจ๋ ํ์ง ๋ง ๊ฒ!
- Private๋ก ์์ฑ(์ํฌ๋ฆฟ ํค ๋ฑ ๋ณด์ ๋ฌธ์ )
7. VSCODE ํฐ๋ฏธ๋ git ๋ช ๋ น์ด ์คํ
- $ git init
- $ gir remote add origin [๊นํ๋ธ ๋ ํ์งํ ๋ฆฌ ์ฃผ์]
8. .gitignore ํ์ผ ์์ฑ
- .gitignore ํ์ผ์ node_modules/ ํด๋ ์
๋ก๋ ๋์ง ์๋๋ก ๋งจ ์์ ์ถ๊ฐ
(๊ธฐ์กด์ ํ๋ ํ๋ก์ ํธ ์์ ๋๋จธ์ง ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ๋ก ์ถ๊ฐ or github ์๋ก ๋ ํ์งํ ๋ฆฌ ๋ง๋ค๋ฉด ์๊ธฐ๋ .gitignore ์์ ์ฝ๋ ๋ด์ฉ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ ์ถ๊ฐ)
9. ํด๋ ๋ฐ key ๋ณด์ ํ์ผ ์์ฑ
API ์์ ํ resources ํด๋ ์์ฑ, config.py, mysql_connection.py, utils.py 4๊ฐ ํด๋ ๋ฐ ํ์ผ๋ค ๋ณต์ฌ(private ๋ก)
ํ ์คํธํ๋ app.py๋ ๋ณต์ฌ
10. ๋ฐ์คํฌํ ๊นํ๋ธ์์ add existing repository
commit ์ ๊ผญ .gitignore ์์ฑํด์ผ ํจ.
11. requirements.txt์ ์ค์นํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
flask-restful
mysql-connector-python
psycopg-binary
passlib
flask-jwt-extended
email-validator
Flask==1.1.4
Werkzeug==1.0.1
markupsafe==2.0.1
flask-restful
mysql-connector-python
psycopg-binary
passlib
flask-jwt-extended
email-validator
12. ํฐ๋ฏธ๋ ์ฐฝ์์ sls deploy ์คํ
13. ์ endpoint๋ก ํฌ์คํธ๋งจ ํ ์คํธ
endpoint์ ์ฃผ์๋ก ํ ์คํธ ํด๋ณด๋ฉด ์ ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.