클라우드의 무한한 힘으로 원격 GUI 앱을 실행합니다.

4794 단어 guivncawsgis
원격 개발 환경을 통해 컴퓨팅 요구 사항을 클라우드에서 제공하는 무한 처리 및 고대역폭으로 전환할 수 있습니다. 생산 환경과 가까운 공유 협업 공간을 만듭니다. 주변에서 성장하는 도구 체인은 새로운 개발자 경험의 흥미로운 부분입니다. 하지만 지금까지 GUI 앱과 함께 사용한 적이 없습니다.

아래는 약 10-15분이 소요되며 필요한 Linux GUI 도구를 실행할 준비가 된 강력한 원격 데스크톱 환경을 얻을 수 있습니다. 과학 연구, 3D 모델링 또는 잠시 동안 더 빠른 컴퓨터를 임대하십시오.

QGIS은 지리 공간 데이터를 로드, 분석 및 시각화하는 데 도움이 되는 도구입니다. 하지만 내 M1 기반 Mac용 빌드가 없습니다. 또한 많은 데이터를 로드하고 싶습니다.



명령줄 또는 스크립팅 작업을 위해 VSCode remote development 또는 SageMaker Studio 노트북을 사용합니다. GUI 앱의 경우 데스크탑 환경을 Ubuntu에 추가하고 VNC를 통해 액세스해야 합니다.

Ubuntu 22.04 EC2 인스턴스로 시작합니다.



저는 CDK을 사용하여 이를 회전시켰지만 콘솔, AWS CLI 또는 사용자에게 편한 것을 사용하십시오.

instance = ec2.Instance(self, "DevInstance",
    instance_type=ec2.InstanceType('t3.micro'),
    machine_image=ec2.MachineImage.generic_linux(
        {'eu-west-1': 'ami-0d75513e7706cf2d9'}
        # The above is Ubuntu22.04 in the Ireland region
        # If you use another region, you'll want to find
        # the AMI for your region
    ),
    block_devices=[
        ec2.BlockDevice(
        device_name="/dev/sda1",
        volume=ec2.BlockDeviceVolume.ebs(
        )
    ],
    vpc=ec2.Vpc.from_lookup(self, "VPC", is_default=True)
)
instance.role.add_managed_policy(
    policy=iam.ManagedPolicy.from_aws_managed_policy_name(
        "AmazonSSMManagedInstanceCore"
    )
)
CfnOutput(self, "InstancePublicIp",
    value=instance.instance_id,
)


EC2 인스턴스에 대한 CLI 액세스 권한을 얻습니다.



저는 AWS의 SSM Session Manager를 사용하고 있기 때문에 SSH 키나 포트 열기에 대해 걱정할 필요가 없습니다.

aws ssm start-session --target $AWS_INSTANCE_ID


데스크톱 환경과 VNC 서버를 설치합니다.



Tiger VNC를 사용하고 있으며 비밀번호로 보호하고 있습니다. 우분투 사용자로 이것을하십시오

sudo su
su ubuntu

sudo apt update

sudo apt install -y \
    xfce4 xfce4-goodies \
    tigervnc-standalone-server tigervnc-common tigervnc-tools



이제 비밀번호 설정과 같은 일부 초기 구성을 수행하기 위해 vnc 서버의 "처음 실행"을 수행해야 합니다.

vncserver


비밀번호를 생성하라는 메시지가 표시되며 선택적으로 사용자가 보기만 할 수 있도록 "보기 전용"비밀번호를 생성합니다. 나는 보기만 설정하지 않았으며 아마도 필요하지 않을 것입니다.

이제 VNC 서버 설정을 계속할 수 있습니다.

cat > /home/ubuntu/.vnc/xstartup<< EOF
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
/usr/bin/startxfce4
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
x-window-manager &
EOF

chmod u+x /home/ubuntu/.vnc/xstartup

echo ':1=ubuntu' | sudo tee -a /etc/tigervnc/vncserver.users

sudo systemctl start tigervncserver@:1.service
sudo systemctl enable tigervncserver@:1.service


서버에서 포트 5901에 대한 액세스를 허용합니다.



SSM Session Manager를 사용하여 터널을 생성했습니다. 이렇게 하면 localhost:5901이 remote:5901로 터널링됩니다. AWS에서 해당 포트를 열지 않아도 되고 모든 것이 더 안전해집니다.

aws ssm start-session --target  $AWS_INSTANCE_ID \
    --document-name AWS-StartPortForwardingSession \
    --parameters \
    '{"portNumber":["5901"], "localPortNumber":["5901"]}'


VNC 클라이언트 연결을 엽니다.



macOS는 하나와 함께 제공됩니다! Or, download a VNC client for your machine

Mac의 파인더에서 "이동"메뉴를 사용하고 "서버에 연결"을 선택하고(또는 command-K를 누름) VNC 연결 경로를 추가합니다.

vnc://127.0.0.1:5901




이제 로컬 Mac의 창에 해당 Ubuntu 서버의 데스크탑 환경이 있습니다. 해당 서버 또는 원하는 GUI 앱에 QGIS를 설치할 수 있습니다. 해당 원격 시스템은 초고속 네트워크 연결을 가지고 있으며 내 네트워크 연결을 통해 (낮은 대역폭) 화면 활동만 스트리밍하면 됩니다. 작은 AWS 인스턴스를 사용하여 비용을 낮추거나 더 많은 데이터를 로드해야 하는 경우 최대 24TB의 RAM과 수백 개의 CPU를 가질 수 있습니다! 내 초라한 노트북은 정말 양의 탈을 쓴 늑대가 될 수 있습니다.

좋은 웹페이지 즐겨찾기