
💡 목표 : Amazon EC2에 언리얼 프로젝트를 저장하고, Perforce로 버전 관리하기
PuTTY는 원격 서버에 접속하기 위한 클라이언트 응용 프로그램입니다.
이를 SSH 클라이언트로 사용해서 원격 서버(Linux 기반 EC2 인스턴스)와 연결하고, 파일 전송을 할 것입니다.
[ SSH(Secure Shell) : 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜 ]
✔️ PuTTY를 설치합니다. (환경변수 Path에 PuTTY 폴더 경로를 추가해 줍니다)
Amazon EC2(Amazon Elastic Compute Cloud)는 AWS(Amazon Web Services)에서 제공하는 가상 머신(Virtual Machine) 서비스입니다.
💡 새 계정은 1년동안 30기가의 클라우드 저장소(EBS)를 무료로 제공합니다.
Amazon Machine Image : Amazon Linux 2023 AMI

인스턴스 유형 : t2.micro

.ppk, .pem은 private key입니다. ec2 서버에 접근하기 위해 필요합니다.
PuTTY를 사용할 거라 .ppk로 만들었더니 파일 전송이 안 됐습니다.
찾아보니 .pem으로 만들고 PuTTYgen을 사용해서 .ppk로 전환하면 된다고 해서 그렇게 했더니 됐습니다.
네트워크 설정 옆 편집 버튼을 누르면 인바운드 보안 그룹 규칙을 변경할 수 있습니다.
보안 그룹 규칙을 아래와 같이 추가해 줍니다.

22는 SSH, 1666은 퍼포스가 사용합니다.
스토리지 구성 옆 고급 버튼을 누르면 클라우드 저장소(EBS) 공간 크기를 설정할 수 있습니다. 새 계정의 경우 무료로 최대 30GB까지 사용 가능합니다.
p4d는 Amazon EC2로 옮겨줄 것입니다.
✔️ 설치한 p4d 폴더 안에 EC2 단계에서 나온 .ppk 파일을 넣습니다.
✔️ 해당 폴더에서 터미널을 킵니다.
✔️ pscp -i 키이름.ppk -l ec2-user p4d ec2퍼블릭IPv4DNS: 를 입력해서 p4d 파일을 EC2 서버로 전송합니다. (퍼블릭 IPv4 DNS는 생성한 인스턴스 세부 정보로 들어가면 있습니다.)
✔️ putty -i 키이름.ppk ec2퍼블릭IPv4DNS 를 입력해서 EC2 서버와 연결합니다.
✔️ EC2 서버를 연결하면 login as: 라고 나올 것입니다. ec2-user라고 입력해 줍니다.
✔️ 아래 명령어를 순서대로 입력합니다.
ls : 현재 디렉토리 list를 보여줍니다. (p4d가 있는지 확인합니다)
mkdir perforce : perforce라는 이름의 새 directory를 만듭니다.
mv p4d perforce : p4d를 perforce 디렉토리 안으로 이동시킵니다.
cd perforce : perforce 폴더로 들어갑니다.
chmod +x p4d : 파일 권한을 변경(chmod), 실행 권한을 추가(+x) ⇒ p4d를 실행 가능하게 합니다.
p4d : p4d를 실행합니다.
이제 Amazon EC2 서버에서 p4d가 돌아갑니다.
p4v를 설치하고, EC2 IP 주소를 사용해서 Make Connection 해 줍니다.
.gitignore처럼 .p4ignore가 있습니다.
인터넷에서 적절한 p4ignore를 찾아서 프로젝트 폴더에 넣어줍니다.
그 폴더에서 터미널을 열어서 p4 set P4IGNORE=.p4ignore를 입력해서 적용해 줍니다.
p4 ignores 명령어를 통해 잘 설정됐는지 확인할 수 있습니다.
이제 p4v에서 ignore 된 파일들에 대해 Add 시 제외 및 경고를 해 줍니다.
자 이제 원격 서버에서 p4d를 실행하고, 로컬 컴퓨터에 있는 p4v와 p4d를 연결해 주었습니다.
이제 로컬에 프로젝트를 생성해서, 원격 서버로 Submit 해 주면 됩니다!
언리얼 엔진 리비전 컨트롤에도 퍼포스를 연결해 줍시다!
(+25.02.11)
퍼포스 사용 중, Date Submitted의 시간이 맞지 않았습니다. 이는 Amazon EC2 인스턴스는 기본적으로 UTC+0 시간대로 설정되어 있기 때문입니다.
대한민국 표준시(KST, UTC+9)로 변경하기 위해서는 EC2에 접속해서
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
을 입력해 주면 됩니다.
(+25.03.03)
df -h 명령어로 확인되는 사용 중인 용량은 얼마 안 되는데,
EC2 대시보드에서 EBS의 스토리지 공간이 거의 다 찼다고 나올 수 있습니다.
저는 이것 때문에 쬐끔 놀랐었는데요🥲
이는 아마존이 EBS 사용량 계산할 때, 시간으로 나눠서 과금하기 때문입니다.
예를 들어, 현재 EBS 빌린 전체 용량이 30GB면 이를 30.5일로 나누고 24시간으로 나눈 약 0.041GB이 시간당 과금되는 것입니다.
따라서 월간 사용량이 월말에 다가갈수록 증가하는 것입니다.
즉, df -h로 확인되는 용량만 고려하면 됩니다.