์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Android
- ์คํธ๋ฆผ๋ฆฟ
- Streamlit๊ธฐ์ด
- Flutter
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์น๋์๋ณด๋ ๊ธฐ์ด
- Pandas
- ์๋ฐ๊ณต๋ถ
- java
- ์คํธ๋ฆผ๋ฆฟ ๊ธฐ๋ณธ
- ์๋ฐ์ด๋ณด
- ์น๋์๋ณด๋ ์ ์
- ํ๋ค์ค
- MySQL
- db
- ์๋๋ก์ด๋ ์คํ๋์ค
- ์๋ฐ๊ธฐ์ด
- ํ๋ค์ค๊ณต๋ถ
- ์๋ฐ์คํฌ๋ฆฝํธ
- serverless
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ
- ์๋ฐ
- ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ
- ์๋ฐํ๋ก๊ทธ๋๋ฐ
- streamlit
- ํ์ด์ฌ๊ณต๋ถ
- Streamlit๊ธฐ๋ณธ
- RESTful API
- ํ์ด์ฌ
- JavaScript
- 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] Lambda - Serverless ํ๋ ์์ํฌ ์ค์น
1. npm ์ค์น ๋ณ๋ค๋ฅธ ์ค์ ์์ด Next ๋ง์ ๋๋ฅด๋ฉฐ ์ค์น๋ฅผ ์๋ฃํ๋ค. https://nodejs.org/en/download Download | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 2. Serverless ํ๋ ์์ํฌ ์ค์น
ruriruriya.tistory.com
๊ทธ๋ฆฌ๊ณ AWS IAM Credentials ์ ์ ์์ฑ๋ ๋์ด ์์ด์ผ ํ๋ค.
https://ruriruriya.tistory.com/114
[Serverless] AWS IAM Credentials ์ ์ ์์ฑ
1. AWS์ IAM์์ ์ ์ ์์ฑ AWS IAM ์ ์ํด์ ์ผ์ชฝ [์์ธ์ค ๊ด๋ฆฌ]-[์ฌ์ฉ์] ์์ ์ด๋๋ฏผ ๊ถํ ๋ง๊ณ , ์๋์ ๊ฐ์ด ํ๋์ฉ ์ ํํด์ ์ ์ ๊ถํ์ ์ค์ ํ๋ค. ์๋ ์ ์ฑ ๋ค์ ๋ชจ๋ ์ ํ ํ ๋ค์์ ๋๋ฅธ๋ค.
ruriruriya.tistory.com
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์ ์ฃผ์๋ก ํ ์คํธ ํด๋ณด๋ฉด ์ ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.