클라우드 환경
Codex Cloud의 작업에 사용할 재사용 가능한 환경을 만들고, 구성하고, 공유합니다
Codex Cloud는 클라우드에서 코딩 작업을 실행하므로 컴퓨터가 절전 모드여도 작업을 계속할 수 있습니다. 웹, 모바일 또는 데스크톱 앱에서 코드를 편집하고, 명령을 실행하고, 결과를 검토할 수 있습니다.
클라우드 환경 은 작업에서 사용하는 재사용 가능한 구성으로, 저장소, 종속성, 도구, 액세스 설정을 포함합니다. Codex는 저장소를 살펴보고, 환경을 준비한 다음 사용자와 함께 테스트합니다. 각 새 작업에는 게시된 환경을 바탕으로 별도의 격리된 작업 공간이 제공됩니다.
기본 소개는 Codex Cloud 개요를 참조하세요.
Codex Cloud에서 작업 시작하기
웹 또는 데스크톱 앱에서 작업 위치 > 클라우드 를 선택하고 게시된 환경을 선택하세요. 모바일에서는 Codex 를 열고 게시된 환경을 선택하세요. Codex가 수행할 작업을 설명하고 요청을 보내세요. 새로운 설정이 필요하면 웹 또는 데스크톱 앱에서 환경을 생성하세요.
Enterprise 관리자는 Codex Cloud를 도입하기 전에 워크스페이스 액세스를 검토할 수 있습니다.
환경 만들기 및 게시하기
웹 또는 데스크톱 앱에서 새 환경을 생성하세요. ChatGPT 계정으로 로그인하세요:
- 새 작업에서 작업 위치 > 클라우드 를 선택하고 환경 선택 을 연 다음, 환경 만들기 를 선택합니다.
- 체크아웃할 GitHub 저장소를 선택합니다. 메시지가 표시되면 GitHub를 연결합니다.
- 시작하기 를 선택합니다. Codex가 저장소를 살펴보고 종속성과 도구를 설치한 다음 워크플로를 테스트합니다.
- 요청이 표시되면 누락된 액세스 권한이나 정보를 제공합니다. 특정 버전, 명령 또는 서비스를 요청할 수도 있습니다.
- 설정 보고서, 구성, 파일을 검토합니다. 미완료 항목을 처리하고, 변경 사항을 저장한 다음 게시 를 선택합니다.
- 환경이 게시됨 이 표시되면 새 작업 시작 을 선택하고 Codex가 수행할 작업을 설명합니다.
설정 > Codex Cloud > 환경 > 환경 만들기 에서도 시작할 수 있습니다.
설치 및 시작 동작 맞춤 설정하기
Codex는 저장소에서 런타임, 패키지 버전, 도구, 서비스를 파악합니다. 대화를 통해 구성을 조정할 수 있으므로 설치 스크립트를 직접 작성할 필요가 없습니다.
Codex는 테스트한 구성을 두 필드에 기록할 수 있습니다.
- 설치 스크립트: 종속성을 설치하고 개발 자산을 준비하는 명령입니다.
- 시작 스킬: 서비스를 시작하고 준비 상태를 확인하는 지침입니다.
저장된 상태 재사용 및 업데이트하기
- 새 작업: 게시된 환경에 준비된 파일 시스템에서 시작합니다.
- 기존 작업: 커밋하지 않은 변경 사항과 설치된 도구를 포함하여 자체적으로 저장된 파일로 계속 진행합니다.
- 저장소 새로 고침: 백그라운드에서 자동으로 실행되며, 설치 또는 시작 명령을 다시 실행하지 않고 종속성 캐시를 유지합니다.
재사용할 구성을 업데이트하려면 설정 > Codex Cloud > 환경 을 엽니다. 환경의 … 메뉴에서 편집 을 선택합니다. 변경할 내용을 설명하고, Codex가 준비하고 테스트하도록 한 다음 변경 사항을 저장하고 다시 게시 를 선택합니다. 업데이트를 사용하려면 새 작업을 시작합니다. 기존 작업은 자체 상태를 유지합니다.
중요한 작업은 커밋하거나 필요한 결과물을 저장하세요. 저장된 상태는 소스 제어를 대체하지 않습니다.
환경 변수 및 네트워크 시크릿 구성하기
Codex는 누락된 구성을 파악하고 추론할 수 없는 값을 요청합니다. 환경 구성에서 환경 변수 또는 네트워크 시크릿 옆의 관리 를 선택합니다. 각 값을 제공할 방법을 선택합니다.
| 구성 | 용도 | 전달 방식 |
|---|---|---|
| 환경 변수 | 프로그램이 직접 읽어야 하는 값 | 환경 내 프로그램에 직접 전달됩니다. |
| 네트워크 시크릿 | 특정 HTTPS 서비스로 전송하는 자격 증명 | 프로그램에는 자리 표시자가 전달되며, 프록시가 허용된 대상으로 보내는 요청에서 실제 값으로 대체합니다. |
네트워크 시크릿에는 키, 값, 허용된 도메인 을 설정합니다. 직접 전달되는 변수와는 다른 키를 사용합니다. 값 대체는 설정 과정과 작업 중에 포트 443의 HTTPS에서 작동하며, 원본 자격 증명을 로컬 프로세스나 파일에 넣지 않습니다.
환경 소유 네트워크 시크릿을 저장하면 해당 대상이 제한된 인터넷 액세스의 허용 대상에 추가됩니다. 직접 전달되는 변수와 개인 값은 대상을 추가하지 않습니다. 테스트하기 전에 저장된 네트워크 정책을 검토하세요. 워크스페이스 요구 사항은 Agent Security를 참조하세요.
개인 값 제공하기
개인 보관함을 사용하면 워크스페이스의 클라우드 환경에 사용할 자신의 환경 변수와 네트워크 시크릿을 저장할 수 있습니다.
공유 환경은 각 사용자가 자신의 계정에서 제공해야 하는 값을 요청할 수 있습니다. 환경을 공유하면 이러한 요구 사항이 공유되며, 개인 자격 증명은 공유되지 않습니다.
메시지가 표시되면 개인 시크릿 추가 에 필수 값을 입력하고 저장 후 시작 을 선택합니다. 선택적 값은 설정하지 않아도 됩니다.
값을 미리 관리하려면 다음과 같이 진행합니다.
- 설정 > Codex Cloud 를 연 다음 개인 보관함 탭을 선택합니다.
- 추가 를 선택하고 유형 에서 환경 변수 또는 네트워크 시크릿 을 선택한 다음, 일치하는 키 와 자신의 값 을 입력합니다.
- 적용 대상 에서 모든 환경 또는 선택한 환경 을 선택한 다음 저장 합니다.
요청된 값만 작업에 전달됩니다. 특정 환경에 지정한 값은 일반 기본값보다 우선합니다. 개인 네트워크 시크릿은 환경에 허용된 대상을 사용하며 동일한 방식으로 자리 표시자를 대체합니다.
Enterprise 워크스페이스 내에서 공유하기
준비된 구성을 공유하면 동료들이 해당 구성으로 자신의 작업을 시작할 수 있습니다.
- 환경 구성을 엽니다.
- 공개 범위 > 사용할 수 있는 사람 에서 워크스페이스를 선택합니다.
- 변경 사항을 저장합니다. 아직 환경을 게시하지 않았다면 게시합니다.
환경을 비공개로 유지하려면 사용할 수 있는 사람 에서 나만 을 선택합니다. 각 작업의 작업 파일은 별개입니다. 구성에 대한 액세스 권한이 있어도 다른 사람의 작업에 대한 액세스 권한이나 환경을 편집할 권한이 부여되지는 않습니다.
공유하기 전에 준비된 파일과 환경 소유 자격 증명을 검토하세요. 클라우드 ID와 VPN 연결도 공유 서비스 액세스를 제공할 수 있습니다. 저장소 액세스와 개인 연결은 작업을 실행하는 계정에 따라 달라집니다.
클라우드에서 Codex 사용 은 작업 액세스를 제어합니다. 워크스페이스 환경 관리 는 워크스페이스와 공유하는 환경의 생성 및 편집을 제어합니다. 역할 및 워크스페이스 권한을 참조하세요.
Agent Security
환경의 인터넷 액세스 설정은 VM이 접근할 수 있는 도메인을 정의합니다. VPN 설정은 해당 VM을 사설 네트워크의 서비스에 연결합니다.
Enterprise 워크스페이스에서 관리자는 Agent Security를 사용하여 에이전트 동작, 관리형 실행 네트워킹, 지원되는 도구 사용에 대한 워크스페이스 요구 사항을 구성합니다. 이러한 요구 사항은 각 환경에 저장된 도메인 설정과 함께 적용됩니다. 전역 정책과 지원되는 Codex Cloud 재정의 설정은 Agent Security를 참조하세요.
서비스에 연결하기
워크플로에 필요한 패키지 레지스트리, API 및 기타 서비스에 대한 액세스를 구성합니다.
- 환경 구성에서 Codex의 인터넷 액세스 허용 을 켭니다.
- 허용할 도메인 에서 패키지 관리자 또는 사용자 지정 도메인만 을 선택한 다음, 추가 허용 도메인 에 필요한 호스트를 추가합니다. 워크플로에 더 넓은 액세스가 필요하면 모두(제한 없음) 를 사용합니다.
- 저장하고 설정 과정에서 서비스를 테스트합니다. 게시하거나 다시 게시한 다음, 새 작업에서 액세스를 확인합니다.
워크스페이스 요구 사항은 Agent Security를 참조하세요. 대상을 허용해도 자격 증명이 제공되거나 해당 서비스의 권한이 부여되지는 않습니다.
패키지 관리자 사전 설정에 포함된 도메인
패키지 관리자 사전 설정은 다음 레지스트리, 저장소 및 다운로드 호스트를 허용합니다.
- npm 및 Yarn:
registry.npmjs.org,registry.yarnpkg.com - PyPI 및 PyTorch:
pypi.org,files.pythonhosted.org,download.pytorch.org,download-r2.pytorch.org - Rust:
crates.io,index.crates.io,static.crates.io,static.rust-lang.org - Go:
proxy.golang.org,sum.golang.org - Maven 및 Gradle:
repo.maven.apache.org,repo1.maven.org,plugins.gradle.org,plugins-artifacts.gradle.org,services.gradle.org,downloads.gradle.org - Bazel:
bcr.bazel.build,mirror.bazel.build - Buf:
buf.build - CPAN:
cpan.metacpan.org - Ubuntu 및 Debian 저장소:
archive.ubuntu.com,security.ubuntu.com,ports.ubuntu.com,ppa.launchpadcontent.net,deb.debian.org,security.debian.org - 공급업체 저장소:
packages.microsoft.com,apt.buildkite.com,developer.download.nvidia.com,deb.nodesource.com - GitHub 소스, 아카이브, 릴리스 및 LFS:
github.com,codeload.github.com,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,release-assets.githubusercontent.com - 기타 다운로드:
dl.google.com,pkgconfig.freedesktop.org
등록된 루트 도메인의 경우 Codex는 해당하는 www 호스트 이름도 허용합니다.
다른 하위 도메인은 별도의 허용 도메인 항목이 필요합니다. 종속성에 필요한 다른 호스트는
추가 허용 도메인 에 추가하세요.
공용 인터넷을 통해 접근하며 출발지 IP를 기준으로 연결을 필터링하는 서비스에는 에이전트 아웃바운드 IP 피드를 사용하세요. 게시된 모든 범위를 허용하고 매일 피드를 확인하며, 범위가 바뀌면 서비스의 허용 목록을 업데이트하세요. 이 범위는 여러 고객이 공유하므로 서비스의 인증 및 권한 부여 제어를 유지하세요.
사설 네트워킹(VPN)
VPN 연결을 통해 클라우드 작업이 사설 네트워크의 내부 API, 패키지 레지스트리 및 기타 HTTP 또는 HTTPS 서비스에 액세스할 수 있게 합니다.
- 환경의 고급 > VPN 설정을 열고 추가 를 선택합니다.
- VPN 제공업체의 연결 자격 증명을 입력합니다.
- VPN의 액세스 규칙과 환경의 인터넷 액세스 설정 모두에서 필요한 대상을 허용합니다.
- 저장한 다음 게시하거나 다시 게시합니다. 새 작업을 시작하고 서비스를 테스트합니다.
현재 지원되는 VPN 제공업체는 Tailscale입니다. Tailscale 인증 키를 만들 때 재사용 가능 과 임시 를 모두 활성화합니다. 재사용 가능한 키를 사용하면 새 클라우드 작업 VM이 네트워크에 참여할 수 있습니다. Tailscale은 임시 기기가 오프라인 상태가 되면 자동으로 제거합니다. 추가 VPN 제공업체 지원도 계획되어 있습니다.
사설 IPv4 서브넷 경로를 지원합니다. 작업은 Tailscale의 분할 DNS 및 MagicDNS를 사용하여 호스트 이름으로 비공개 서비스에 접근할 수 있습니다.
서비스가 조직의 내부 DNS를 사용하는 경우 Tailscale 관리 콘솔에서 분할 DNS를 구성하여
내부 도메인에 대한 쿼리를 DNS
서버로 보내세요. 서비스의 정규화된 호스트 이름을 사용하세요. 예를 들어
api.corp.example.com과 같은 이름이며, IPv4 주소로 확인되어야 합니다. 대상은
환경의 인터넷 액세스 설정과
Tailscale 액세스 규칙에서도 허용되어야 합니다.
공유 환경의 작업은 해당 환경에 구성된 VPN ID를 사용합니다.
OIDC로 클라우드 리소스에 액세스하기
OpenID Connect(OIDC)를 사용하면 작업이 클라우드 리소스에 대한 단기 자격 증명을 얻을 수 있습니다. 조직에서 클라우드 제공업체와 신뢰 관계를 구성하고 해당 ID에 워크플로에 필요한 권한을 부여합니다.
- 저장된 환경의 고급 > OIDC 설정을 엽니다.
- 추가 를 선택한 다음 사용 가능한 연결을 선택하거나 지원되는 제공업체의 연결 만들기… 를 선택합니다.
- 새 연결인 경우 제공업체의 ID 세부 정보를 입력하고 연결을 만듭니다. 제공업체에서 표시된 발급자, 대상, 주체 또는 클레임 조건으로 신뢰 관계를 구성하고 리소스 권한을 부여합니다.
- 연결이 첨부되었는지 확인하고 별칭을 검토합니다. 저장한 다음 환경을 게시하거나 다시 게시합니다.
- 새 작업을 시작하고 허용된 작업과 거부된 작업을 각각 테스트합니다.
제공업체마다 설정이 다르며, 지원되는 연결만 첨부할 수 있습니다. 액세스는 해당 ID의 권한으로 결정됩니다. 제공업체에서 본인이 가진 개인 권한은 해당 ID로 이전되지 않습니다. 필요한 제공업체 엔드포인트와 서비스 대상은 네트워크 정책에서 별도로 허용하세요.
연결 첨부 또는 별칭 변경 사항을 설정 과정에 적용하려면 저장하세요. 새 작업에 사용하려면 게시하거나 다시 게시하세요. 공유 ID 연결을 편집하면 해당 연결을 사용하는 다른 환경에 영향을 줄 수 있습니다.
Enterprise 워크스페이스는 요청을 통해 OIDC를 사용할 수 있습니다. 활성화하려면 OpenAI 계정 담당 팀에 문의하세요.
작업 실행 및 돌아오기
게시된 환경을 선택하고 목표를 설명합니다. Codex는 해당 환경의 저장소와 도구를 사용하여 파일을 편집하고, 명령을 실행하고, 작업 결과를 확인합니다. 커밋하거나 풀 리퀘스트를 열기 전에 변경 사항과 테스트 결과를 검토하세요.
웹 또는 모바일에서 계속하기
웹에서는 작업 위치 > 클라우드 를 선택하고 환경을 선택하세요. 모바일에서는 Codex 를 열고 사용 가능한 환경을 선택하세요. 새 환경은 웹 또는 데스크톱 앱에서 생성하세요.
동일한 작업을 다시 열면 기기를 바꿔도 작업을 이어갈 수 있습니다. 새 작업은 게시된 구성에서 별개의 작업을 시작합니다. Codex Cloud의 작업은 컴퓨터가 절전 모드여도 계속 진행할 수 있습니다.
Slack 또는 Microsoft Teams에서 작업 시작하기
클라우드 위임이 활성화된 Enterprise 워크스페이스에서는 Slack 또는 Microsoft Teams의 @ChatGPT에
저장소 작업을 요청하세요. Codex는 대화
맥락을 바탕으로 워크스페이스와 공유되어 있고 작업을 실행하는 계정이
사용할 수 있는 환경을 선택합니다. 프롬프트에서 선호하는 환경을 지정하거나
지침을 추가할 수 있습니다.
Slack에서 Codex Cloud 역할 기반 액세스 제어를 사용하는 워크스페이스는 배포의 서비스 계정과 요청하는 사용자 모두에게 Codex Cloud 액세스 권한을 부여해야 합니다. 관리자 설정은 Slack용 Codex Cloud 활성화를 참조하세요.
연결 및 승인 메시지가 표시되면 절차를 완료한 다음 대화에서 결과를 검토합니다. 작업을 계속하려면 동일한 연결 계정으로 후속 요청을 하세요. 다른 참여자의 요청이 자동으로 본인의 작업을 이어가지는 않습니다.
워크스페이스 설정은 Slack 및 Teams에서 ChatGPT 관리를, Slack 작업 제어는 Slack에서 ChatGPT 사용을 참조하세요.
VM 사양
각 클라우드 작업은 다음 기본 리소스를 갖춘 VM에서 실행됩니다.
| ChatGPT 요금제 | vCPUs | 메모리 | 디스크 공간 |
|---|---|---|---|
| Plus, Edu Plus | 2 | 8 GiB | 8 GiB |
| Pro, Business, Enterprise | 4 | 16 GiB | 32 GiB |
| Edu, Edu Pro | 4 | 16 GiB | 32 GiB |
기본적으로 작업의 저장된 VM 상태는 마지막으로 턴을 시작하거나 작업을 재개한 시점부터 최대 7일 동안 복구할 수 있습니다.
Enterprise에서는 더 큰 VM과 사용자 지정 사양을 사용할 수 있습니다. 사용 가능한 구성과 요금은 OpenAI 계정 담당 팀에 문의하세요.
현재 제한 사항
다음 기능은 현재 클라우드 환경에서 지원되지 않으며 로드맵에 포함되어 있습니다.
- 컴퓨터 및 브라우저 사용
- GitLab 및 자체 호스팅 GitHub Enterprise Server
저장소에 저장된 스킬은 클라우드 작업에서 사용할 수 있습니다. 로컬 컴퓨터의 개인 스킬은 클라우드 환경에 동기화되지 않습니다.
설정 및 런타임 액세스 문제 해결하기
설정이 실패하거나 필요한 도구가 없는 경우
설정 대화에서 실패한 명령을 확인하세요. Codex에 오류를 진단하고 해결한 후 명령을 다시 실행하도록 요청하세요. 예: "pnpm을 설치하고 프로젝트의 테스트를 실행해 주세요."
- 초기 설정이 실패하면 다시 시도 를 선택하여 해당 설정 세션에서 이미 선택한 저장소로 재시도합니다.
- 문제 해결에 소스 파일, 패키지 매니페스트 또는 잠금 파일 변경이 필요하면 코딩 작업에서 변경한 다음 설정으로 돌아옵니다.
Codex가 구성을 검증하면 환경을 게시하거나 다시 게시합니다.
패키지 다운로드 또는 HTTPS 요청이 실패하는 경우
대상 호스트 이름과 인증을 별도로 확인하세요.
- 환경의
인터넷 액세스 설정에서 해당 호스트가 허용되는지 확인합니다. 사설 레지스트리가
packages.example.com에 있다면 정확히 그 호스트 이름을 확인합니다. 다운로드에downloads.example.com도 사용된다면 해당 호스트에도 액세스가 필요합니다. - 패키지 관리자 또는 클라이언트에 구성된 URL과 자격 증명을 확인합니다. 도메인을 허용해도 서비스에 대한 액세스 권한이 부여되지는 않습니다.
- 인증에 네트워크 시크릿을 사용한다면 허용된 도메인 에 대상이 포함되어 있고 요청이 포트 443의 HTTPS를 사용하는지 확인합니다.
- Enterprise 워크스페이스에서는 관리자에게 환경 설정과 함께 적용되는 Agent Security 요구 사항도 확인하도록 요청합니다.
구성 변경 사항을 저장하고 설정 과정에서 요청을 테스트합니다. 게시하거나 다시 게시한 다음 새 작업에서 액세스를 확인합니다.
필수 값이 없거나 사용할 수 없는 경우
환경 구성에서 올바른 위치에 값을 추가했는지 확인하세요.
- 환경 변수:
APP_MODE=development처럼 프로그램이 직접 읽어야 하는 값에 사용합니다. - 네트워크 시크릿: 사설 레지스트리 토큰처럼 허용된 HTTPS 서비스로 전송하는 자격 증명에 사용합니다. 프로그램에는 자리 표시자가 전달되며, 프록시가 일치하는 요청에서 이를 자격 증명으로 대체합니다. 프로그램이 원본 값을 읽어야 한다면 환경 변수 에 추가합니다.
개인 값의 경우 키 가 환경의 요청과 일치하고 적용 대상 에 해당 환경이 포함되어 있는지 확인합니다. 특정 환경에 지정한 값은 일반 기본값보다 우선합니다.
설정 지침은 환경 변수 및 네트워크 시크릿을 참조하세요.
VPN은 연결되지만 HTTP 또는 HTTPS 서비스에 접근할 수 없는 경우
- 클라이언트가 환경에 구성된 HTTP/HTTPS 프록시를 사용하는지 확인하세요.
curl로 테스트할 때는 요청이 해당 프록시를 사용하도록--noproxy를 생략하세요. - 대상이 환경의 허용 도메인과 VPN의 액세스 규칙 모두에서 허용되는지 확인하세요.
- IP 주소로는 서비스에 접근할 수 있지만 호스트 이름으로는 접근할 수 없다면 Tailscale DNS 설정을 확인하세요. 회사 내부 도메인의 경우 분할 DNS가 올바른 DNS 서버를 가리키는지, Tailscale 네트워크를 통해 해당 서버에 접근할 수 있는지 확인하세요. 서비스의 정규화된 호스트 이름을 사용하고 해당 이름이 IPv4 주소로 확인되는지 확인하세요.
연결 설정은 사설 네트워킹을 참조하세요.
작업에서 환경이나 환경 업데이트를 사용할 수 없는 경우
설정 > Codex Cloud > 환경 에서 환경을 확인합니다. 게시되지 않음 배지가 있다면 설정을 완료하고 게시 를 선택하여 작업에서 사용할 수 있게 합니다.
게시된 환경을 변경하려면 편집 흐름을 열고 Codex가 변경 사항을 준비하고 테스트하도록 한 다음 다시 게시 를 선택합니다. 새 구성을 사용하려면 업데이트된 환경에서 새 작업을 시작합니다. 기존 작업은 자체 작업 상태를 유지합니다.