๊ฐ€์ƒ ๋จธ์‹  (EC2 / Compute Engine)

๊ฐ€์ƒ ๋จธ์‹  (EC2 / Compute Engine)

1. ๊ฐ€์ƒ ๋จธ์‹  ๊ฐœ์š”

๊ฐ€์ƒ ๋จธ์‹ (VM)์€ ํด๋ผ์šฐ๋“œ์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

1.1 ์„œ๋น„์Šค ๋น„๊ต

ํ•ญ๋ชฉ AWS EC2 GCP Compute Engine
์„œ๋น„์Šค๋ช… Elastic Compute Cloud Compute Engine
์ธ์Šคํ„ด์Šค ๋‹จ์œ„ Instance Instance
์ด๋ฏธ์ง€ AMI Image
์ธ์Šคํ„ด์Šค ์œ ํ˜• Instance Types Machine Types
์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ User Data Startup Script
๋ฉ”ํƒ€๋ฐ์ดํ„ฐ Instance Metadata Metadata Server

2. ์ธ์Šคํ„ด์Šค ์œ ํ˜•

2.1 AWS EC2 ์ธ์Šคํ„ด์Šค ์œ ํ˜•

๋ช…๋ช… ๊ทœ์น™: {ํŒจ๋ฐ€๋ฆฌ}{์„ธ๋Œ€}{์ถ”๊ฐ€์†์„ฑ}.{ํฌ๊ธฐ}

์˜ˆ: t3.medium, m5.xlarge, c6i.2xlarge

ํŒจ๋ฐ€๋ฆฌ ์šฉ๋„ ์˜ˆ์‹œ
t ๋ฒ”์šฉ (๋ฒ„์Šคํ„ฐ๋ธ”) t3.micro, t3.small
m ๋ฒ”์šฉ (๊ท ํ˜•) m5.large, m6i.xlarge
c ์ปดํ“จํŒ… ์ตœ์ ํ™” c5.xlarge, c6i.2xlarge
r ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” r5.large, r6i.xlarge
i ์Šคํ† ๋ฆฌ์ง€ ์ตœ์ ํ™” i3.large, i3en.xlarge
g/p GPU g4dn.xlarge, p4d.24xlarge

์ฃผ์š” ์ธ์Šคํ„ด์Šค ์ŠคํŽ™:

์œ ํ˜• vCPU ๋ฉ”๋ชจ๋ฆฌ ๋„คํŠธ์›Œํฌ ์šฉ๋„
t3.micro 2 1 GB Low ๋ฌด๋ฃŒ ํ‹ฐ์–ด, ๊ฐœ๋ฐœ
t3.medium 2 4 GB Low-Mod ์†Œ๊ทœ๋ชจ ์•ฑ
m5.large 2 8 GB Up to 10 Gbps ๋ฒ”์šฉ
c5.xlarge 4 8 GB Up to 10 Gbps CPU ์ง‘์•ฝ
r5.large 2 16 GB Up to 10 Gbps ๋ฉ”๋ชจ๋ฆฌ ์ง‘์•ฝ

2.2 GCP Machine Types

๋ช…๋ช… ๊ทœ์น™: {์‹œ๋ฆฌ์ฆˆ}-{์œ ํ˜•}-{vCPU์ˆ˜} ๋˜๋Š” ์ปค์Šคํ…€

์˜ˆ: e2-medium, n2-standard-4, c2-standard-8

์‹œ๋ฆฌ์ฆˆ ์šฉ๋„ ์˜ˆ์‹œ
e2 ๋น„์šฉ ํšจ์œจ ๋ฒ”์šฉ e2-micro, e2-medium
n2/n2d ๋ฒ”์šฉ (๊ท ํ˜•) n2-standard-2, n2-highmem-4
c2/c2d ์ปดํ“จํŒ… ์ตœ์ ํ™” c2-standard-4
m1/m2 ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” m1-megamem-96
a2 GPU (A100) a2-highgpu-1g

์ฃผ์š” ๋จธ์‹  ํƒ€์ž… ์ŠคํŽ™:

์œ ํ˜• vCPU ๋ฉ”๋ชจ๋ฆฌ ๋„คํŠธ์›Œํฌ ์šฉ๋„
e2-micro 0.25-2 1 GB 1 Gbps ๋ฌด๋ฃŒ ํ‹ฐ์–ด
e2-medium 1-2 4 GB 2 Gbps ์†Œ๊ทœ๋ชจ ์•ฑ
n2-standard-2 2 8 GB 10 Gbps ๋ฒ”์šฉ
c2-standard-4 4 16 GB 10 Gbps CPU ์ง‘์•ฝ
n2-highmem-2 2 16 GB 10 Gbps ๋ฉ”๋ชจ๋ฆฌ ์ง‘์•ฝ

2.3 ์ปค์Šคํ…€ ๋จธ์‹  ํƒ€์ž… (GCP)

GCP์—์„œ๋Š” vCPU์™€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐœ๋ณ„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# ์ปค์Šคํ…€ ๋จธ์‹  ํƒ€์ž… ์ƒ์„ฑ
gcloud compute instances create my-instance \
    --custom-cpu=6 \
    --custom-memory=24GB \
    --zone=asia-northeast3-a

3. ์ด๋ฏธ์ง€ (AMI / Image)

3.1 AWS AMI

AMI (Amazon Machine Image) ๊ตฌ์„ฑ์š”์†Œ: - ๋ฃจํŠธ ๋ณผ๋ฅจ ํ…œํ”Œ๋ฆฟ (OS, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜) - ์ธ์Šคํ„ด์Šค ์œ ํ˜•, ๋ณด์•ˆ ๊ทธ๋ฃน ๊ธฐ๋ณธ๊ฐ’ - ๋ธ”๋ก ๋””๋ฐ”์ด์Šค ๋งคํ•‘

# ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ AMI ๊ฒ€์ƒ‰ (Amazon Linux 2023)
aws ec2 describe-images \
    --owners amazon \
    --filters "Name=name,Values=al2023-ami-*-x86_64" \
    --query 'Images | sort_by(@, &CreationDate) | [-1]'

# ์ฃผ์š” AMI ์œ ํ˜•
# Amazon Linux 2023: al2023-ami-*
# Ubuntu 22.04: ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-*
# Windows Server: Windows_Server-2022-*

3.2 GCP Images

# ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€ ๋ชฉ๋ก
gcloud compute images list

# ํŠน์ • ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฏธ์ง€
gcloud compute images list \
    --filter="family:ubuntu-2204-lts"

# ์ฃผ์š” ์ด๋ฏธ์ง€ ํŒจ๋ฐ€๋ฆฌ
# debian-11, debian-12
# ubuntu-2204-lts, ubuntu-2404-lts
# centos-stream-9, rocky-linux-9
# windows-2022

4. ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

4.1 AWS EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

Console: 1. EC2 ๋Œ€์‹œ๋ณด๋“œ โ†’ "Launch instance" 2. ์ด๋ฆ„ ์ž…๋ ฅ 3. AMI ์„ ํƒ (์˜ˆ: Amazon Linux 2023) 4. ์ธ์Šคํ„ด์Šค ์œ ํ˜• ์„ ํƒ (์˜ˆ: t3.micro) 5. ํ‚ค ํŽ˜์–ด ์ƒ์„ฑ/์„ ํƒ 6. ๋„คํŠธ์›Œํฌ ์„ค์ • (VPC, ์„œ๋ธŒ๋„ท, ๋ณด์•ˆ ๊ทธ๋ฃน) 7. ์Šคํ† ๋ฆฌ์ง€ ์„ค์ • 8. "Launch instance"

AWS CLI:

# ํ‚ค ํŽ˜์–ด ์ƒ์„ฑ
aws ec2 create-key-pair \
    --key-name my-key \
    --query 'KeyMaterial' \
    --output text > my-key.pem
chmod 400 my-key.pem

# ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
aws ec2 run-instances \
    --image-id ami-0c55b159cbfafe1f0 \
    --instance-type t3.micro \
    --key-name my-key \
    --security-group-ids sg-12345678 \
    --subnet-id subnet-12345678 \
    --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=MyServer}]'

4.2 GCP Compute Engine ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

Console: 1. Compute Engine โ†’ VM ์ธ์Šคํ„ด์Šค โ†’ "๋งŒ๋“ค๊ธฐ" 2. ์ด๋ฆ„ ์ž…๋ ฅ 3. ๋ฆฌ์ „/Zone ์„ ํƒ 4. ๋จธ์‹  ๊ตฌ์„ฑ ์„ ํƒ (์˜ˆ: e2-medium) 5. ๋ถ€ํŒ… ๋””์Šคํฌ (OS ์ด๋ฏธ์ง€ ์„ ํƒ) 6. ๋ฐฉํ™”๋ฒฝ ์„ค์ • (HTTP/HTTPS ํ—ˆ์šฉ) 7. "๋งŒ๋“ค๊ธฐ"

gcloud CLI:

# ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
gcloud compute instances create my-instance \
    --zone=asia-northeast3-a \
    --machine-type=e2-medium \
    --image-family=ubuntu-2204-lts \
    --image-project=ubuntu-os-cloud \
    --boot-disk-size=20GB \
    --tags=http-server,https-server

# SSH ํ‚ค๋Š” ์ž๋™ ๊ด€๋ฆฌ (OS Login ๋˜๋Š” ํ”„๋กœ์ ํŠธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ)

5. SSH ์ ‘์†

5.1 AWS EC2 SSH ์ ‘์†

# ํผ๋ธ”๋ฆญ IP ํ™•์ธ
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query 'Reservations[0].Instances[0].PublicIpAddress'

# SSH ์ ‘์†
ssh -i my-key.pem ec2-user@<PUBLIC_IP>

# Amazon Linux: ec2-user
# Ubuntu: ubuntu
# CentOS: centos
# Debian: admin

EC2 Instance Connect (๋ธŒ๋ผ์šฐ์ €): 1. EC2 Console โ†’ ์ธ์Šคํ„ด์Šค ์„ ํƒ 2. "์—ฐ๊ฒฐ" ๋ฒ„ํŠผ ํด๋ฆญ 3. "EC2 Instance Connect" ํƒญ 4. "์—ฐ๊ฒฐ" ํด๋ฆญ

5.2 GCP SSH ์ ‘์†

# gcloud๋กœ SSH (ํ‚ค ์ž๋™ ๊ด€๋ฆฌ)
gcloud compute ssh my-instance --zone=asia-northeast3-a

# ์™ธ๋ถ€ IP ํ™•์ธ
gcloud compute instances describe my-instance \
    --zone=asia-northeast3-a \
    --format='get(networkInterfaces[0].accessConfigs[0].natIP)'

# ์ง์ ‘ SSH (ํ‚ค๋ฅผ ์ˆ˜๋™ ๋“ฑ๋กํ•œ ๊ฒฝ์šฐ)
ssh -i ~/.ssh/google_compute_engine username@<EXTERNAL_IP>

๋ธŒ๋ผ์šฐ์ € SSH: 1. Compute Engine โ†’ VM ์ธ์Šคํ„ด์Šค 2. ์ธ์Šคํ„ด์Šค ํ–‰์˜ "SSH" ๋ฒ„ํŠผ ํด๋ฆญ 3. ์ƒˆ ์ฐฝ์—์„œ ๋ธŒ๋ผ์šฐ์ € ํ„ฐ๋ฏธ๋„ ์—ด๋ฆผ


6. User Data / Startup Script

์ธ์Šคํ„ด์Šค ์‹œ์ž‘ ์‹œ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค.

6.1 AWS User Data

#!/bin/bash
# User Data ์˜ˆ์‹œ (Amazon Linux 2023)

# ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ
dnf update -y

# Nginx ์„ค์น˜
dnf install -y nginx
systemctl start nginx
systemctl enable nginx

# ์ปค์Šคํ…€ ํŽ˜์ด์ง€
echo "<h1>Hello from $(hostname)</h1>" > /usr/share/nginx/html/index.html

CLI์—์„œ User Data ์ง€์ •:

aws ec2 run-instances \
    --image-id ami-12345678 \
    --instance-type t3.micro \
    --user-data file://startup.sh \
    ...

User Data ๋กœ๊ทธ ํ™•์ธ:

# ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€์—์„œ
cat /var/log/cloud-init-output.log

6.2 GCP Startup Script

#!/bin/bash
# Startup Script ์˜ˆ์‹œ (Ubuntu)

# ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ
apt-get update

# Nginx ์„ค์น˜
apt-get install -y nginx
systemctl start nginx
systemctl enable nginx

# ์ปค์Šคํ…€ ํŽ˜์ด์ง€
echo "<h1>Hello from $(hostname)</h1>" > /var/www/html/index.html

CLI์—์„œ Startup Script ์ง€์ •:

gcloud compute instances create my-instance \
    --zone=asia-northeast3-a \
    --machine-type=e2-medium \
    --metadata-from-file=startup-script=startup.sh \
    ...

# ๋˜๋Š” ์ธ๋ผ์ธ์œผ๋กœ
gcloud compute instances create my-instance \
    --metadata=startup-script='#!/bin/bash
    apt-get update
    apt-get install -y nginx'

Startup Script ๋กœ๊ทธ ํ™•์ธ:

# ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€์—์„œ
sudo journalctl -u google-startup-scripts.service
# ๋˜๋Š”
cat /var/log/syslog | grep startup-script

7. ์ธ์Šคํ„ด์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ

์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€์—์„œ ์ž์‹ ์˜ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7.1 AWS Instance Metadata Service (IMDS)

# ์ธ์Šคํ„ด์Šค ID
curl http://169.254.169.254/latest/meta-data/instance-id

# ํผ๋ธ”๋ฆญ IP
curl http://169.254.169.254/latest/meta-data/public-ipv4

# ๊ฐ€์šฉ ์˜์—ญ
curl http://169.254.169.254/latest/meta-data/placement/availability-zone

# IAM ์—ญํ•  ์ž๊ฒฉ ์ฆ๋ช…
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/<role-name>

# IMDSv2 (๊ถŒ์žฅ - ํ† ํฐ ํ•„์š”)
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" \
    -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
    http://169.254.169.254/latest/meta-data/instance-id

7.2 GCP Metadata Server

# ์ธ์Šคํ„ด์Šค ์ด๋ฆ„
curl -H "Metadata-Flavor: Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name

# ์™ธ๋ถ€ IP
curl -H "Metadata-Flavor: Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip

# Zone
curl -H "Metadata-Flavor: Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/zone

# ์„œ๋น„์Šค ๊ณ„์ • ํ† ํฐ
curl -H "Metadata-Flavor: Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token

# ํ”„๋กœ์ ํŠธ ID
curl -H "Metadata-Flavor: Google" \
    http://metadata.google.internal/computeMetadata/v1/project/project-id

8. ์ธ์Šคํ„ด์Šค ๊ด€๋ฆฌ

8.1 ์ธ์Šคํ„ด์Šค ์ƒํƒœ ๊ด€๋ฆฌ

AWS:

# ์ธ์Šคํ„ด์Šค ์ค‘์ง€
aws ec2 stop-instances --instance-ids i-1234567890abcdef0

# ์ธ์Šคํ„ด์Šค ์‹œ์ž‘
aws ec2 start-instances --instance-ids i-1234567890abcdef0

# ์ธ์Šคํ„ด์Šค ์žฌ๋ถ€ํŒ…
aws ec2 reboot-instances --instance-ids i-1234567890abcdef0

# ์ธ์Šคํ„ด์Šค ์ข…๋ฃŒ (์‚ญ์ œ)
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0

# ์ธ์Šคํ„ด์Šค ์ƒํƒœ ํ™•์ธ
aws ec2 describe-instance-status --instance-ids i-1234567890abcdef0

GCP:

# ์ธ์Šคํ„ด์Šค ์ค‘์ง€
gcloud compute instances stop my-instance --zone=asia-northeast3-a

# ์ธ์Šคํ„ด์Šค ์‹œ์ž‘
gcloud compute instances start my-instance --zone=asia-northeast3-a

# ์ธ์Šคํ„ด์Šค ์žฌ์‹œ์ž‘ (reset)
gcloud compute instances reset my-instance --zone=asia-northeast3-a

# ์ธ์Šคํ„ด์Šค ์‚ญ์ œ
gcloud compute instances delete my-instance --zone=asia-northeast3-a

# ์ธ์Šคํ„ด์Šค ์ƒํƒœ ํ™•์ธ
gcloud compute instances describe my-instance --zone=asia-northeast3-a

8.2 ์ธ์Šคํ„ด์Šค ์œ ํ˜• ๋ณ€๊ฒฝ

AWS:

# 1. ์ธ์Šคํ„ด์Šค ์ค‘์ง€
aws ec2 stop-instances --instance-ids i-1234567890abcdef0

# 2. ์ธ์Šคํ„ด์Šค ์œ ํ˜• ๋ณ€๊ฒฝ
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --instance-type t3.large

# 3. ์ธ์Šคํ„ด์Šค ์‹œ์ž‘
aws ec2 start-instances --instance-ids i-1234567890abcdef0

GCP:

# 1. ์ธ์Šคํ„ด์Šค ์ค‘์ง€
gcloud compute instances stop my-instance --zone=asia-northeast3-a

# 2. ๋จธ์‹  ํƒ€์ž… ๋ณ€๊ฒฝ
gcloud compute instances set-machine-type my-instance \
    --zone=asia-northeast3-a \
    --machine-type=n2-standard-4

# 3. ์ธ์Šคํ„ด์Šค ์‹œ์ž‘
gcloud compute instances start my-instance --zone=asia-northeast3-a

9. ๊ณผ๊ธˆ ์˜ต์…˜

9.1 ์˜จ๋””๋งจ๋“œ vs ์˜ˆ์•ฝ vs ์ŠคํŒŸ

์˜ต์…˜ AWS GCP ํ• ์ธ์œจ ํŠน์ง•
์˜จ๋””๋งจ๋“œ On-Demand On-demand 0% ์•ฝ์ • ์—†์Œ, ์œ ์—ฐํ•จ
์˜ˆ์•ฝ Reserved/Savings Plans Committed Use ์ตœ๋Œ€ 72% 1-3๋…„ ์•ฝ์ •
์ŠคํŒŸ/์„ ์ ํ˜• Spot Instances Spot/Preemptible ์ตœ๋Œ€ 90% ์ค‘๋‹จ ๊ฐ€๋Šฅ
์ž๋™ ํ• ์ธ - Sustained Use ์ตœ๋Œ€ 30% ์›” ์‚ฌ์šฉ๋Ÿ‰ ์ž๋™

9.2 AWS Spot Instance

# ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค ์š”์ฒญ
aws ec2 request-spot-instances \
    --instance-count 1 \
    --type "one-time" \
    --launch-specification '{
        "ImageId": "ami-12345678",
        "InstanceType": "t3.large",
        "KeyName": "my-key"
    }'

# ์ŠคํŒŸ ๊ฐ€๊ฒฉ ํ™•์ธ
aws ec2 describe-spot-price-history \
    --instance-types t3.large \
    --product-descriptions "Linux/UNIX"

9.3 GCP Preemptible/Spot VM

# Spot VM ์ƒ์„ฑ (Preemptible ํ›„์†)
gcloud compute instances create spot-instance \
    --zone=asia-northeast3-a \
    --machine-type=e2-medium \
    --provisioning-model=SPOT \
    --instance-termination-action=STOP

# Preemptible VM ์ƒ์„ฑ (๋ ˆ๊ฑฐ์‹œ)
gcloud compute instances create preemptible-instance \
    --zone=asia-northeast3-a \
    --machine-type=e2-medium \
    --preemptible

10. ์‹ค์Šต: ์›น ์„œ๋ฒ„ ๋ฐฐํฌ

10.1 AWS EC2 ์›น ์„œ๋ฒ„

# 1. ๋ณด์•ˆ ๊ทธ๋ฃน ์ƒ์„ฑ
aws ec2 create-security-group \
    --group-name web-sg \
    --description "Web server security group"

# 2. ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™ ์ถ”๊ฐ€
aws ec2 authorize-security-group-ingress \
    --group-name web-sg \
    --protocol tcp --port 22 --cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress \
    --group-name web-sg \
    --protocol tcp --port 80 --cidr 0.0.0.0/0

# 3. EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ (User Data ํฌํ•จ)
aws ec2 run-instances \
    --image-id ami-0c55b159cbfafe1f0 \
    --instance-type t3.micro \
    --key-name my-key \
    --security-groups web-sg \
    --user-data '#!/bin/bash
dnf update -y
dnf install -y nginx
systemctl start nginx
echo "<h1>AWS EC2 Web Server</h1>" > /usr/share/nginx/html/index.html' \
    --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=WebServer}]'

10.2 GCP Compute Engine ์›น ์„œ๋ฒ„

# 1. ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ์ƒ์„ฑ
gcloud compute firewall-rules create allow-http \
    --allow tcp:80 \
    --target-tags http-server

# 2. Compute Engine ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
gcloud compute instances create web-server \
    --zone=asia-northeast3-a \
    --machine-type=e2-micro \
    --image-family=ubuntu-2204-lts \
    --image-project=ubuntu-os-cloud \
    --tags=http-server \
    --metadata=startup-script='#!/bin/bash
apt-get update
apt-get install -y nginx
echo "<h1>GCP Compute Engine Web Server</h1>" > /var/www/html/index.html'

# 3. ์™ธ๋ถ€ IP ํ™•์ธ
gcloud compute instances describe web-server \
    --zone=asia-northeast3-a \
    --format='get(networkInterfaces[0].accessConfigs[0].natIP)'

11. ๋‹ค์Œ ๋‹จ๊ณ„


์ฐธ๊ณ  ์ž๋ฃŒ

to navigate between lessons