1️⃣ GCP에서 Ubuntu VM 생성하기

GCP(Google Cloud Platform)에서 Ubuntu VM을 생성하고, Docker를 설치한 후 Nginx를 배포하는 과정을 소개합니다. 클라우드 환경에서 손쉽게 웹 서버를 운영해보고 싶다면 따라 해보세요!

🖼️ 이미지 1: GCP Console에서 Compute Engine VM 인스턴스 생성 화면

✅ 1.1 GCP에서 VM 인스턴스 만들기

  1. Google Cloud Console에 로그인합니다.
  2. 왼쪽 메뉴에서 Compute EngineVM 인스턴스로 이동합니다.
  3. 인스턴스 만들기 버튼을 클릭한 후 아래 설정을 적용합니다.
    • 이름: ubuntu-docker-vm
    • 머신 유형: e2-medium (2 vCPU, 4GB RAM)
    • 부팅 디스크: Ubuntu 22.04 LTS 선택
    • 방화벽 설정: HTTP 및 HTTPS 트래픽 허용 체크
  4. 만들기 버튼을 눌러 인스턴스를 생성합니다.

🖼️ 이미지 2: VM 생성 완료 후 리스트에서 확인하는 화면

✅ 1.2 VM에 SSH 접속하기

VM이 생성되면 SSH 버튼을 클릭하여 접속합니다.
혹은 로컬 환경에서 gcloud 명령어를 사용해 접속할 수도 있습니다.


2️⃣ Ubuntu에 Docker 설치하기

✅ 2.1 패키지 업데이트 및 Docker 설치

1)sudo apt update 
2)sudo apt upgrade -y
3)sudo apt install -y docker.io

✅ 2.2 Docker 서비스 활성화 및 실행 확인

sudo systemctl enable docker
sudo systemctl start docker
docker --version # Docker 버전 확인

🖼️ 이미지 3: 터미널에서 docker --version 실행 후 출력 결과

✅ 2.3 현재 사용자를 Docker 그룹에 추가 (선택 사항)

sudo usermod -aG docker $USER newgrp docker # 변경 적용 docker ps # Docker 실행 확인

3️⃣ Docker로 Nginx 실행하기

✅ 3.1 Nginx 컨테이너 실행

docker pull nginx
docker run -d --name nginx-container -p 80:80 nginx
 
 

✅ 3.2 컨테이너 실행 확인

docker ps

🖼️ 이미지 4: docker ps 실행 후 Nginx 컨테이너가 정상적으로 실행된 화면


4️⃣ GCP 방화벽 설정하여 외부 접근 허용하기

GCP에서는 기본적으로 외부에서 VM의 80번 포트로 접근할 수 없습니다. 따라서 방화벽 규칙을 추가해야 합니다.

✅ 4.1 방화벽 규칙 추가

  1. VPC 네트워크방화벽 규칙으로 이동합니다.
  2. 방화벽 규칙 만들기 버튼을 클릭하고 아래 내용을 입력합니다.
    • 이름: allow-nginx
    • 트래픽 방향: Ingress
    • 소스 IP 범위: 0.0.0.0/0
    • 대상 태그: http-server
    • 허용할 포트: 80
  3. 만들기 버튼을 클릭하여 방화벽 규칙을 적용합니다.

🖼️ 이미지 5: GCP 방화벽 규칙 

  1. VM 인스턴스 설정으로 이동하여 http-server 태그를 추가합니다.

5️⃣ Nginx 웹 페이지 테스트하기

✅ 5.1 VM의 외부 IP 확인

curl ifconfig.me

✅ 5.2 브라우저에서 접속

  • <VM_EXTERNAL_IP> 로 접속합니다.
  • 아래와 같은 Nginx 기본 페이지가 나타나면 성공적으로 배포된 것입니다.
  •  

🖼️ 이미지 6: 브라우저에서 Nginx 기본 페이지가 열리는 화면


6️⃣ 추가 설정 (선택)

✅ 6.1 컨테이너 자동 재시작 설정

VM이 재부팅되더라도 컨테이너가 자동으로 실행되도록 설정할 수 있습니다.

docker update --restart always nginx-container

✅ 6.2 커스텀 Nginx 설정 적용

기본 Nginx 페이지가 아닌, 커스텀 HTML 페이지를 적용할 수도 있습니다.

mkdir ~/nginx-custom echo "<h1>Welcome to GCP Nginx</h1>" > ~/nginx-custom/index.html docker run -d --name nginx-custom -p 80:80 -v ~/nginx-custom:/usr/share/nginx/html nginx

 

 

구분 Peering Proxy
개념 두 개의 네트워크(주로 ISP나 클라우드 네트워크)가 직접 연결되어 트래픽을 주고받는 구조 클라이언트가 직접 외부 네트워크에 접근하지 않고 중간 서버(Proxy)를 거쳐 외부 리소스를 요청하는 방식
연결 방식 네트워크 레벨에서의 직접적인 연결 (e.g., Azure VNet Peering, AWS VPC Peering) 애플리케이션 레벨에서의 간접 연결 (e.g., HTTP Proxy, SOCKS Proxy)
트래픽 흐름 양쪽 네트워크 간 양방향 통신 가능 클라이언트 → Proxy → 외부망 (대부분 단방향)
주요 목적 네트워크 간 직접 트래픽 교환을 통한 성능 향상 및 비용 절감 보안, 캐싱, 트래픽 우회, 내부망 보호

내부망에서 Proxy를 통해 외부망에 접근하는 경우

  • 내부망 서버가 직접 외부망에 접속하는 것이 아니라 Proxy 서버를 경유하여 데이터를 송수신하는 방식.
  • 트래픽이 Proxy 서버에서 필터링되거나 변경될 수 있음.
  • 주로 보안 목적(예: 접근 제어, 로깅, 캐싱)으로 사용됨.
  • Peering과는 달리 내부망과 외부망이 직접 연결된 것이 아님.

Peering의 특징

  • 네트워크 수준에서 두 개의 네트워크를 직접 연결하여 트래픽을 교환하는 방식.
  • 클라우드 환경(Azure, AWS 등)에서 VNet Peering이나 VPC Peering을 사용하여 별도의 인터넷 게이트웨이나 VPN 없이 내부적으로 연결 가능.
  • Proxy와는 다르게 네트워크 간의 양방향 트래픽 흐름이 자연스럽게 가능.

결론

Proxy를 사용하는 것은 Peering이 아니라 트래픽 우회를 위한 간접적인 연결 방식입니다.
내부망에서 Proxy를 통해 외부망에 접근하는 것은 Proxy 서버를 이용한 트래픽 중계이지, 네트워크 간의 직접적인 피어링이 아닙니다.

 1. initialAdminPassword 파일 확인

젠킨스를 처음 설치할 때 생성된 initialAdminPassword 파일이 있을 수 있습니다. 이 파일에는 초기 관리자 비밀번호가 저장되어 있습니다.
 파일 위치는 일반적으로 /var/lib/jenkins/secrets/initialAdminPassword 또는 ~/.jenkins/secrets/initialAdminPassword에 위치합니다.
파일 내용을 확인하여 초기 관리자 비밀번호를 알아낼 수 있습니다.
해당 파일이 없는 경우, 비밀번호가 이미 변경된 상태입니다.

 

2. config.xml 수정(보안 설정 해제)

젠킨스가 설치된 서버에 접속하여 config.xml 파일을 찾습니다. 
파일 위치는 일반적으로 /var/lib/jenkins/config.xml 또는 ~/.jenkins/config.xml에 위치합니다.
config.xml 파일에서 <useSecurity>true</useSecurity> 부분을 찾아 false로 변경합니다.
젠킨스를 재시작합니다.
젠킨스에 접속하면 로그인 화면 없이 바로 접속됩니다.

 


3. 비밀번호 변경 혹은 새로운 사용자 추가

 

1️⃣ 보안 설정 확인

  • Security 메뉴에서 "Jenkins' own user database" 선택

2️⃣ 관리자 계정  확인

  • Users → (관리자 계정 선택) → 비밀번호 변경

4. 보안 설정 다시 활성화

config.xml 파일 수정
<useSecurity>true</useSecurity>

+ Recent posts