> ## Content Index
> Fetch the complete content index at: https://appsworld.kr/llms.txt
> Use this file to discover other available public pages before exploring further.

# OCI Ubuntu 24.04 기반 웹 개발 서버 구축 및 기본 환경 구성 가이드
- URL: https://appsworld.kr/oci-ubuntu-24-04-giban-web-gaebal-seobeo-gucug-mic-cogihwa-gaideu/
- Published: 2026-10-14T06:07:32.000Z
- Updated: 2026-10-14T07:12:27.000Z
- Author: Nullull

## 1\. 개요 (Overview)

본 문서는 Oracle Cloud Infrastructure(OCI) 환경에서 신규 Ubuntu 24.04 LTS 인스턴스를 생성하고, 안정적인 웹 서비스 환경을 프로비저닝하기 위한 표준 절차를 정의한다. 본 가이드는 **서버 생성, 네트워크 보안(포트 개방), 기본 방화벽 설정, 런타임 환경 구성**을 포함한다.

---

## 2\. 1단계: OCI 인스턴스 생성 및 가상 네트워크(VCN) 설정

### 2.1 인스턴스 프로비저닝

1. OCI 콘솔에 로그인한 후 \*\*\[컴퓨트\] > \[인스턴스\] > \[인스턴스 생성\]\*\*으로 이동한다.
2. **이미지 및 모양(Image and Shape)** 섹션에서 \[이미지 변경\]을 클릭하여 **Ubuntu 24.04 LTS**를 선택한다.
3. **네트워킹** 섹션에서 공용 IP 주소가 할당되도록 `공용 IPv4 주소 할당`을 선택한다.
4. **SSH 키 추가** 섹션에서 새 키 쌍을 생성 및 다운로드하거나, 기존 보유 중인 공개 키(`.pub`)를 업로드한다.
5. \[생성\]을 클릭하여 인스턴스를 활성화하고 할당된 \*\*공용 IP 주소(Public IP)\*\*를 확인한다.

### 2.2 수신 규칙(Ingress Rules) 추가 (웹 포트 개방)

외부 인터넷 트래픽이 웹 서버에 도달할 수 있도록 OCI 가상 클라우드 네트워크(VCN)의 보안 목록을 수정한다.

1. 생성된 인스턴스의 상세 페이지에서 **가상 클라우드 네트워크** 및 해당 **서브넷** 링크를 클릭한다.
2. \*\*보안 목록(Security Lists)\*\*에서 기본 보안 목록(Default Security List)을 선택한다.
3. \*\*\[수신 규칙 추가(Add Ingress Rules)\]\*\*를 클릭하고 아래의 규칙들을 각각 등록한다.

| 소스 CIDR   | IP 프로토콜 | 대상 포트 범위 | 설명                    |
| --------- | ------- | -------- | --------------------- |
| 0.0.0.0/0 | TCP     | 80       | HTTP 웹 트래픽 허용         |
| 0.0.0.0/0 | TCP     | 443      | HTTPS 보안 웹 트래픽 허용     |
| 0.0.0.0/0 | TCP     | 3000     | Node.js 등 개발 서버 포트 허용 |

---

## 3\. 2단계: OS 초기 환경 설정 및 보안

### 3.1 SSH 원격 접속

다운로드한 SSH 개인 키의 권한을 변경한 후 인스턴스에 접속한다. (기본 사용자 명: `ubuntu`)

```bash
chmod 400 /path/to/your/private_key.key
ssh -i /path/to/your/private_key.key ubuntu@<인스턴스_공용_IP>

```

### 3.2 패키지 시스템 최신화

시스템 안정성과 최신 보안 패치 적용을 위해 패키지 인덱스를 업데이트하고 업그레이드를 수행한다.

```bash
sudo apt update && sudo apt upgrade -y

```

### 3.3 OS 내부 방화벽(iptables) 구성 및 해제

OCI Ubuntu 이미지는 자체 커널 방화벽(`iptables`) 규칙이 사전 적용되어 있어, 외부 VCN 보안 규칙을 통과하더라도 OS 내부에서 트래픽이 차단될 수 있다. 안정적인 웹 서비스 공급을 위해 관련 포트를 개방한다.

```bash
# HTTP(80) 및 HTTPS(443) 포트 개방
sudo iptables -I INPUT 6 -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 6 -p tcp --dport 443 -j ACCEPT
sudo iptables -I INPUT 6 -p tcp --dport 3000 -j ACCEPT

# 재부팅 후에도 방화벽 규칙이 유지되도록 영구 저장
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
sudo netfilter-persistent reload

```

---

## 4\. 3단계: 웹 서버 및 개발 런타임 환경 구축

### 4.1 Nginx 웹 서버 설치 및 프록시 설정

고성능 HTTP 및 리버스 프록시 서버인 **Nginx**를 설치하고 활성화한다.

```bash
# Nginx 설치
sudo apt install nginx -y

# 서비스 활성화 및 시작 확인
sudo systemctl enable nginx
sudo systemctl status nginx

```

### 4.2 Node.js 개발 환경 구성 (NVM 기준)

다양한 Node.js 버전을 유연하게 관리하기 위해 \*\*NVM(Node Version Manager)\*\*을 통한 설치를 권장한다.

```bash
# NVM 설치 스크립트 실행
curl -o- https://githubusercontent.com | bash

# 환경 변수 로드
source ~/.bashrc

# Node.js LTS(최신 안정 버전) 설치 및 확인
nvm install --lts
node -v
npm -v

```

---

## 5\. 4단계: 리버스 프록시(Reverse Proxy) 최종 연동 (선택 사항)

Node.js 애플리케이션(예: `localhost:3000`)을 외부 웹 포트(`80`/`443`)와 연동하기 위해 Nginx 설정을 변경한다.

1. Nginx 기본 설정 파일을 편집한다.

```bash
sudo nano /etc/nginx/sites-available/default

```

1. `location /` 블록을 찾아 아래와 같이 수정하여 프록시 패스를 지정한다.

```nginx
location / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade \$http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host \$host;
    proxy_cache_bypass \$http_upgrade;
}

```

1. 구문 구성을 검증하고 Nginx 서비스를 재시작한다.

```bash
sudo nginx -t
sudo systemctl restart nginx

```

---

## 6\. 결론 및 유지보수 권장사항

본 매뉴얼에 따라 구축된 개발 서버는 외부 웹 트래픽을 수용할 준비가 완료되었다. 향후 프로덕션 환경으로 전환 시에는 **Certbot(Let's Encrypt)을 활용한 SSL/TLS 암호화 적용** 및 **PM2를 활용한 Node.js 애플리케이션 프로세스 데몬화**를 추가 수행할 것을 권장한다.