GCP 서버 환경에서 외부 IP 주소를 확인하는 방법을 알아보고 계신가요?
특정 VM 인스턴스의 외부 (인터넷/공개) IP 주소가 필요한 프로젝트를 진행 중이신가요?
다행히도, 이 정보를 빠르게 얻을 수 있습니다.
ifconfig
명령어를 실행해 보셨을 수도 있지만, 결과에는 내부 IP 주소만 표시되는 것을 확인하셨을 겁니다.
GCP와 AWS는 모두 웹 인터페이스를 통해 공개 IP 주소를 쉽게 확인할 수 있도록 제공하지만, 서버에서 직접 IP 주소를 가져와야 하는 상황에서는 다음 명령어들이 유용하게 사용될 수 있습니다.
GCP VM에서 외부 IP 주소 획득하기
제가 알고 있는 두 가지 방법이 있습니다. 첫 번째 방법은 gcloud
명령어를 사용하는 것입니다.
gcloud compute addresses list
위 명령어를 실행하면 프로젝트 내의 모든 IP 주소 목록이 출력됩니다. 이 정보는 문제 해결에 유용하거나 VM에 로그인한 상태에서 빠르게 확인할 때 편리합니다.
예시:
[email protected]:~# gcloud compute addresses list NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS instance-1 xx.xx.xx.xx us-west1 IN_USE koreantech.org-nexus xx.xx.xx.xx INTERNAL GCE_ENDPOINT us-west1 default IN_USE koreantech.org xx.xx.xx.xx us-west1 IN_USE koreantech.org-tools xx.xx.xx.xx us-west1 IN_USE [email protected]:~#
두 번째 방법은 메타데이터 서버에 curl
명령어를 사용하는 것입니다.
curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
주의: 여러 개의 네트워크 인터페이스를 사용하는 경우, 0 대신 해당 인터페이스 번호(1 또는 2 등)로 변경해야 합니다.
메타데이터는 매우 강력한 기능이며, 다양한 메트릭 정보를 검색하는 데 활용할 수 있습니다.
[email protected]:~# curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/ attributes/ cpu-platform description disks/ guest-attributes/ hostname id image licenses/ machine-type maintenance-event name network-interfaces/ preempted remaining-cpu-time scheduling/ service-accounts/ tags virtual-clock/ zone [email protected]:~#
무슨 뜻일까요?
이러한 정보는 보고서 생성이나 자동화 작업에 유용하게 활용될 수 있습니다.
만약 내부 IP 주소도 함께 가져와야 하는 경우에는 아래 명령어를 사용하시면 됩니다.
curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/ip
GCP 관리에 대해 더 배우고 싶으신가요? 이 멋진 온라인 강좌를 확인해 보세요.
이 글이 흥미로우셨나요? 다른 사람들과도 공유해 보세요!