์ด ํ์ด์ง์์๋ gcloud
CLI๋ฅผ ์ฌ์ฉํ์ฌ SSH(๋๋ ๊ธฐํ ๋ชจ๋ TCP ํ๋กํ ์ฝ)๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ๋จธ์ ์์ ์ํฌ์คํ
์ด์
์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค.
Cloud Workstations๋ ํฐ๋์ ์ฌ์ฉํ์ฌ ์ํฌ์คํ
์ด์
์ ์ธํฐ๋ท์ ๊ณต๊ฐ์ ์ผ๋ก ๋
ธ์ถํ์ง ์๊ณ ๋ ๋ก์ปฌ ๋จธ์ ์ ํฌํธ์ ์ํฌ์คํ
์ด์
์ ํฌํธ ๊ฐ์ TCP ํธ๋ํฝ์ ์ ๋ฌํฉ๋๋ค. ์ฐ๊ฒฐ์ gcloud
CLI์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ํตํด ์ธ์ฆ๋๊ณ ๋์ ์ํฌ์คํ
์ด์
์ IAM ์ ์ฑ
์ ๋ฐ๋ผ ์น์ธ๋ฉ๋๋ค.
TCP ํฐ๋์ด ๋ก์ปฌ ํฌํธ์ ์ํฌ์คํ ์ด์ ์ฌ์ด์ ์ค์ ๋๋ฉด ์ด๋ฅผ ์ฌ์ฉํ์ฌ SSH ํด๋ผ์ด์ธํธ, curl ๋๋ TCP๋ฅผ ์ฌ์ฉํ๋ ๊ธฐํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํธ๋ํฝ์ ์ ๋ฌํ ์ ์์ต๋๋ค.
ํธ์๋ฅผ ์ํด Cloud Workstations๋ ๋จ์ผ gcloud
CLI ๋ช
๋ น์ด๋ก TCP ํฐ๋์ ์ค์ ํ๊ณ SSH ํด๋ผ์ด์ธํธ๋ฅผ ์คํํ๋ gcloud workstations ssh
๋ช
๋ น์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ค๋ฅธ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ gcloud workstations start-tcp-tunnel
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ TCP ํฐ๋์ ์ค์ ํ๊ณ ํฐ๋์ ์ฌ์ฉํ ์ ํ๋ฆฌ์ผ์ด์
(์:curl
)์ ๋ณ๋์ ํฐ๋์์ ์คํํฉ๋๋ค.
์์ํ๊ธฐ ์ ์
์์ง ์ฐ๊ฒฐํ ์ํฌ์คํ ์ด์ ์ด ์์ผ๋ฉด ์ํฌ์คํ ์ด์ ์ ์ค์ ํฉ๋๋ค.
Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
์ฐ๊ฒฐํ๋ ค๋ ์ํฌ์คํ ์ด์ ์ ๋ํ Cloud Workstations ์ฌ์ฉ์ IAM ์ญํ ์ด ์๋์ง ํ์ธํฉ๋๋ค.
SSH๋ฅผ ์ฌ์ฉํ์ฌ ์ํฌ์คํ ์ด์ ์ ์ฐ๊ฒฐ
์ํฌ์คํ
์ด์
์ ์์ ํ SSH ์ฐ๊ฒฐ์ ์ค์ ํ๋ ค๋ฉด TCP ํฐ๋์ ์์ํ๊ณ SSH ํด๋ผ์ด์ธํธ๋ฅผ ์คํํ๋ gcloud workstations ssh
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ช ๋ น์ด๋ฅผ ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐ ๋ฒํผ์ ๋ณต์ฌํ๋ ค๋ฉด
์ฝ๋ ์ํ ๋ณต์ฌ๋ฅผ ํด๋ฆญํ ํ ๋ช ๋ น์ด๋ฅผ ๋ก์ปฌ ํฐ๋ฏธ๋ ์ฐฝ์ ๋ถ์ฌ๋ฃ์ต๋๋ค.gcloud workstations ssh \
--project=PROJECT_ID \
--region=REGION \
--cluster=CLUSTER_NAME \
--config=CONFIG_NAME \
--port=WORKSTATION_PORT \
--local-host-port=localhost:LOCAL_PORT \
WORKSTATION_NAME
๋ค์ ๊ฐ์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: ์ํฌ์คํ ์ด์ ์ด ํฌํจ๋ ํ๋ก์ ํธ์ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค. ์๋ตํ๋ฉด ํ์ฌ ํ๋ก์ ํธ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.REGION
: ์ํฌ์คํ ์ด์ ํด๋ฌ์คํฐ๊ฐ ์๋ ๋ฆฌ์ ์ ๋๋ค(์:us-central1
).CLUSTER_NAME
: ์ํฌ์คํ ์ด์ ์ด ํฌํจ๋ ์ํฌ์คํ ์ด์ ํด๋ฌ์คํฐ์ ์ด๋ฆ์ ๋๋ค.CONFIG_NAME
: ์ด ์ํฌ์คํ ์ด์ ์ด ํฌํจ๋ ์ํฌ์คํ ์ด์ ๊ตฌ์ฑ์ ์ด๋ฆ์ ๋๋ค.WORKSTATION_PORT
(์ ํ์ฌํญ): ํธ๋ํฝ์ ์ ์กํ ์ํฌ์คํ ์ด์ ์ ํฌํธ์ ๋๋ค. ์๋ตํ ๊ฒฝ์ฐ ํธ๋ํฝ์ ํฌํธ22
๋ก ์ ์ก๋ฉ๋๋ค. ์ฌ์ ๊ตฌ์ฑ๋ ๋ชจ๋ Cloud Workstations ์ด๋ฏธ์ง์๋ ์ํฌ์คํ ์ด์ ํฌํธ22
์์ ์คํ๋๋ SSH ์๋ฒ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.LOCAL_PORT
(์ ํ์ฌํญ): ํธ๋ํฝ์ด ์ ์ก๋ localhost ํฌํธ์ ๋๋ค. ์ ํจํ ํฌํธ ๋ฒํธ๋1024
~65535
์ ๋๋ค.--local-host-port
ํ๋๊ทธ๋ฅผ ์๋ตํ๊ฑฐ๋0
ํฌํธ๋ฅผ ์ง์ ํ๋ฉด ์ฌ์ฉ๋์ง ์๋ ํฌํธ๊ฐ ์๋์ผ๋ก ์ ํ๋ฉ๋๋ค.WORKSTATION_NAME
: ์ํฌ์คํ ์ด์ ์ ์ด๋ฆ์ ๋๋ค.
์ ํ์ฌํญ: ํ๋๊ทธ์ ์์น๋ฅผ ๊ธฐ๋ณธ ssh
๊ตฌํ์ ์ ๋ฌํ๋ ค๋ฉด ๋ช
๋ น์ด์ ์ด์ค ๋์(--
) ๋ค์ ์ถ๊ฐํฉ๋๋ค.
TCP ํฐ๋์ ์ฌ์ฉํ์ฌ ์์์ TCP ํธ๋ํฝ์ ์ํฌ์คํ ์ด์ ์ผ๋ก ์ ๋ฌ
ssh
์ด์ธ์ TCP ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฉํ์ฌ ์ํฌ์คํ
์ด์
์ ์ฐ๊ฒฐํ๋ ค๋ฉด gcloud workstations start-tcp-tunnel
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ค์
gcloud
CLI ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ์ธ์ฆ๋ TCP ํฐ๋์ ๋ง๋ญ๋๋ค.๋ช ๋ น์ด๋ฅผ ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐ ๋ฒํผ์ ๋ณต์ฌํ๋ ค๋ฉด
์ฝ๋ ์ํ ๋ณต์ฌ๋ฅผ ํด๋ฆญํ ํ ๋ช ๋ น์ด๋ฅผ ๋ก์ปฌ ํฐ๋ฏธ๋ ์ฐฝ์ ๋ถ์ฌ๋ฃ์ต๋๋ค.gcloud workstations start-tcp-tunnel \ --project=PROJECT_ID \ --region=REGION \ --cluster=CLUSTER_NAME \ --config=CONFIG_NAME \ --local-host-port=localhost:LOCAL_PORT \ WORKSTATION_NAME \ WORKSTATION_PORT
๋ค์ ๊ฐ์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: ์ํฌ์คํ ์ด์ ์ด ํฌํจ๋ ํ๋ก์ ํธ์ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค. ์๋ตํ๋ฉด ํ์ฌ ํ๋ก์ ํธ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.REGION
: ์ํฌ์คํ ์ด์ ํด๋ฌ์คํฐ๊ฐ ์๋ ๋ฆฌ์ ์ ๋๋ค(์:us-central1
).CLUSTER_NAME
: ์ํฌ์คํ ์ด์ ์ด ํฌํจ๋ ์ํฌ์คํ ์ด์ ํด๋ฌ์คํฐ์ ์ด๋ฆ์ ๋๋ค.CONFIG_NAME
: ์ด ์ํฌ์คํ ์ด์ ์ด ํฌํจ๋ ์ํฌ์คํ ์ด์ ๊ตฌ์ฑ์ ์ด๋ฆ์ ๋๋ค.LOCAL_PORT
(์ ํ์ฌํญ): ํธ๋ํฝ์ด ์ ์ก๋ localhost ํฌํธ์ ๋๋ค. ์ ํจํ ํฌํธ ๋ฒํธ๋1024
~65535
์ ๋๋ค.--local-host-port
ํ๋๊ทธ๋ฅผ ์๋ตํ๊ฑฐ๋0
ํฌํธ๋ฅผ ์ง์ ํ๋ฉด ์ฌ์ฉ๋์ง ์๋ ํฌํธ๊ฐ ์๋์ผ๋ก ์ ํ๋ฉ๋๋ค.WORKSTATION_NAME
: ์ํฌ์คํ ์ด์ ์ ์ด๋ฆ์ ๋๋ค.WORKSTATION_PORT
: ํธ๋ํฝ์ ์ ์กํ ์ํฌ์คํ ์ด์ ํฌํธ์ ๋๋ค. ์ฌ์ ๊ตฌ์ฑ๋ ๋ชจ๋ Cloud Workstations ์ด๋ฏธ์ง์๋ ์ํฌ์คํ ์ด์ ํฌํธ22
์์ ์คํ๋๋ SSH ์๋ฒ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
gcloud
CLI ๋ช ๋ น์ด๋ ์ํฌ์คํ ์ด์ ์์ ์ฐ๊ฒฐ ํ ์คํธ๋ฅผ ์ํํ๊ณ ํฐ๋์ ์ด๊ณ ํฌํธ ๋ฒํธ๋ฅผ ํ์ํฉ๋๋ค.Listening on port [LOCAL_PORT].
localhost:LOCAL_PORT
๋ก ์ ์ก๋๋ ๋ชจ๋ ํธ๋ํฝ์ ์ํฌ์คํ ์ด์ ์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ํฌํธ๋ ๋ก์ปฌ ์ปดํจํฐ์์ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ง ์ก์ธ์คํ ์ ์์ต๋๋ค.gcloud
CLI๋ฅผ ์คํ ์ํ๋ก ๋๊ณ ๋ค๋ฅธ ํฐ๋ฏธ๋์ ์ด์ด ์ํฌ์คํ ์ด์ ์ ์ฐ๊ฒฐ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํฉ๋๋ค.์๋ฅผ ๋ค์ด ํฌํธ WORKSTATION_PORT๋ฅผ ์ ๊ณตํ๋ ์ํฌ์คํ ์ด์ ์์ ์๋ฒ๋ฅผ ์คํ ์ค์ด๊ณ ์ด์ ๋จ๊ณ์์ ๋ก์ปฌ ํฌํธ LOCAL_PORT์ ์ํฌ์คํ ์ด์ ํฌํธ WORKSTATION_PORT ์ฌ์ด์ ํธ๋ํฝ์ ์ ๋ฌํ๋ TCP ํฐ๋์ ๋ง๋ ๊ฒฝ์ฐ, ๋ก์ปฌ ๋จธ์ ์์
curl
์ ์คํํ์ฌ ์ํฌ์คํ ์ด์ ์ ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.curl localhost:LOCAL_PORT Hello, world!
์๋ฃ๋๋ฉด TCP ํฐ๋์ ์์ํ ํฐ๋ฏธ๋๋ก ๋์๊ฐ Control+C๋ฅผ ๋๋ฌ
gcloud
CLI๋ฅผ ์ค๋จํฉ๋๋ค.
๋ค๋ฅธ ํฌํธ์์ SSH ์๋ฒ ์ฌ์ฉ
์ปค์คํ
์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ ๋ชจ๋ ํฌํธ์์ SSH ์๋ฒ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. gcloud
CLI ํฐ๋์ ์ฐ๊ฒฐ์ ์ง์ํ๋ ค๋ฉด ๋น๋ฐ๋ฒํธ ์ธ์ฆ์ ํ์ฉํ๊ณ ํ๊ฒ ์ฌ์ฉ์๋ฅผ ๋น ๋น๋ฐ๋ฒํธ๋ก ์ค์ ํ๋๋ก ์ปค์คํ
SSH ์๋ฒ๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
Cloud Workstations๋ Cloud IAM์ ์ฌ์ฉํ์ฌ ์น์ธ๋ ํธ๋ํฝ๋ง SSH ์๋ฒ๋ก ์ ์กํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- ์ปค์คํ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ SSH ์ธ์ ์์ ์ปจํ ์ด๋ ํ๊ฒฝ ๋ณ์ ์ค์
- ์ปค์คํ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ X11 ์ ๋ฌ ์ฌ์ฉ ์ค์