3일차 강의의 마지막에 실습과제를 받았는데, 실습 과정은 다음과 같다.
<Cloud 서버 구축 실습>
1. Putty를 활용한 azure 서버 ssh 원격 접속
2. web, ftp 서비스 구동을 위한 패키지 설치 및 구동
3. index.html 파일을 생성하고, vi 편집기로 본인만의 메인페이지 생성
5. local pc에서 Newfile 파일 생성하여 FTP로 파일 업로드
0. Azure 서버 만들기
퍼블릭클라우드 서비스로는 AWS, Azure 등이 있는데 이번 실습에서는 Microsoft Azure을 이용하여 퍼블릭 클라우드를 만들 예정이다.
퍼블릭클라우드 서비스에 대해 간단하게 설명하자면, 가상머신이 확장된 버전이라고 생각하면 된다. 가상머신은 로컬 컴퓨터의 물리적인 자원(CPU, Mem, Disk 등)을 논리적으로 땡겨오면서 우분투, centOS, window와 같은 프로그램에 할당하여 사용한다. 이때, 여러개의 가상머신을 동시에 실행시킨다면 각 가상머신별로 자원을 따로 할당해주어야 하는데, 사용자의 PC가 갖고있는 물리적인 자원에 비해 가상머신들이 필요한 자원이 더 많다면 자원을 늦게 선점한(선점하지 못한) 가상머신은 제대로 동작하지 않을 것이다.
따라서 퍼블릭클라우드는 많은 수의 가상머신을 동작시켜야할 때(많은 물리적인 자원이 필요할 때) 이용자에게 돈을 받고 물리적인 자원을 공급해주는 방식이라고 볼 수 있다. 보통 AWS, Azure와 같은 퍼블릭클라우드는 사용할 때 돈을 지불해야 하는데, 이때 가상머신이 기동되면서 자원을 사용하는 만큼 돈을 지불하는 구조이다. (가상머신을 STOP한다면 실시간 금액 업데이트도 중지된다.)
리소스 그룹 생성 -> 리소스 생성
Microsoft Azure의 홈의 상단에서 보이는 "Azure 서비스"에서 리소스 그룹을 클릭하여 리소스 그룹을 생성한다.
화면의 상단 탭 왼쪽에서 "+만들기" 버튼을 클릭하여 그룹을 생성하여준다.
-리소스 그룹에는 사용할 그룹명을 작성
-영역(Resion 설정)에는 서비스의 타겟층, 목적에 따라 적절하게 지역을 선택해준다.
(지역마다 MS가 설치한 전산센터로, 전세계 군데군데에 설치되어 있다. 한국에서 주로 이용하는 서비스인데, resion이 미국이라면 한국 사용자들이 해당 서버로 접속할때마다 미국 전산센터를 거쳐서 접속해야 하므로 서비스이용에 지연이 생길 수 있다. 따라서 서비스의 목적에 따라 적절히 Resion을 잡아주는 것이 중요하다.)
다음으로는 리소스를 생성할 차례이다. 만든 리소스 그룹의 메인 화면에서, 좌측 상단의 "+만들기" 버튼을 누르면 마켓플레이스로 이동한다.
리소스그룹내의 "리소스"는 인스턴스와 같다고 볼 수 있다.
마켓 플레이스에서는 Azure에서 구동시킬 프로그램을 선택하는데, "가상 머신"으로 검색하여 다음과 같은 프로그램을 선택한다. (만들기 -> 가상머신)
다음으로는 가상머신 만들기에서 필요한 가상머신의 크기에 따라 옵션을 선택해준다.
내가 만든 가상머신의 스펙은 다음과 같다. (가린건 개인정보)
가상머신을 제대로 만들었다면 가상머신-개요 페이지의 상단에 다음과 같이 뜰 것이다. (가상머신이 기동중이므로 시작버튼이 비활성화 된 상태) 혹시 시작버튼이 활성화되어있다면 아직 가상머신이 기동하지 않는 상태이므로 "시작"을 눌러 시작하면 된다!
이제 Azure서버의 구동이 시작되었다.
1. Putty를 활용한 azure 서버 ssh 원격 접속
이제 만든 Azure서버에 접속하면 된다.
가상머신 > 개요 페이지의 상단 "기본 정보" 창의 "공용 IP 주소"에서 내가 만든 서버의 공인 IP주소를 확인할 수 있다.
(나의 경우에는 빨간색으로 가려진 4.---.---.---가 Azure서버의 공인 IP주소이다.)
puTTy 프로그램을 실행시켜, Host Name에 서버의 공인 IP주소를 입력해주고, "Open"버튼 클릭
puTTy에 접속하면 아래와 같은 터미널이 생기는데, 차례대로 Azure서버를 만들때 입력했던 아이디와 비밀번호를 입력.
(회색으로 가린건 아이디, 빨간색으로 가린건 공인 IP주소)
2. web, ftp 서비스 구동을 위한 패키지 설치 및 구동
이 상태에서 "netstat -antp"로 현재 포트정보를 확인해보면 http포트인 80번포트와 ftp포트인 21번포트가 열리지 않을 것을 확인할 수 있다.
따라서 아래와 같은 명령어로 http패키지와 ftp패키지를 설치해준다.
(아래 명령어에서 자꾸 오타가 나고,,.. sudo를 안붙여서 오류가 났었다.)
//ftp, http 설치
[ID@RHEL-ID ~]$ sudo yum install vsftpd
[ID@RHEL-ID ~]$ sudo yum install httpd
//ftp, http 실행
[ID@RHEL-ID ~]$ sudo service vsftpd start
[ID@RHEL-ID ~]$ sudo service httpd start
//방화벽 내리기
[ID@RHEL-ID ~]$ sudo service firewalld stop
[ID@RHEL-ID ~]$ sudo setenforce 0
//방화벽 상태 확인
[ID@RHEL-ID ~]$ sudo systemctl status firewalld
[ID@RHEL-ID ~]$ sudo getenforce
위의 명령에서 vsftp + d / http + d 로 뒤에 "d"가 붙어있는 것을 볼 수 있는데, 이는 데몬(daemon)을 의미한다.
위와 같은 작업을 수행하고 나면 80번포트(http)와 21번포트(ftp)가 열린것을 확인할 수 있다.
3. index.html 파일을 생성하고, vi 편집기로 본인만의 메인페이지 생성
//경로 이동 후 index.html 생성
[ID@RHEL-ID ~]$ cd /var/www/http
[ID@RHEL-ID ~]$ touch index.html
//확인
[ID@RHEL-ID ~]$ ls
//vi 편집기
[ID@RHEL-ID ~]$ sudo vi index.html
//vi 편집기
Hello world! <br>
It's 3rd try to save file lol<br>
//esc :wq!
이때, vim 을 sudo로 안열어서 계속 wirte권한이 안된다고 에러가 나느라 index.html의 세번째 Write시도였다.
4. 네트워킹 메뉴에서 FTP 서비스 접속 추가
네트워킹 메뉴에서 오른쪽 상단의 "인바운드 포트 규칙 추가"버튼을 클릭하고, 다음과 같이 ftp와 http 서비스 접속 추가를 수행해주면 된다.
5. local pc에서 Newfile 파일 생성하여 FTP로 파일 업로드
이제 http://[IP주소] 로 주소창에서 접속하면 조금전에 내가 작성했던 index.html 페이지가 뜨는 것을 확인할 수 있다.
index.html을 생성했던 경로에서 touch로 Newfile을 생성해준다.
원래는 index.html밖에 없었던 경로에서 Newfile이 생긴것을 확인할 수 있다.