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바이트로 설정되어 있습니다. Compute Engine에서 제공하는 운영체제 이미지는 적절한 MTU로 구성되어 있으므로 이러한 이미지를 사용할 경우 별도의 조치가 필요 없습니다. 커스텀 이미지를 사용할 경우 커스텀 Linux 이미지 및 Windows Server 이미지의 MTU를 1460으로 설정하여 파편화로 인한 지연 시간 및 패킷 오버헤드 증가를 방지해야 합니다.

UDP 소켓을 통해 Compute Engine 인스턴스와 통신하는 클라이언트 애플리케이션을 만들 경우에는 최대 페이로드를 1432바이트로 보내야 파편화를 방지할 수 있습니다.