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바이트로 보내야 파편화를 방지할 수 있습니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서