[TOAST Study] 1. 인스턴스 생성 & 개발환경 구축
TOAST- Creating Instance
TOAST 스터디 첫번째 과제 : 생성된 프로젝트에 Ubuntu Instance 생성 및 개발환경 구축
1. 토스트 가입 후 생성된 프로젝트로 이동하여 Instance를 생성한다.
Ubuntu Server 18.04, 2 Core, 4GB로 생성
키페어가 없다면 새로 생성한다 (.pem) 이 키를 분실하면 인스턴스에 접속이 불가능하므로 백업하여 잘 보관하도록 한다.
키를 생성했다면 보안그룹을 새로 생성하여 접속을 제한한다. linux환경 - Port 22 / Windows환경 - Port 3389
이 때 나는 학습 자료에 있는 내용을 잘못 따라 적다가 22번 포트에서 접속 할 수 있는 ip 주소를 내가 이후에 할당받은 Floating IP 주소로 제한하여 인스턴스 생성 후 접속을 시도 할 때 계속 오류가 발생하였다. 이후 모든 아이피에서 접속 할 수 있도록 0.0.0.0/0으로 수정하였다.
인스턴스 이름은 test-01로 설정하고 Floating IP주소를 새로 할당 받아 해당 인스턴스에 지정해주었다.
TOAST는 사설/공인 IP 모두를 지원하고 있으며, 각각 Fixed IP/Floating IP 로 서비스를 제공하고 있다.
Fixed IP : VPC 내에서 인스턴스를 식별하기 위해 사용할 수 있지만, 인터넷을 통한 외부에서의 접근은 불가능
Floating IP : 외부에서 인스턴스에 접근하기 위해 할당되어야 하는 공인 IP 이다. FIP는 각 사용자 계정에 속한 자원으로 인스턴스와 연결을 해제한 FIP는 다른 인스턴스에 연결을 설정하여 재사용 할 수 있다.
Putty로 접속하기 위해 Putty 설치 시 함께 설치되는 Putty Gen을 켜서 인스턴스 생성 시 만들었던 pem key를 불러와 'Save private key'를 눌러 putty 에서 사용되는 .ppk 파일을 생성한다.
TOAST 스터디 첫번째 과제 : 생성된 프로젝트에 Ubuntu Instance 생성 및 개발환경 구축
1. 토스트 가입 후 생성된 프로젝트로 이동하여 Instance를 생성한다.
Ubuntu Server 18.04, 2 Core, 4GB로 생성
키를 생성했다면 보안그룹을 새로 생성하여 접속을 제한한다. linux환경 - Port 22 / Windows환경 - Port 3389
인스턴스 이름은 test-01로 설정하고 Floating IP주소를 새로 할당 받아 해당 인스턴스에 지정해주었다.
TOAST는 사설/공인 IP 모두를 지원하고 있으며, 각각 Fixed IP/Floating IP 로 서비스를 제공하고 있다.
Fixed IP : VPC 내에서 인스턴스를 식별하기 위해 사용할 수 있지만, 인터넷을 통한 외부에서의 접근은 불가능
Floating IP : 외부에서 인스턴스에 접근하기 위해 할당되어야 하는 공인 IP 이다. FIP는 각 사용자 계정에 속한 자원으로 인스턴스와 연결을 해제한 FIP는 다른 인스턴스에 연결을 설정하여 재사용 할 수 있다.
Putty로 접속하기 위해 Putty 설치 시 함께 설치되는 Putty Gen을 켜서 인스턴스 생성 시 만들었던 pem key를 불러와 'Save private key'를 눌러 putty 에서 사용되는 .ppk 파일을 생성한다.
Putty 설정
Session 에 할당 받은 FIP를 입력, 포트는 22, SSH 연결
Connection- data 에서 Auto-login username 으로 root/ubuntu/debian으로 설정
(나는 debian이 뭔지 몰라 soyoung으로 넣었다. 이후 검색해보니 ubuntu 같은 os 였다.)
Connection-ssh-Auth 에서 PuttyGen으로 생성한 PPK 파일을 로드
이렇게 설정하여 연결을 시도했으나 위에 언급한 보안그룹 설정 실수로 Connection Timeout 오류가 발생했다.
오류 수정 후, 재접속을 시도했으나 아래와 같은 오류가 발생했다.
구글에 해당 오류를 검색하다 해결법으로 발견한 것이 세션 이름으로 넣은 floating ip 앞에 ubuntu@를 입력하는 것이다. 이유는 확실히 모르겠으나 드디어 접속에 성공했다.
각종 필요한 업데이트 및 설정을 진행하였다. 사용자를 추가하여 이름 soyoung으로 sudoers로 등록 하여 파일을 저장하고 터미널을 종료했다.
나는 윈도우 환경을 사용하고 있기 때문에 '원격 데스크톱 연결'프로그램을 이용하여 리눅스 환경에서 ubuntu 서버에 접속하고자 했다. 할당받은 fip와 username/passw 란에 터미널에서 좀전에 생성한 계정정보를 입력하면 접속이 완료된다.
2. 개발 환경 구축
먼저 terminal을 열어 gcc를 설치했다. 상위 버전이 저장되어있는 저장소를 추가 후 업데이트 하고 gcc 9 를 인스톨 한다. (sudo apt-get install gcc-9) 이전에 설치된 gcc 버전이 없기 때문에 따로 삭제 할 것은 없었다. vi 에디터로 간단한 hello.c 파일을 생성하고 컴파일 하려 했는데 라이브러리가 설치되어 있지 않아 오류가 발생했다.
구글에서 라이브러리 설치 방법을 검색하여 명령어를 찾아내어 설치를 진행해 라이브러리를 추가하고 컴파일 및 실행에 성공했다.
$ sudo apt-get install build-essential
OpenJDK 설치
$ sudo apt-get install openjdk-8-jdk
명령어로 설치 완료 후
$ java -version
으로 Java version을 확인한다
$ vi .profile
파일을 열어 아래 내용을 추가한다
export JAVA_HOME="/usr"
export PATH="$JAVA_HOME/bin:$PATH"
저장 후 아래 명령어로 .profile파일을 갱신한다
$ source .profile
Eclipse 설치
$ sudo apt-get install firefox
파이어폭스 설치 후 브라우저에서 eclipse 설치 패키지를 zip파일로 다운 받는다.
$ tar xvfz '다운받은 파일'
명령어로 압축해제 후 설치를 진행한다.
$ sudo mv eclipse /opt
명령어로 /opt ( 추가 패키지를 설치할 때 사용하는 공간) 디렉토리로 이동 시킨다.
바로가기 생성을 위해
$ sudo vi /usr/share/applications/eclipse.desktop
파일을 열어 아래 내용을 추가한다.
Exec, Icon 경로 설정시 파일이 있는 경로를 잘 확인해야 한다. 나는 자바 폴더에 이클립스가 압축해제 되어 경로가 잘못 설정 된 것을 모르고 바로가기 생성에 실패하여 다시 지정했다.
설치된 이클립스로 샘플 프로젝트를 만들어 간단한 HelloWorld 클래스를 작성하여 실행되는 것을 확인했다.
Visual Studio Code 설치
웹브라우저에서 VisualStudio Code의 최신 deb 설치 파일을 다운로드 받는다.
$ sudo dpkg -i '다운받은 설치 파일 명'
명령어로 설치 가능하다. 만약 missing dependencies문제 발생시
$ sudo apt -f install
$ cd /usr/lib/x86_64-linux-gnu 폴더로 이동해
$ sudo cp libxcb.so.1 libxcb.so.1.bak
$ sudo cp libxcb.so.1.1.0 libxcb.so.1.1.0.bak
두 파일을 백업해준다. 나는 cd 인자로 절대 경로를 잘못 주어 /usr 디렉토리 내부가 아닌 /외부 /lib 디렉토리로 이동하여 위 두개의 파일을 찾지 못해 설치를 잘못한 게 아닌가 하고 한참동안 이유를 찾아다녔다. 주의하자
$ sudo cp libxcb.so.1 libxcb.so.1.1.0 /usr/share/code
디렉토리로 복사
Applications Menu에서 Visual Studio Code 정상 실행을 확인해보고 설치를 종료했다.
Image 생성
구동중인 Server Instance를 종료 후 이미지를 생성했다.
No comments: