Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
์ด ํ์ด์ง์์๋ Workforce Identity Federation์ ์ฌ์ฉํ์ฌ Cloud Composer ํ๊ฒฝ์ ๋ํ ์ฌ์ฉ์ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
Cloud Composer์ ์ง์ ID ์ ํด ์ ๋ณด
์ง์ ID ์ ํด๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ๋ถ ID ๊ณต๊ธ์ ์ฒด (IdP)์์ ์ง์, ํํธ๋, ๊ณ์ฝ์ ์ฒด์ ๊ฐ์ ์ฌ์ฉ์ ๊ทธ๋ฃน์ ๋ํด IAM์ ์ฌ์ฉํ์ฌ ์ง์์์ ์ธ์ฆํ๊ณ ์ก์ธ์ค๋ฅผ ์น์ธํ ์ ์์ผ๋ฏ๋ก ํด๋น ์ฌ์ฉ์๊ฐ Google Cloud ์๋น์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ง์ ID ์ ํด์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ง์ ID ์ ํด๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ง์ ID ์ ํด๊ฐ ํ๋ก์ ํธ์ ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ํ๊ฒฝ์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
- Google Cloud ์ฝ์์ Cloud Composer ํ์ด์ง
- Airflow UI
- Google Cloud CLI(Airflow CLI ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๋ฑ)
- Cloud Composer API
- Airflow REST API
์์ํ๊ธฐ ์ ์
๋ฒ์ 2.1.11 ๋ฐ Airflow ๋ฒ์ 2.4.3๋ถํฐ ์์ฑ๋ ๋ชจ๋ ์ Cloud Composer ํ๊ฒฝ์ Workforce Identity Federation์ ์ง์ํฉ๋๋ค. ์ง์ ID ์ ํด๋ฅผ ์ง์ํ๊ธฐ ์ํด ํ๊ฒฝ์ ํน์ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑํ ํ์๋ ์์ต๋๋ค.
๋ฒ์ 2.1.11 ๋ฐ Airflow ๋ฒ์ 2.4.3 ์ด์ ์ ์์ฑ๋์๊ณ ์ดํ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋๋ ํ๊ฒฝ์ ์ง์ ID ์ ํด๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ํ๊ฒฝ์์ ์ง์ ID ์ ํด๋ฅผ ์ง์ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ง์ ID ์ ํด์ ๋ํ Cloud Storage ์ ํ์ฌํญ์ด ํ๊ฒฝ์ ๋ฒํท์ ์ ์ฉ๋ฉ๋๋ค. ํนํ ์ธ๋ถ ID์์ DAG ๋ฐ ํ์ผ์ ์ด ๋ฒํท์ ์ ๋ก๋ํ ์ ์๊ฒ ํ๋ ค๋ฉด ํ๊ฒฝ ๋ฒํท์์ ๊ท ์ผํ ๋ฒํท ์์ค ์ก์ธ์ค๋ฅผ ์ฌ์ฉ ์ค์ ํด์ผ ํฉ๋๋ค.
Airflow์์ ์ ์ก๋ ์ด๋ฉ์ผ์๋ Google ๊ณ์ ์ Airflow UI URL๋ง ํฌํจ๋ฉ๋๋ค. ์ธ๋ถ ID๋ ์ธ๋ถ ID์ Airflow UI URL์ ํตํด์๋ง Airflow UI์ ์ก์ธ์คํ ์ ์์ผ๋ฏ๋ก ๋งํฌ๋ฅผ ์กฐ์ ํด์ผ ํฉ๋๋ค(์ธ๋ถ ID์ URL๋ก ๋ณ๊ฒฝ).
Workforce Identity Federation์ ์ฌ์ฉํ์ฌ ํ๊ฒฝ์ ๋ํ ์ก์ธ์ค ์ค์
์ด ์น์ ์์๋ Cloud Composer ํ๊ฒฝ์ ๋ํ ์ธ๋ถ ID ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋จ๊ณ๋ฅผ ์ค๋ช ํฉ๋๋ค.
ID ๊ณต๊ธ์ ์ฒด ๊ตฌ์ฑ
์ง์ ID ์ ํด ๊ตฌ์ฑ ๊ฐ์ด๋์ ๋ฐ๋ผ ID ๊ณต๊ธ์ ์ฒด์ ์ง์ ID ์ ํด๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์ธ๋ถ ID์ IAM ์ญํ ๋ถ์ฌ
Identity and Access Management์์ ์ธ๋ถ ID ์งํฉ์ IAM ์ญํ ์ ๋ถ์ฌํ์ฌ ์ธ๋ถ ID๊ฐ ํ๊ฒฝ์ ์ก์ธ์คํ๊ณ ์ํธ์์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
Cloud Composer ๊ด๋ จ ์ญํ ๋ชฉ๋ก์ ์ฌ์ฉ์์๊ฒ ์ญํ ๋ถ์ฌ๋ฅผ ์ฐธ์กฐํ์ธ์. ์๋ฅผ ๋ค์ด ํ๊ฒฝ ์ฌ์ฉ์ ๋ฐ ์คํ ๋ฆฌ์ง ๊ฐ์ฒด ๋ทฐ์ด(
composer.environmentAndStorageObjectViewer
) ์ญํ ์ ๋ถ์ฌ๋ฐ์ ์ฌ์ฉ์๋ ํ๊ฒฝ์ ๋ณด๊ณ Airflow UI์ ์ก์ธ์คํ๊ณ DAG UI์์ DAG๋ฅผ ๋ณด๊ณ ํธ๋ฆฌ๊ฑฐํ๋ฉฐ ํ๊ฒฝ ๋ฒํท์์ ๊ฐ์ฒด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.์ธ๋ถ ์ฌ์ฉ์์๊ฒ ์ด๋ฌํ ์ญํ ์ ํ ๋นํ๋ ๋ฐฉ๋ฒ์ ์ฃผ ๊ตฌ์ฑ์์ IAM ์ญํ ๋ถ์ฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
IAM ์ ์ฑ ์์ ์ธ๋ถ ID๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ IAM ์ ์ฑ ์์ ์ง์ ํ ์ฌ์ฉ์ ํํ์ ์ฐธ๊ณ ํ์ธ์.
์ ๊ท ์ฌ์ฉ์๊ฐ Airflow UI ์ก์ธ์ค ์ ์ด์์ ์ฌ๋ฐ๋ฅธ Airflow ์ญํ ์ ๋ฐ๋์ง ํ์ธ
Cloud Composer๋ Google ๊ณ์ ์ฌ์ฉ์์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ธ๋ถ ID์ Airflow ์ฌ์ฉ์๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ฉ์ผ ์ฃผ์ ๋์ ์ฃผ ๊ตฌ์ฑ์ ์๋ณ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ธ๋ถ ID๊ฐ Airflow UI์ ์ฒ์ ์ก์ธ์คํ๋ฉด Airflow ์ฌ์ฉ์๊ฐ ๊ธฐ๋ณธ ์ญํ ๋ก Airflow ์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด ์์คํ ์ ์๋์ผ๋ก ๋ฑ๋ก๋ฉ๋๋ค.
์ ์ฌ์ฉ์๊ฐ Airflow UI ์ก์ธ์ค ์ ์ด์์ ์ฌ๋ฐ๋ฅธ Airflow ์ญํ ์ ๋ฐ๋์ง ํ์ธํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์ต์ ์ ์ ํํ ์ ์์ต๋๋ค.
- ์ธ๋ถ ID๊ฐ Airflow UI์ ์ฒ์ ์ก์ธ์คํ ํ ๊ธฐ๋ณธ ์ญํ ์ ๋ฐ๋๋ก ํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ Airflow ๊ด๋ฆฌ์๊ฐ ์ด ์ญํ ์ ๋ค๋ฅธ ์ญํ ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์ด๋ฆ ๋ฐ ์ด๋ฉ์ผ ํ๋๊ฐ ์ฃผ ๊ตฌ์ฑ์ ์๋ณ์๋ก ์ค์ ๋ Airflow ์ฌ์ฉ์ ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ์ฌ ํ์ํ ์ญํ ์ด ์ค์ ๋ ์ธ๋ถ ID๋ฅผ ์ฌ์ ๋ฑ๋กํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ธ๋ถ ID์ ๊ธฐ๋ณธ ์ญํ ์ด ์๋ ๊ฐ๋ฐ์๊ฐ ํ ๋นํ๋ ์ญํ ์ด ์๊ฒ ๋ฉ๋๋ค.
ํ๊ฒฝ์์ ์ง์ ID ์ ํด๋ฅผ ์ง์ํ๋์ง ํ์ธ
ํ๊ฒฝ์์ Workforce Identity Federation์ ์ง์ํ๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ Google Cloud CLI ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค. ์ถ๋ ฅ์ URI๊ฐ ํ์๋๋ฉด ํ๊ฒฝ์์ ์ง์ ID ์ ํด๋ฅผ ์ง์ํ๋ ๊ฒ์ ๋๋ค.
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.airflowByoidUri)"
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
ENVIRONMENT_NAME
: ํ๊ฒฝ ์ด๋ฆLOCATION
: ํ๊ฒฝ์ด ์์นํ ๋ฆฌ์
์:
gcloud composer environments describe example-environment \
--location us-central1 \
--format="value(config.airflowByoidUri)"
Google Cloud ์ฝ์์์ Cloud Composer ํ์ด์ง์ ์ก์ธ์ค
Google Cloud ์ง์ ID ์ ํด ์ฝ์์์ Cloud Composer ํ์ด์ง์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
Google Cloud ์ง์ ID ์ ํด ์ฝ์์ Composer ํ์ด์ง์์ ํ๊ฒฝ, Cloud Composer ๋ก๊ทธ, ๋ชจ๋ํฐ๋ง, DAG UI๋ฅผ ๊ด๋ฆฌํ๋ UI์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ ํด ์ฝ์์ ๋ชจ๋ Airflow UI ๋งํฌ๋ ์ธ๋ถ ID์ Airflow UI ์ก์ธ์ค ํฌ์ธํธ๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
2.1.11 ์ด์ ๋ฒ์ ๋๋ Airflow 2.4.3 ์ด์ ๋ฒ์ ์ ํ๊ฒฝ์์๋ Airflow UI ๋งํฌ๊ฐ '์ฌ์ฉํ ์ ์์'์ผ๋ก ํ์๋ ์ ์์ต๋๋ค. ์ด๋ ํด๋น ํ๊ฒฝ์ด Airflow UI์์ Workforce Identity Federation ์ฌ์ฉ์๋ฅผ ์ง์ํ์ง ์์์ ์๋ฏธํฉ๋๋ค. ์ด ํ๊ฒฝ์ Airflow UI๋ Google ๊ณ์ ์ผ๋ก๋ง ์ก์ธ์คํ ์ ์์ต๋๋ค.
Airflow UI ์ก์ธ์ค
Cloud Composer ํ๊ฒฝ์๋ Airflow UI์ ๋ํ ๋ ๊ฐ์ URL์ด ์์ต๋๋ค. ๊ฐ๊ฐ Google ๊ณ์ ๊ณผ ์ธ๋ถ ID๋ฅผ ์ํ URL์ ๋๋ค. ์ธ๋ถ ID๋ ์ธ๋ถ ID URL์ ํตํด Airflow UI์ ์ก์ธ์คํด์ผ ํฉ๋๋ค.
์ธ๋ถ ID URL์
https://<UNIQUE_ID>.composer.byoid.googleusercontent.com
์ ๋๋ค.Google ๊ณ์ URL์
https://<UNIQUE_ID>.composer.googleusercontent.com
์ ๋๋ค.
์ธ๋ถ ID๋ก ์ธ์ฆ๋ ์ฌ์ฉ์๋ง ์ธ๋ถ ID๋ฅผ ์ํ URL์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ์ง ์์ ์ํ์์ ์ธ๋ถ ID์ URL์ ๋ฐฉ๋ฌธํ๋ฉด ๋จผ์ ์ธ์ฆ ํฌํธ๋ก ๋ฆฌ๋๋ ์ ๋์ด ์ง์ ํ ๊ณต๊ธ์ ์ฒด ์ด๋ฆ์ ์ง์ ํ ํ, ID ๊ณต๊ธ์๋ก ๋ฆฌ๋๋ ์ ๋์ด ๋ก๊ทธ์ธํ ๋ค์, ํ๊ฒฝ์ Airflow UI๋ก ๋ฆฌ๋๋ ์ ๋ฉ๋๋ค.
Google Cloud ์ฝ์์์ DAG UI์ ์ก์ธ์ค
DAG UI๋ ์ ํด ์ฝ์์ ์ผ๋ถ๋ก ์ธ๋ถ ID ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋ฉ๋๋ค. IAM ์ ์ฑ ์ผ๋ก ์ก์ธ์ค๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
์ ์ฒด ์ง์ ID ์ ํด๋ฅผ ์ง์ํ๋ ํ๊ฒฝ์ Airflow ์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค๋ ๊ณ ๋ ค๋๋ฉฐ ์ด๋ฅผ ์ฌ์ฉํด Airflow UI ์ก์ธ์ค ์ ์ด ์ฌ์ฉ์ ์ค๋ช ๋ ๋๋ก ์ญํ ์ ์ค์ ํ์ฌ ๊ฐ๋ณ ์ฌ์ฉ์์๊ฒ ํ์๋๋ DAG๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
Google Cloud CLI ์ก์ธ์ค
Google Cloud CLI๋ฅผ ํตํด ํ๊ฒฝ์ ์ก์ธ์คํ๋ ค๋ฉด ์ธ๋ถ ID์์ ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
- ์ธ๋ถ ID๋ฅผ ์ฌ์ฉํ์ฌ Google Cloud CLI์ ๋ก๊ทธ์ธํฉ๋๋ค.
gcloud composer environments
๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
Cloud Composer API ์ก์ธ์ค
Cloud Composer API๋ฅผ ์ธ๋ถ ID์ ํจ๊ป ์ฌ์ฉํ์ฌ OAuth ํ ํฐ๊ณผ ๊ฐ์ ์ง์๋๋ ์ธ์ฆ ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ Cloud Composer ํ๊ฒฝ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Airflow REST API ์ก์ธ์ค
Airflow REST API๋ OAuth ํ ํฐ๊ณผ ๊ฐ์ ์ง์๋๋ ์ธ์ฆ ๋ฐฉ๋ฒ์ผ๋ก ์ธ๋ถ ID ์๋ํฌ์ธํธ์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
ํ๊ฒฝ์ ์ธ๋ถ ID ์๋ํฌ์ธํธ URL์ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์ Google Cloud CLI ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.airflowByoidUri)"
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
ENVIRONMENT_NAME
: ํ๊ฒฝ ์ด๋ฆLOCATION
: ํ๊ฒฝ์ด ์์นํ ๋ฆฌ์
์:
gcloud composer environments describe example-environment \
--location us-central1 \
--format="value(config.airflowByoidUri)"
๋ค์ ๋จ๊ณ
- IAM์ผ๋ก ์ก์ธ์ค ์ ์ด
- Airflow UI ์ก์ธ์ค ์ ์ด ์ฌ์ฉ
- Airflow CLI ์ก์ธ์ค
- Airflow REST API ์ก์ธ์ค