์ฐธ์กฐ ์ํคํ ์ฒ ์์

๋น์ฉ์ ๋ฏผ๊ฐํ๊ณ ์์ฐ์ ๊ธฐ์ค์ผ๋ก ํ๊ฒฝ์ ์ ์ดํด์ผ ํ ๊ฒฝ์ฐ, ์์ฐ ์๋ฆผ์ ๋ฐ๋ฅธ ๋น์ฉ ๊ด๋ฆฌ ์๋ต์ ์๋ํํ๊ธฐ ์ํด ํ๋ก๊ทธ๋๋งคํฑ ์์ฐ ์๋ฆผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฐ ์๋ฆผ์ Pub/Sub ์ฃผ์ ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ฐ๋์ฉ ์ํฐํ๋ผ์ด์ฆ ๋ฉ์์ง ์ค์ฌ ๋ฏธ๋ค์จ์ด์ ํ์ฅ์ฑ, ์ ์ฐ์ฑ, ์์ ์ฑ์ ํ์ฉํ์ฌ Cloud Billing ์์ฐ์ ์ค์๊ฐ ์ํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด ๋ฌธ์์๋ ๋น์ฉ ๊ด๋ฆฌ ์๋ํ๋ฅผ ์ํด Cloud Run ํจ์์ ์์ฐ ์๋ฆผ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ์์์ ๋จ๊ณ๋ณ ์๋ด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์์ฐ ์๋ฆผ ์ค์
์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ์์ฐ์ ๋ํ Pub/Sub ์ฃผ์ ๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ๊ฒ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ๋ก๊ทธ๋๋งคํฑ ์์ฐ ์๋ฆผ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์์ฐ ์๋ฆผ์ ์ฌ์ฉ ์ค์ ํ ํ์๋ ๋ค์์ ๊ธฐ๋กํด ๋์ธ์.
- Pub/Sub ์ฃผ์ : ์์ฐ์ ๋ํด ๊ตฌ์ฑ๋ ์๋ฆผ ์๋ํฌ์ธํธ์ ๋๋ค.
- ์์ฐ ID: ๋ชจ๋ ์๋ฆผ์ ํฌํจ๋ ์์ฐ์ ๊ณ ์ ID์ ๋๋ค. ์๋ฆผ ๊ด๋ฆฌ์์ ์์ฐ์ ์์ฐ ID๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค ์ด ID๋ Pub/Sub ์ฃผ์ ๋ฅผ ์ด ์์ฐ์ ์ฐ๊ฒฐ์ ์ ํํ ํ์ ํ์๋ฉ๋๋ค.
์๋ฆผ ์์ ๋๊ธฐ
๋ค์ ๋จ๊ณ๋ Pub/Sub ์ฃผ์ ๋ฅผ ๊ตฌ๋ ํ์ฌ ์๋ฆผ์ ์์ ๋๊ธฐํ๋ ๊ฒ์ ๋๋ค. ๊ตฌ๋ ์๊ฐ ์๋ ๊ฒฝ์ฐ, Pub/Sub์ด ๊ฒ์๋ ๋ฉ์์ง๋ฅผ ์ญ์ ํ์ฌ, ๊ฐ๋ฐ์๊ฐ ๋์ค์ ์ด๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค.
์ฃผ์ ๊ตฌ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ง๋ง ์ด ์์์์๋ Cloud Run ํจ์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Cloud Run ํจ์ ๋ง๋ค๊ธฐ
์ Cloud Run ํจ์๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
Google Cloud ์ฝ์์์ Cloud Run ํจ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํจ์ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํ๊ณ ํด๋น ์์ฐ์ ์ ํฉํ ์ด๋ฆ์ ํจ์์ ์ง์ ํฉ๋๋ค.
ํธ๋ฆฌ๊ฑฐ์์ Pub/Sub ์ฃผ์ ๋ฅผ ์ ํํฉ๋๋ค.
์์ฐ์ ๊ตฌ์ฑํ ์ฃผ์ ๋ฅผ ์ ํํฉ๋๋ค.
ํจ์๋ฅผ ์คํํ๊ธฐ ์ํ ์์ค ์ฝ๋ ๋ฐ ์ข ์์ฑ์ ์ ๊ณตํฉ๋๋ค.
์คํํ ํจ์๊ฐ ์ฌ๋ฐ๋ฅธ ํจ์ ์ด๋ฆ์ผ๋ก ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.
Cloud Run ํจ์ ์ค๋ช
์๋ฆผ์ผ๋ก ์ํํ๋ ค๋ ์์ ์ Cloud Run ํจ์์ ์ง์ ํ๊ธฐ ์ํด์๋ ์ธ๋ผ์ธ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ํ์ผ์ ์ ๋ก๋ํ ์ ์์ต๋๋ค. ์ฝ๋๊ฐ ์์ ํ ์๋ฆผ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋ฆผ ํ์์ ์ฐธ์กฐํ์ธ์.
์๋ฅผ ๋ค์ด ํจ์๋ฅผ ํ์ฉํด ์์ฐ ์๋ฆผ์ผ๋ก ํธ๋ฆฌ๊ฑฐ๋ ๋ ์์ ๋ Pub/Sub ์๋ฆผ, ์์ฑ, ๋ฐ์ดํฐ๋ฅผ ๋ก๊น ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Pub/Sub ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
Cloud Run ํจ์ ์ด๋ฒคํธ ๋ณด๊ธฐ
Cloud Run ํจ์๋ฅผ ์ ์ฅํ ํ์๋ ๋ก๊ทธ ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ๋ก๊น ๋ ์์ฐ ์๋ฆผ์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ํจ์ ํธ์ถ ๋ก๊ทธ๊ฐ ํ์๋ฉ๋๋ค.
Cloud Run ํจ์ ํ ์คํธ
์๋ฆผ์ด Pub/Sub์ผ๋ก ์ ์ก๋๊ณ ๊ตฌ๋ ์์๊ฒ ๋ฉ์์ง๊ฐ ์์ ๋ฉ๋๋ค. ์ํ ์๋ฆผ์ ํ ์คํธํ์ฌ ํจ์๊ฐ ์์๋๋ก ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด ์ด ๊ฐ์ฒด๋ฅผ ๋ฉ์์ง ๋ณธ๋ฌธ์ผ๋ก ์ฌ์ฉํ์ฌ Pub/Sub์ ๋ฉ์์ง๋ฅผ ๊ฒ์ํฉ๋๋ค.
{ "budgetDisplayName": "name-of-budget", "alertThresholdExceeded": 1.0, "costAmount": 100.01, "costIntervalStart": "2019-01-01T00:00:00Z", "budgetAmount": 100.00, "budgetAmountType": "SPECIFIED_AMOUNT", "currencyCode": "USD" }
๊ฒฐ์ ๊ณ์ ID์ ๊ฐ์ ๋ฉ์์ง ์์ฑ์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ ์ฒด ์๋ฆผ ํ์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Slack์ ์๋ฆผ ๋ณด๋ด๊ธฐ
ํนํ ์์ฐ์ด ์ค์ํ๊ณ ์๊ฐ์ ๋ฏผ๊ฐํ ๊ฒฝ์ฐ, ์ต์ ํด๋ผ์ฐ๋ ๋น์ฉ์ ํ์ธํ๊ธฐ ์ํด ํญ์ ์ด๋ฉ์ผ๋ง ์ฌ์ฉํ๋ ๊ฒ์ ์ต์์ ๋ฐฉ๋ฒ์ด ์๋ ์ ์์ต๋๋ค. ์๋ฆผ์ ์ฌ์ฉํ๋ฉด ์์ฐ ๋ฉ์์ง๋ฅผ ๋ค๋ฅธ ๋งค์ฒด๋ก ์ ๋ฌํ ์ ์์ต๋๋ค.
์ด ์์์๋ ์์ฐ ์๋ฆผ์ Slack์ผ๋ก ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด Cloud Billing์ด ์์ฐ ์๋ฆผ์ ๊ฒ์ํ ๋๋ง๋ค Cloud Run ํจ์๊ฐ ๋ด์ ์ฌ์ฉํด์ ๋ด ์์ ๊ณต๊ฐ์ Slack ์ฑ๋์ ๋ฉ์์ง๋ฅผ ๊ฒ์ํฉ๋๋ค.
Slack ์ฑ๋ ๋ฐ ๊ถํ ์ค์
์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ Slack API ํธ์ถ์ ์ฌ์ฉ๋๋ Slack ์์ ๊ณต๊ฐ ๋ฐ ๋ด ์ฌ์ฉ์ ํ ํฐ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. https://api.slack.com/apps์์ API ํ ํฐ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Slack ์ฌ์ดํธ์์ ๋ด ์ฌ์ฉ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Cloud Run ํจ์ ์์ฑ
Cloud Run ํจ์ ๋ง๋ค๊ธฐ์ ๋จ๊ณ์ ๋ฐ๋ผ ์ ํจ์๋ฅผ ๋ง๋ญ๋๋ค. ์์ฐ์ ์ฌ์ฉํ๋๋ก ์ค์ ๋ ๊ฒ๊ณผ ๋์ผํ Pub/Sub ์ฃผ์ ๋ก ํธ๋ฆฌ๊ฑฐ๊ฐ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.
์ข ์ ํญ๋ชฉ์ ์ถ๊ฐํฉ๋๋ค.
Node.js
๋ค์์
package.json
์ ๋ณต์ฌํฉ๋๋ค.Python
๋ค์์
requirements.txt
์ ๋ณต์ฌํฉ๋๋ค.Slack API๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ๋ค์ ์์๋ฅผ ์ฌ์ฉํ์ฌ Slack ์ฑํ ์ฑ๋์ ์์ฐ ์๋ฆผ์ ๊ฒ์ํ์ธ์.
๋ค์ Slack API postMessage ๋งค๊ฐ๋ณ์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.
- ๋ด ์ฌ์ฉ์ OAuth ์ก์ธ์ค ํ ํฐ
- ์ฑ๋ ์ด๋ฆ
์์ ์ฝ๋:
Node.js
Python
์ด์ Cloud Run ํจ์๋ฅผ ํ ์คํธํ์ฌ Slack์ ํ์๋ ๋ฉ์์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ฌ์ฉ ์ค์ง๋ฅผ ์ํ ๊ฒฐ์ ์ํ ์ค์ (์ฌ์ฉ ์ค์ง)
์ด ์์์๋ Cloud Billing์ ์ฌ์ฉ ์ค์งํ์ฌ ํ๋ก์ ํธ์ ๋น์ฉ ์ํ์ ์ค์ ํ๊ณ ์ฌ์ฉ์ ์ค์งํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ํ๋ก์ ํธ์์ ๊ฒฐ์ ๋ฅผ ์ฌ์ฉ ์ค์งํ๋ฉด ๋ฌด๋ฃ ๋ฑ๊ธ ์๋น์ค๋ฅผ ํฌํจํ ํ๋ก์ ํธ์ ๋ชจ๋ Google Cloud ์๋น์ค๊ฐ ์ข ๋ฃ๋ฉ๋๋ค.
๊ฒฐ์ ๋ฅผ ์ฌ์ฉ ์ค์งํ๋ ์ด์
Google Cloud์ ์ง์ถํ ์ ์๋ ๊ธ์ก์ด ์ ํ์ ์ด์ด์ ๋น์ฉ ์ํ์ ์ค์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ๋ ํ์, ์ฐ๊ตฌ์ ๋๋ ์๋๋ฐ์ค ํ๊ฒฝ์์ ์์ ํ๋ ๊ฐ๋ฐ์์๊ฒ์ ์ผ๋ฐ์ ์ ๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ ์์ฐ ํ๋์ ๋๋ฌํ ๋ ์ง์ถ์ ๋ฉ์ถ๊ณ ๋ชจ๋ Google Cloud ์๋น์ค ๋ฐ ์ฌ์ฉ์ ์ค์งํด์ผ ํ ์ ์์ต๋๋ค.
์ด ์์์์๋ Cloud Billing์ ์์ ํ๊ฒ ์ฌ์ฉ ์ค์งํ๊ธฐ ์ํ ๋นํ๋ก๋์ ํ๋ก์ ํธ๋ก acme-backend-dev๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ์์ ์์ ์ ์์ํ๊ธฐ ์ ์ ๋ค์์ ์ํํ๋์ง ํ์ธํฉ๋๋ค.
Cloud Billing API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ํ๋ก์ ํธ์ ๋ํด Cloud Billing์ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด Cloud Run ํจ์๊ฐ Cloud Billing API๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค.
์์ฐ์ ์ค์ ํ์ฌ ํ๋ก์ ํธ ๋น์ฉ์ ๋ชจ๋ํฐ๋งํ๊ณ ์์ฐ ์๋ฆผ์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
Cloud Run ํจ์ ์์ฑ
๊ทธ๋ฐ ๋ค์ Cloud Billing API๋ฅผ ํธ์ถํ๋๋ก Cloud Run ํจ์๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด Cloud Run ํจ์๊ฐ ์์ ํ๋ก์ ํธ์ธ acme-backend-dev์ ๋ํด Cloud Billing์ ์ฌ์ฉ ์ค์งํ ์ ์์ต๋๋ค.
Cloud Run ํจ์ ๋ง๋ค๊ธฐ์ ๋จ๊ณ์ ๋ฐ๋ผ ์ ํจ์๋ฅผ ๋ง๋ญ๋๋ค. ์์ฐ์ ์ฌ์ฉํ๋๋ก ์ค์ ๋ ๊ฒ๊ณผ ๋์ผํ Pub/Sub ์ฃผ์ ๋ก ํธ๋ฆฌ๊ฑฐ๊ฐ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.
๋ค์ ์ข ์ ํญ๋ชฉ์ ์ถ๊ฐํฉ๋๋ค.
Node.js
๋ค์์
package.json
์ ๋ณต์ฌํฉ๋๋ค.Python
๋ค์์
requirements.txt
์ ๋ณต์ฌํฉ๋๋ค.๋ค์ ์ฝ๋๋ฅผ Cloud Run ํจ์์ ๋ณต์ฌํฉ๋๋ค.
์คํํ ํจ์๋ฅผ
stopBilling
(๋ ธ๋) ๋๋stop_billing
(Python)๋ก ์ค์ ํฉ๋๋ค.๋ฐํ์์ ๋ฐ๋ผ
GOOGLE_CLOUD_PROJECT
ํ๊ฒฝ ๋ณ์๊ฐ ์๋์ผ๋ก ์ค์ ๋ ์ ์์ต๋๋ค. ์๋์ผ๋ก ์ค์ ๋ ํ๊ฒฝ ๋ณ์ ๋ชฉ๋ก์ ๊ฒํ ํ๊ณ Cloud Billing์ ์ ํ(์ฌ์ฉ ์ค์ง)ํ๋ ค๋ ํ๋ก์ ํธ์GOOGLE_CLOUD_PROJECT
๋ณ์๋ฅผ ์๋์ผ๋ก ์ค์ ํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค.
Node.js
Python
์๋น์ค ๊ณ์ ๊ถํ ๊ตฌ์ฑ
Cloud Run ํจ์๋ ์๋์ผ๋ก ์์ฑ๋ ์๋น์ค ๊ณ์ ์ผ๋ก ์คํ๋ฉ๋๋ค. ์๋น์ค ๊ณ์ ์ด ๊ฒฐ์ ๋ฅผ ์ฌ์ฉ ์ค์งํ ์ ์๋๋ก ๊ฒฐ์ ๊ด๋ฆฌ์์ ๊ฐ์ ์ฌ๋ฐ๋ฅธ ๊ถํ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ์๋น์ค ๊ณ์ ์ ์๋ณํ๊ธฐ ์ํด์๋ Cloud Run ํจ์ ์ธ๋ถ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค. ์๋น์ค ๊ณ์ ์ ํ์ด์ง ์๋์ ๋์ด๋ฉ๋๋ค.
Google Cloud ์ฝ์์ ๊ฒฐ์ ํ์ด์ง์์ ๊ฒฐ์ ๊ด๋ฆฌ์ ๊ถํ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์๋น์ค ๊ณ์ ์ ๊ฒฐ์ ๊ณ์ ๊ด๋ฆฌ์ ๊ถํ์ ๋ถ์ฌํ๋ ค๋ฉด ์๋น์ค ๊ณ์ ์ด๋ฆ์ ์ ํํฉ๋๋ค.
Cloud Billing์ด ์ฌ์ฉ ์ค์ง๋์๋์ง ํ์ธํฉ๋๋ค.
์์ฐ์ด ์๋ฆผ์ ์ ์กํ๋ฉด ์ง์ ๋ ํ๋ก์ ํธ์ ๋ ์ด์ Cloud Billing ๊ณ์ ์ด ํฌํจ๋์ง ์์ต๋๋ค.๋ค. ํจ์๋ฅผ ํ ์คํธํ๋ ค๋ฉด ์์ ํ ์คํธ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ์ฌ ์ํ ๋ฉ์์ง๋ฅผ ๊ฒ์ํฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ๋ ์ด์ Cloud Billing ๊ณ์ ์ ํ์๋์ง ์์ผ๋ฉฐ, ๋์ผํ ํ๋ก์ ํธ์ ์๋ ๊ฒฝ์ฐ Cloud Run ํจ์๋ฅผ ํฌํจํ์ฌ ํ๋ก์ ํธ์ ๋ฆฌ์์ค๊ฐ ์ฌ์ฉ ์ค์ง๋ฉ๋๋ค.
Google Cloud ์ฝ์์์ ํ๋ก์ ํธ์ ๋ํด Cloud Billing์ ์๋์ผ๋ก ๋ค์ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
์ ํ์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์ด
์ด์ ์์์ ์ค๋ช ๋ ๋๋ก Cloud Billing ์ํ ์ค์ (์ฌ์ฉ ์ค์ง)์ ๊ฒฐ๊ณผ๋ ๋ ๊ฐ์ง๋ฟ์ด๊ณ ๋์ดํฌ ์ ์์ต๋๋ค. ์ฆ ํ๋ก์ ํธ๋ ์ฌ์ฉ ์ค์ ๋๊ฑฐ๋ ์ฌ์ฉ ์ค์ง๋ฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ์ฌ์ฉ ์ค์ง๋๋ฉด ๋ชจ๋ ์๋น์ค๊ฐ ์ค์ง๋๊ณ ๋ชจ๋ ๋ฆฌ์์ค๊ฐ ๊ฒฐ๊ณผ์ ์ผ๋ก ์ญ์ ๋ฉ๋๋ค.
๋ณด๋ค ์ธ๋ฐํ ๋์์ด ํ์ํ ๊ฒฝ์ฐ์๋ ์ ํ์ ์ผ๋ก ๋ฆฌ์์ค๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ถ Compute Engine ๋ฆฌ์์ค๋ฅผ ์ค์งํ๊ณ Cloud Storage๋ฅผ ๊ทธ๋๋ก ๋๋ ค๋ฉด ์ ํ์ ์ผ๋ก ์ฌ์ฉ๋์ ์ ์ดํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ๊ฒฝ์ ์์ ํ ์ฌ์ฉ ์ค์งํ์ง ์์๋ ์๊ฐ๋น ๋น์ฉ์ ์ค์ผ ์ ์์ต๋๋ค.
์ํ๋ ๋๋ก ์ ์ฑ ์ ์ธ๋ฐํ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด ์์์์ ํ๋ก์ ํธ๋ ๋ง์ ์์ Compute Engine ๊ฐ์ ๋จธ์ ์ด ํฌํจ๋ ์ฐ๊ตฌ๋ฅผ ์คํ ์ค์ด๋ฉฐ, Cloud Storage์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด Cloud Run ํจ์ ์์๋ ๋ชจ๋ Compute Engine ์ธ์คํด์ค๋ฅผ ์ข ๋ฃํ์ง๋ง, ์์ฐ์ด ์ด๊ณผ๋ ํ์๋ ์ ์ฅ๋ ๊ฒฐ๊ณผ์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
Cloud Run ํจ์ ์์ฑ
Cloud Run ํจ์ ๋ง๋ค๊ธฐ์ ๋จ๊ณ์ ๋ฐ๋ผ ์ ํจ์๋ฅผ ๋ง๋ญ๋๋ค. ์์ฐ์ ์ฌ์ฉํ๋๋ก ์ค์ ๋ ๊ฒ๊ณผ ๋์ผํ Pub/Sub ์ฃผ์ ๋ก ํธ๋ฆฌ๊ฑฐ๊ฐ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.
์ฌ์ฉ๋ ์ค์ง๋ฅผ ์ํ ๊ฒฐ์ ์ํ ์ค์ (์ฌ์ฉ ์ค์ง)์ ์ค๋ช ๋ ์ข ์ ํญ๋ชฉ์ ์ถ๊ฐํ๋์ง ํ์ธํฉ๋๋ค.
๋ค์ ์ฝ๋๋ฅผ Cloud Run ํจ์์ ๋ณต์ฌํฉ๋๋ค.
์คํํ ํจ์๋ฅผ
limitUse
(๋ ธ๋) ๋๋limit_use
(Python)๋ก ์ค์ ํฉ๋๋ค.๋ฐํ์์ ๋ฐ๋ผ
GCP_PROJECT
ํ๊ฒฝ ๋ณ์๊ฐ ์๋์ผ๋ก ์ค์ ๋ ์ ์์ต๋๋ค. ์๋์ผ๋ก ์ค์ ๋ ํ๊ฒฝ ๋ณ์ ๋ชฉ๋ก์ ๊ฒํ ํ๊ณ ๊ฐ์ ๋จธ์ ์ ์คํํ๋ ํ๋ก์ ํธ์GCP_PROJECT
๋ณ์๋ฅผ ์๋์ผ๋ก ์ค์ ํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค.ZONE ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค. ์ด ์ํ์ ๋ํด ์ธ์คํด์ค๊ฐ ์ค์ง๋๋ ์์ญ์ ๋๋ค.
Node.js
Python
์๋น์ค ๊ณ์ ๊ถํ ๊ตฌ์ฑ
- Cloud Run ํจ์๋ ์๋์ผ๋ก ์์ฑ๋ ์๋น์ค ๊ณ์ ์ผ๋ก ์คํ๋ฉ๋๋ค. ์ฌ์ฉ๋์ ์ ์ดํ๋ ค๋ฉด ํ๋ก์ ํธ์์ ๋ณ๊ฒฝ์ด ํ์ํ ๋ชจ๋ ์๋น์ค์ ์๋น์ค ๊ณ์ ๊ถํ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค.
- ์ฌ๋ฐ๋ฅธ ์๋น์ค ๊ณ์ ์ ์๋ณํ๊ธฐ ์ํด Cloud Run ํจ์์ ์ธ๋ถ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค. ์๋น์ค ๊ณ์ ์ ํ์ด์ง ์๋์ ๋์ด๋ฉ๋๋ค.
- Google Cloud ์ฝ์์์ IAM ํ์ด์ง๋ก ์ด๋ํ์ฌ ์ ์ ํ ๊ถํ์ ์ค์ ํฉ๋๋ค.
IAM ํ์ด์ง๋ก ์ด๋
์ธ์คํด์ค๊ฐ ์ค์ง๋์๋์ง ํ์ธ
์์ฐ์ด ์๋ฆผ์ ์ ์กํ๋ฉด Compute Engine ๊ฐ์ ๋จธ์ ์ด ์ค์ง๋ฉ๋๋ค.
ํจ์๋ฅผ ํ ์คํธํ๋ ค๋ฉด ์์ ํ ์คํธ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ์ฌ ์ํ ๋ฉ์์ง๋ฅผ ๊ฒ์ํฉ๋๋ค. ํจ์๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์คํ๋์๋์ง ํ์ธํ๋ ค๋ฉด Google Cloud ์ฝ์์์ Compute Engine ๊ฐ์ ๋จธ์ ์ ํ์ธํฉ๋๋ค.