Amazon Linux 2를 실행하는 Amazon EC2 인스턴스에 GUI를 설치하려면 어떻게 해야 하나요?
Amazon Linux 2를 실행하는Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 GUI(그래픽 사용자 인터페이스)를 설치하고 싶습니다.
간략한 설명
GUI를 수동으로 설치하거나 다음 대안 중 하나를 선택할 수 있습니다.
- MATE가 사전 설치된 Amazon Linux 2 Amazon Machine Image(AMI)에서 실행합니다. 자세한 내용은 Amazon Linux 2 MATE 데스크톱 연결 구성을 참고하세요.
- 완전관리형 영구 데스크톱 가상화 서비스인 Amazon WorkSpaces를 사용합니다. 자세한 내용은 Amazon WorkSpaces를 참고하세요.
- 클라우드나 데이터 센터에서 어떤 디바이스로든 원격 데스크톱 및 애플리케이션 스트리밍을 안전하게 제공할 수 있는 원격 디스플레이 프로토콜인 Amazon DCV를 사용합니다. 자세한 내용은 Amazon DCV를 참고하세요.
해결 방법
사전 요구 사항
- SSH를 사용하는 Amazon EC2 사용자로 인스턴스에 연결합니다. 인스턴스는 퍼블릭 서브넷에 있어야 하고 퍼블릭 IP 주소나 탄력적 IP 주소를 통해 액세스할 수 있어야 합니다. 또는 AWS VPN이나 AWS Direct Connect를 사용하여 연결을 설정하면 프라이빗 IP를 통해 인스턴스에 액세스할 수 있습니다. 이는 Bastion Host를 사용하는 환경에는 적용되지 않습니다. 보안을 위해 가상 네트워크 컴퓨팅(VNC) 서버로 가는 트래픽은 SSH를 사용해 터널링됩니다. 보안 그룹에서는 VNC 포트를 열지 않는 것이 좋습니다.
- sudo yum update를 실행해 인스턴스를 업데이트한 다음 인스턴스를 재부팅합니다. 업데이트 및 재부팅에 실패하면 다음 단계를 실행할 때 예기치 못한 결과가 발생할 수 있습니다.
참고: 다음 지침은 Amazon Linux 2에만 적용됩니다. 버전을 확인하려면 다음 명령을 실행합니다.
$ grep PRETTY\_NAME /etc/os-release PRETTY\_NAME="Amazon Linux 2"
MATE 데스크톱 환경 설치
Amazon Linux 2에서 추가로 사용할 수 있고 GNOME 2 기반의 경량 GUI인 MATE 데스크톱 환경을 설치합니다. MATE와 관련한 자세한 내용은 MATE 데스크톱 환경 웹사이트를 참고하세요.
-
MATE 패키지를 설치합니다.
sudo amazon-linux-extras install mate-desktop1.x -y
-
MATE를 모든 사용자의 기본 데스크톱으로 정의합니다.
sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'
TigerVNC 설치
TigerVNC와 같은 VNC 서비스를 설치합니다. TigerVNC와 관련한 자세한 내용은 tigervnc.org 웹사이트를 참고하세요.
-
TigerVNC 서버를 설치합니다.
sudo yum install tigervnc-server -y
-
해당 사용자에 대해 6~8자의 VNC 전용 암호를 구성합니다. 보기 전용 암호를 입력할지 묻는 메시지가 표시되면 n을 누릅니다.
vncpasswd
-
VNC 네트워크가 localhost에 액세스하는 것을 제한해 보안 SSH 터널을 통해서만 사용자가 VNC에 액세스할 수 있도록 합니다.
tigervnc 구성 디렉터리를 생성합니다.sudo mkdir /etc/tigervnc
localhost 옵션을 포함하는 필수 구성 파일을 생성합니다.
sudo bash -c 'echo localhost > /etc/tigervnc/vncserver-config-mandatory'
참고: VNC 세션을 모든 인터페이스에서 실행하여 인터넷에 직접 액세스할 수 있게 하려면 localhost 항목을 해시하십시오. 보안 그룹으로 제한하여 IP 또는 CIDR의 VNC 세션 포트만 허용하는 것이 가장 좋습니다.
-
디스플레이 번호 1에서 VNC 서버를 시작하고 부팅 시 항상 시작되도록 설정합니다.
/etc/systemd/system/에 대한 심볼릭 링크를 사용하여 새 systemd 단위를 작성하세요.sudo ln -s /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
sed 명령을 사용해 새 유닛에 있는 USER 모두를 ec2-user로 바꿉니다.
sudo sed -i 's/<USER>/ec2-user/' /lib/systemd/system/vncserver@.service
systemd 관리자 구성을 다시 로드합니다.
sudo systemctl daemon-reload
부팅 시 서비스를 켜십시오.
sudo systemctl enable vncserver@:1
서비스를 시작합니다.
sudo systemctl start vncserver@:1
서비스가 실행되는지 확인합니다.
sudo systemctl status vncserver@:1
다음 명령을 사용하여 디스플레이 번호 1의 기본값이 포트 5901/TCP인지 확인합니다.
sudo netstat -tulpen |grep 590\*
tcp 0 0 0.0.0.0:5901 0.0.0.0:\* LISTEN 1000 78547 1304/Xvnc tcp6 0 0 :::5901 :::\* LISTEN 1000
VNC를 사용해 GUI에 연결
VNC를 사용하여 GUI에 연결하려면 TigerVNC 소프트웨어를 설치하고 SSH를 사용하여 인스턴스에 연결한 다음 VNC 암호를 입력합니다.
TigerVNC 소프트웨어 설치
TigerVNC는 Windows, Linux, macOS에서 사용할 수 있습니다. 다운로드하려면 TigerVNC 웹사이트를 참고하세요.
- Linux: TigerVNC 패키지는 여러 배포판의 저장소에서 사용할 수 있습니다.
- macOS: TigerVNC-x.y.z.dmg를 다운로드하고 설치합니다. 여기서 x.y.z는 최신 버전을 나타냅니다.
- Windows: tigervnc64-x.y.z.exe(64비트)나 tigervnc-x.y.z.exe(32비트)를 다운로드하고 설치합니다. 여기서 x.y.z는 최신 버전을 나타냅니다.
SSH를 사용하여 인스턴스에 연결합니다
SSH를 사용하여 인스턴스에 연결합니다. 그런 다음 로컬 포트 5901/TCP(VNC)의 모든 트래픽을 인스턴스의 VNC 서버로 전달하는 터널을 생성합니다.
참고: 로컬 호스트에 대한 VNC 네트워크 액세스를 제한하지 않은 경우 보안 SSH 터널을 사용할 필요가 없습니다. 인스턴스 퍼블릭 IP를 사용하여 TightVNC Viewer에 연결할 수 있습니다.
Linux 및 macOS
SSH를 사용하여 인스턴스에 연결할 때 -L 파라미터를 추가해 포트 전달을 활성화합니다. PEM_FILE을 프라이빗 키로, INSTANCE_IP를 인스턴스의 퍼블릭 또는 프라이빗 IP로 대체합니다.
ssh -L 5901:localhost:5901 -i PEM\_FILE ec2-user@INSTANCE\_IP
Windows
PuTTY로 연결을 열 때 포트 포워딩을 구성한 다음 연결을 엽니다.
- 연결 메뉴에서 SSH를 선택하고 터널을 선택합니다.
- 소스 포트 필드에 5901을 입력합니다.
- 대상 필드에 localhost:5901을 입력합니다.
- 추가를 선택합니다.
VNC 암호를 입력합니다
VNC 암호를 입력하려면 다음 단계를 완료하세요.
- 로컬 컴퓨터에서 TigerVNC Viewer를 엽니다.
- VNC 서버 호스트 이름의 경우 localhost:1을 입력하고 연결합니다.
- TigerVNC 설치 섹션 2단계에서 설정한 VNC 암호를 입력합니다.
참고: 연결이 안전하지 않다는 경고를 받으면 무시하세요. VNC 서버에 대한 액세스는 암호화된 SSH 터널을 사용합니다.
(선택 사항) VNC의 암호 인증 끄기
VNC 암호 인증을 끄는 것은 좋은 방법이 아닙니다. VNC 암호 인증이 해제되면 SSH를 사용하여 인스턴스에 연결하도록 승인된 모든 사용자가 터널을 생성하고 VNC 데스크톱에 액세스할 수 있습니다.
단일 사용자 인스턴스이고 VNC에 대한 암호 인증을 끄려면 다음 단계를 완료하세요.
-
다음 명령을 실행하여 VNC Server의 Security Types 설정을 None으로 변경합니다.
echo SecurityTypes=None >> ~/.vnc/config
-
VNC 서버를 다시 시작합니다.
sudo systemctl restart vncserver@:1
(선택 사항) 웹 브라우저 설치(X86만 해당)
AWS에서는 Amazon Linux 2 리포지토리에 Chromium이나 Firefox와 같은 웹 브라우저를 제공하지 않습니다. 이 같은 타사 소스는 Graviton 프로세서(aarch64) 기반의 인스턴스용 웹 브라우저를 제공하지 않습니다.
참고: AWS에서는 타사 소스로 설치한 소프트웨어에 대한 지원을 제공하지 않습니다.
Chromium과 Firefox는 모두 X86 버전에서만 사용할 수 있습니다. 이 같은 브라우저를 설치하려면 다음 단계를 따르세요. 참고: 이 단계는 64비트 Intel 및 AMD 프로세서(x86_64) 기반의 EC2 인스턴스에 적용됩니다.
인스턴스의 아키텍처를 확인하려면 이 명령어를 실행합니다.
$ uname -m
Chromium(Google Chrome을 지원하는 오픈 소스 프로젝트)을 설치하려면 다음 단계를 완료하세요.
-
EPEL 리포지토리를 활성화합니다. 자세한 내용은 Fedoraproject.org 웹사이트에 안내된 EPEL 설명서를 참고하세요.
sudo amazon-linux-extras install epel -y
-
Chromium 패키지를 설치합니다.
sudo yum install chromium -y
Chromium은 애플리케이션 > 인터넷 > Chromium 웹 브라우저 아래 MATE에 설치됩니다.
Mozilla Firefox(현재 사용자만 해당)를 설치하려면 다음 단계를 완료하세요.
-
Linux 64비트용 최신 Firefox 버전을 로컬 컴퓨터에 다운로드합니다. 다운로드에 액세스하거나 Debian Linux용 리포지토리를 추가하려면 mozilla.org 웹사이트를 참조하세요.
-
Firefox를 다운로드한 후 파일을 인스턴스에 복사합니다. 자세한 지침은 Linux 및 Windows 웹사이트를 참고하세요.
-
SSH를 사용하여 EC2 인스턴스에 연결합니다.
-
파일 내용을 추출합니다. 이 예제 명령에서는 파일이 ec2-user의 홈 디렉터리에 있음을 보여줍니다. 필요에 따라 경로와 Firefox 버전 “xx.y”를 변경하세요.
tar jxf ~/firefox-xx.y.tar.bz2 -C ~/
-
데스크톱 아이콘을 생성하려면 vim과 같은 텍스트 편집기를 사용합니다. 다음과 같은 내용으로 ~/Desktop/Firefox.desktop 파일을 생성합니다.
\[Desktop Entry\]Version=1.0 Type=Application Terminal=false Icon=/home/ec2-user/firefox/browser/chrome/icons/default/default128.png Icon\[en\_US\]=/home/ec2-user/firefox/browser/chrome/icons/default/default128.png Name\[en\_US\]=Firefox Exec=/home/ec2-user/firefox/firefox Comment\[en\_US\]=Firefox web browser Name=Firefox Comment=Firefox web browser GenericName\[en\_US.UTF-8\]=Firefox web browser Categories=Network;WebBrowser;
-
5단계에서 만든 바탕 화면 아이콘을 사용해 Firefox를 실행합니다.
-
애플리케이션 실행 프로그램이 신뢰하는 프로그램이 아니라는 내용의 메시지가 표시되면 신뢰할 수 있는 프로그램으로 표시를 선택하고 Firefox를 엽니다.
관련 정보
관련 콘텐츠
- 질문됨 2년 전lg...
- AWS 공식업데이트됨 2년 전