Compute Engine 사용에 대한 일반적인 팁

이 페이지에서는 Compute Engine을 사용하면서 발생하는 문제에 유용할 수 있는 팁을 설명합니다.

특정 문제를 해결하는 데 도움이 필요하면 다음 섹션 중 하나를 참조하세요.

다양한 응답 형식 보기

gcloud 명령줄 도구는 REST API를 호출하여 대부분의 작업을 수행합니다. 쉽게 읽을 수 있는 형식의 결과는 특정 명령어가 반환한 가장 중요한 정보만 표시합니다. 다양한 응답 형식을 보려면 응답을 json, yaml, text와 같은 서로 다른 출력 형식으로 표시하는 --format 플래그를 사용합니다. 예를 들어 JSON으로 된 인스턴스 목록을 보려면 --format json을 사용합니다.

gcloud compute instances list --format json

gcloud compute 로그 보기

gcloud 도구는 $HOME/.config/gcloud/logs에 있는 쿼리 가능한 로그 파일에 로그를 만들고 저장합니다. Linux 기반 운영체제에서 최신 로그 파일을 보려면 다음을 실행합니다.

$ less $(find ~/.config/gcloud/logs | sort | tail -n 1)

로그 파일에는 gcloud compute 도구를 사용하여 수행된 모든 요청과 응답에 대한 정보가 포함됩니다.

리소스 이름 선택

리소스 이름을 선택할 때는 Compute Engine의 지원 및 운영 대시보드에서 이러한 친숙한 이름을 볼 수 있다는 사실에 유의해야 합니다. 이러한 이유로 민감한 정보를 노출하지 않는 리소스 이름을 사용하는 것이 좋습니다.

인스턴스 및 인터넷 간의 커뮤니케이션

인스턴스는 외부 IP 주소가 있는 경우에만 인터넷에 직접 액세스할 수 있습니다. 외부 IP가 있는 인스턴스는 언제든지 인터넷 연결을 시작할 수 있습니다. 또한 액세스를 허용하도록 방화벽 규칙을 구성하면 연결을 수신할 수 있습니다. default VPC 네트워크에 커스텀 방화벽 규칙을 추가하거나 커스텀 방화벽이 있는 새 네트워크를 추가할 수 있습니다. 또한 외부 IP 주소 없이 인스턴스에서 프록시 액세스를 제공하도록 VPC 네트워크 환경에서 네트워크 프록시를 설정할 수 있습니다.

유휴 연결은 최대 10분 동안 추적되며, 이 시간이 지난 후 트래픽은 암시적 거부 인그레스 규칙을 포함한 방화벽 규칙에 적용됩니다. 인스턴스가 외부 호스트와 오랫동안 유지되는 연결을 시작하거나 수락하면 제한 시간 전에 연결을 새로 고치도록 Compute Engine 인스턴스에서 TCP 연결 유지 설정을 600초 미만으로 조정해야 합니다. 다음 예에서는 연결 유지를 1분(60초)으로 설정합니다. Linux 시스템에서 실행 중인 애플리케이션에서는 TCP 연결의 SO_KEEPALIVE 소켓 옵션을 명시적으로 설정하여 TCP 연결 유지를 사용 설정해야 합니다(Linux TCP 연결 유지 방법 참조).

Compute Engine 인스턴스 또는 Linux 클라이언트


다음 명령어를 실행합니다.

$ sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5
재부팅 후에도 설정을 유지하려면 설정을 /etc/sysctl.conf 파일에 추가합니다.

Mac OSX 클라이언트


다음 명령어를 실행합니다.

$ sudo sysctl -w net.inet.tcp.always_keepalive=1 net.inet.tcp.keepidle=60000 net.inet.tcp.keepinit=60000 net.inet.tcp.keepintvl=60000

Windows 클라이언트


레지스트리 경로 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\에서 다음 설정을 DWORD 데이터 형식으로 추가하거나 이 설정이 이미 있으면 설정 값을 수정합니다.

KeepAliveInterval: 1000
KeepAliveTime: 60000
TcpMaxDataRetransmissions: 10

다른 SSH 사용자로 Compute Engine에 액세스

기본적으로 gcloud compute 명령줄 도구는 SSH를 통해 가상 머신 인스턴스에 연결할 수 있도록 $USER 변수를 사용하여 사용자를 /etc/passwd 파일에 추가합니다. gcloud compute ssh 명령어를 실행할 때 --ssh-key-file PRIVATE_KEY_FILE 플래그를 사용하여 다른 사용자를 지정할 수 있습니다. 예를 들면 다음과 같습니다.

gcloud compute ssh example-instance --ssh-key-file my-private-key-file

자세한 내용은 gcloud 참조 문서를 확인하세요.

직렬 콘솔과 상호작용

인스턴스의 직렬 콘솔에 대한 대화형 액세스를 사용 설정하면 직렬 콘솔을 통해 인스턴스를 연결하고 인스턴스 문제를 해결할 수 있습니다.

자세한 내용은 직렬 콘솔과 상호작용을 참조하세요.

커스텀 이미지로 빌드한 인스턴스의 패킷 파편화 방지

VPC 네트워크에서 Linux 이미지와 Windows Server 이미지의 기본 최대 전송 단위(MTU)는 1460바이트입니다. 하지만 네트워크 MTU를 변경할 수 있습니다. 자세한 내용은 VPC 문서의 최대 전송 단위(MTU)를 참조하세요.

UDP 소켓을 통해 Compute Engine 인스턴스와 통신하는 클라이언트 애플리케이션을 만들 때 UDP 데이터그램 데이터의 최대 크기를 네트워크 MTU보다 28바이트 작게 설정하면 파편화를 방지할 수 있습니다. 예를 들어 네트워크의 MTU가 1,460바이트인 경우, 패킷당 최대 1,432바이트의 UDP 데이터를 파편화 없이 전송할 수 있습니다. 네트워크의 MTU가 1,500바이트인 경우 최대 1,472바이트의 UDP 데이터를 파편화 없이 전송할 수 있습니다. 이 28바이트는 IPv4 패킷 헤더(20바이트)와 UDP 데이터그램 헤더(8바이트)에 사용됩니다.