- (게임 스트리밍용) 서버 구축 하기
- 0) https://aws.amazon.com/ko/ec2/instance-types 에서 원하는 유형을 찾기.
- CPU, GPU, MEM, Wins, MacOS, ... 등등등
- 1) EC2 튜닝
- Windows Server 2019 with Desktop Experience Locale English AMI
- EBS 볼륨 : /dev/sda1 (gp2 Vs gp3 https://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/emr-plan-storage-compare-volume-types.html)
- 인스턴스 스토어 볼륨 : /dev/nvme0n1 (추후 'D: 드라이버' 으로 잡아줘야 되드라...)
- 2) 그래픽드라이버
- https://www.nvidia.com/Download/Find.aspx
- https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/install-nvidia-driver.html
- https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/optimize_gpu.html
- (SERVER MANAGER 실행 → Media Foundation 및 qWAVE 설치 → 재부팅 → 잘안됨... -> 쉴패!!)
- 3) 사운드카드
- https://tgd.kr/g/tip/8385001 식으로, "Virtual Audio Cable" 혹은 "VoiceMeeter" 설치를 하면~ 잡힘.
- 0) https://aws.amazon.com/ko/ec2/instance-types 에서 원하는 유형을 찾기.
- 해당 과정이 잘 안될때...
- 그냥! "https://aws.amazon.com/marketplace" 에서 잘 만들어진 AMI 를 찾아서 쓸수가 있다!
- ex) NVIDIA Gaming PC - Windows Server 2019
- ex) NVIDIA RTX Virtual Workstation - WinServer 2022
- (AWS 계정기반으로) 마플웹 상에서 '구독', '셋팅', '생성' 등을 다 할수있음.
- AWS 콘솔 -> AWS Marketplace -> 구독 관리 -> 관리 할수있음.
- (게임 스트리밍용) AMI 생성 해보기
- EC2 윈도우 서버 최신(?) 이미지 "Microsoft Windows Server 2022 Full Locale English AMI provided by Amazon" 를 기반으로...
- (Windows Server 2019 에서는 잘 안되는 이슈 있음 ㄷㄷ;;)
- 0) 제어판 → 날짜 및 글자 → … , 크롬 , AppData\Local\Temp\EC2Launch 바로가기 , ...
- 1) AWS 설치
- https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html
- https://docs.aws.amazon.com/ko_kr/powershell/latest/userguide/pstools-getting-set-up.html
- creditial 및 config 등록
- 2) 그래픽드라이버 설치
- https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/install-nvidia-driver.html
- 옵션 4 : NVIDIA 게임 드라이버(G5 및 G4dn 인스턴스)
- 1→2→3→4→5→6→7 순서대로
- 3) 사운드카드 잡기
- Virtual Audio Cable
- '' (디폴트 사운드 설정도 한번 확인)
- 4) git 설치 및 ssh key 등록
- 윈도우용 설치 → git bash → ssh-keygen → github 등록
- 5) python 3.11 (환경변수 체크)
- 6) OBS
- 방송, 출력, 비디오 셋팅, 스크린 및 사운드 캡쳐, …
- Tools > WebSockets Server Settings > Enable WebSockets Server
7) StartUp 등록실행 창(Win + R) → shell:startup → 원하는.exe 등록- 로그온이 되는 시점에 동작하는 느낌...
- 8) OpenSSH
- https://docs.microsoft.com/ko-kr/windows-server/administration/openssh/openssh_install_firstuse
- https://www.vultr.com/docs/how-to-install-openssh-on-windows-server-2019-or-2022
- 서비스 실행, 결국 public key -> authorized_keys 등록 및 인식 하는 과정에서~ 뭔가 잘 알되었던거 같음...
- AMI EC2Launch
- EC2Launch v2 프로그램
- https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/ec2launch-v2-settings.html
- General >
- Admin Account Password : Random 그대로 함
- Shutdown without Sysprep 이후 → AMI 생성
- (with Sysprep 하면, "aws ec2 run-instances -user-data 인스턴스.yaml" 옵션이 안됨?!?!?!)
- Volumes >
- D 드라이버 잡아줘야 되는데... 굳이 여기 할 필요 없을듯!
- 암호 관련
- https://repost.aws/ko/knowledge-center/ec2-windows-password-not-available-error
- https://dev.classmethod.jp/articles/jw-if-i-created-ec2-windows-using-ami-and-i-cant-get-a-password-what-is-the-solution
- ...
- EC2Launch v2 프로그램
- AMI 실행 예시
- https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html
- run-instances
-
aws ec2 run-instances \ --image-id 아이디 \ --instance-type g4dn.xlarge \ --security-group-ids 보안그룹 \ --key-name 키 \ --tag-specifications 'ResourceType=instance,Tags=[{Key=k1,Value=v0}]' \ --user-data file://run-instance.yaml
-
version: 1.1 tasks: - task: setAdminAccount inputs: password: type: random - task: initializeVolume inputs: initialize: devices devices: - device: /dev/nvme0n1 name: MyDrive letter: D partition: gpt - task: executeScript inputs: - frequency: always type: powershell runAs: admin content: |- New-Item -ItemType Directory -Path "D:\폴더" -Force - frequency: always type: powershell runAs: admin content: |- aws s3 cp s3://FOLDER/0.mp4 D:\폴더\0.mp4 - frequency: always type: powershell runAs: admin content: |- aws s3 cp s3://game.zip D:\game.zip Expand-Archive -Path "D:\game.zip" -DestinationPath "D:\game" - frequency: always type: powershell runAs: admin content: |- Start-Process -FilePath "C:\Program Files\obs-studio\bin\64bit\obs64.exe" -WorkingDirectory "C:\Program Files\obs-studio\bin\64bit\" - frequency: always type: batch runAs: admin content: |- cd "C:\코드" git pull copy .env_wins .env pip install -r src/requirements.txt pip install pywin32 python -X utf8 src/main.py {아큐먼트} & > /dev/null 2>&1 # - task: executeProgram # inputs: # - frequency: always # path: "C:\프로그램.exe" # # arguments: ['C:\프로그램.cfg'] # runAs: localSystem
- 예)
- Admin 비밀번호 랜덤
- D 드라이버 초기화
- 필수 디렉토리 생성
- S3 -> 각종 리소스 다운로드 및 unzip
- git pull 코드 (및 .env 셋팅)
- pip install -r src/requirements.txt
- python -X utf8 main.py 아큐먼트 & > /dev/null 2>&1
- 원하는 프로그램 실행...
-
- terminate-instances
- ...
- (MacOS 용) AMI 생성 해보기
- https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-mac-instances.html
- 0) System
- LockScreen : Never-Never-Never
- DockDesk : 요술램프X
- WallPaper : 검정
- privacy & security → full disk access → + → shift+command+G → /usr/sbin/cron
- usr grp → Auto login → !!!
- general → sharing → remote app script
timezone : ...- 독 : Activity, DiskUtil, …
- 0) 크롬, VLC, ffmpeg, OBS, ...
- 1) python 3.11, pip3, pycharm
- which -a python3
- brew install python@3.11
- vi ~/.zshrc
- alias python=python3
- alias pip=pip3
- export PYTHONPATH=/Users/ec2-user/Documents/avt-aistreamer-client/src
- source ~/.zshrc
- python -V , pip -V , echo $PYTHONPATH
- 2) AWS
- aws configure → creditial 및 config 입력
- 3) git 키등록
- ssh-keygen
- cat ~/.ssh/id_rsa.pub
- ...
- EC2 부팅 -> (로그온없이) 프로그램 자동 실행 -> 곧바로 프로세싱
- Windows Server 2022
- 1차시 : OpenSSH 설치후, (비번없이) ssh 접속하여 실행하면 어떻까?
- https://www.maskaravivek.com/post/how-to-ssh-into-an-ec2-instance-using-boto3/
- https://stackoverflow.com/questions/42645196/how-to-ssh-and-run-commands-in-ec2-using-boto3
- 파이썬에서 "paramiko" 기반으로 자동화 하면 될까 했는데...
- 일단, ssh 에서 실행하니... 백그라운드 모드(?) 으로만 동작이 되는거 같아 실패~
- 2차시 : "windows ssh run gui program" 검색 -> cywin ???
- 3차시 : PsTools -> psexec
- https://stackoverflow.com/questions/59880794/starting-gui-programs-via-openssh-on-windows
- https://community.home-assistant.io/t/ssh-launch-gui-application-on-windows/339704/3
- 마찬가지로, 백그라운드 모드(?) 으로만 동작.
- 4차시 : schtasks
- https://stackoverflow.com/questions/70380040/starting-application-gui-on-remote-windows-from-ssh-linux
- https://learn.microsoft.com/ko-kr/windows-server/administration/windows-commands/schtasks-create
- ssh 으로 접속하여, schtask 만들고 실행하면~ OBS 같은 일반적인건 되는데... Unity 는 화면이 안나왔음!
- https://towardsdatascience.com/how-to-run-unity-on-amazon-cloud-or-without-monitor-3c10ce022639
- 가상 모니터를 설치하면 되려나...
- But 그런데!!! 부팅 스크립트(tasks.yaml) 에서~ 2분뒤 실행하는 schtask 만들게 했는데... 실행 자체도 18 안되자나!
-
// obs.bat start /d "C:\Program Files\obs-studio\bin\64bit\" /b obs64.exe 혹은 powershell Start-Process -FilePath obs64.exe -WorkingDirectory \"C:\Program Files\obs-studio\bin\64bit\" -WindowStyle Minimized // 즉각 한번만 실행하기. schtasks /create /TN obs_exe /TR "C:\Users\Administrator\Desktop\obs.bat" /SC MONTHLY schtasks /run /TN obs_exe schtasks /delete /TN obs_exe /F // 2분뒤 실행하기. (파이썬 코드로...) now = datetime.datetime.now() now2 = now + datetime.timedelta(minutes=2) st = now2.strftime('%H:%M') input = f"schtasks /create /TN obs_exe_task /TR \"C:\\obs.bat\" /SC ONCE /st {st}" output = ps_util.execute(input, is_shell=True, is_non_blocking=False)
- 아... 1818 부팅후~ 접속 세션이 없어서 안되나? 부팅 스크립트(tasks.yaml) 단계말고, ssh 접속해서 schtask 만들어 보까?
- ...
- 5차시 : windows rdp python
- python RDP, pyautogui remote desktop, python remote control windows, ...
- https://stackoverflow.com/questions/73117457/how-to-open-gui-application-on-windows-via-ssh-if-no-active-user-sessions
- https://stackoverflow.com/questions/56949942/pyautogui-on-rdp
- 혹시? 자동 로그인 이슈 ??? tscon ???
- 181818 그냥 맥서버로 넘어가자 더럽다 ㅎㅎㅎ
- 1차시 : OpenSSH 설치후, (비번없이) ssh 접속하여 실행하면 어떻까?
- MacOS 14.0
- 여윽시! 맥은 리눅스 써뻐! 무난히 잘 설치됨
- ssh 접속후, 실행! 잘 되는거 같았음...
- open -a /Applications/OBS.app
- open -a /Applications/unity.app
- 이제 crontab -e -l 잘 하면 되겠지???
- */1 * * * * chmod 777 boot.sh
- */1 * * * * boot.sh > /dev/null 2>&1
- 아놔~ 시이발~ 재부팅후 crontab 동작 했는데... 프로그램 안뜨네? 아오!!!
-
#!/bin/bash if [[ -f "/boot.log" ]] then exit 0 fi echo "OBS" >> /boot.log cd /Applications && open OBS.app >> /boot.log sleep 1
- 알고봤더니, 재부팅 -> (로그온없이) -> ssh -> 실행하면 오류남
- (별첨1)
- 대 좌절후... 맥 설정 마지막으로 보다... '자동 로그인' 및 '원격 스트립트' 활성화 후~
- 재부팅 -> open ... -> 와ggggg 이게되네 ㅎㅎㅎㅎㅎ
- 아... 더 진행 할 의욕 사라짐 ㅎㅋㅎ (OBS 송출까지 확인후, 크론orSSH 로 자동화)
- Windows Server 2022
- EC2 인스턴스 중단 -> 재시작 -> 기존 RDP 접속 안됨 이슈
- 우클릭 → 편집 → 로그온 → 새로 작성 -> 다시 된거 같음!
- (사운드 : 리모트 서버 재생)
- (드라이브 및 포트 : 허용)
- RDP 접속후, 나갈때~ 리모트 사운드가 끊기는(?) 이슈
- ...
- base 인스턴스 기반으로 또 AMI 만들기
- AWS 콘솔 → EC2 → base 인스턴스 → 연결 → PublicDNS 복사 및 암호
- → RDP 클라이언트 → 컴퓨터 수정 및 저장 → 연결 → (AMI 작업) → EC2LaunchV2 → …
- ...
-끝-
'AWS' 카테고리의 다른 글
Amazon DynamoDB (정리중...) (0) | 2023.11.21 |
---|---|
The Complete AWS SAM Workshop (0) | 2023.07.18 |
AWS SAM 과 Lambda 이미지 커스텀 (0) | 2022.08.31 |
AWS SAM <- Mangum(fastAPI) (0) | 2022.08.09 |
Amazon EFS (0) | 2022.05.19 |