NGINX (CentOS 7) 리눅스 서버 만들기

Azure에서는 다른 클라우드 서비스들과 마찬가지로 리눅스를 운영 체제로 사용하는 가상 컴퓨터를 만들 수 있습니다. 선택할 수 있는 리눅스 운영 체제의 종류가 매우 많고, 마켓플레이스에서 커스터마이징된 버전을 고르거나 필요에 따라 여러분만의 리눅스를 게시할 수도 있습니다.

이 아티클에서는 프로덕션 환경에서 널리 사용되는 리눅스 배포판 중 하나인 CentOS 7 이미지를 이용하여 Azure에 서버 VM을 만들고, NGINX 인스턴스를 구축하는 과정을 설명합니다. SSH 키 생성 등의 과정은 Windows 10이 설치된 컴퓨터를 기준으로 설명하지만 다른 OS에서도 대응되는 과정을 진행할 수 있습니다.

준비하실 것

CentOS 7 VM 만들기

Step 1. Azure 포털에 접속한 후, 화면 좌측의 메뉴들 중 새로 만들기 링크를 클릭합니다.

Step 2. 계산 (Compute)를 선택합니다.
Step 3. CentOS 7 이미지가 바로 보이지 않으므로 모두 보기 버튼을 클릭합니다.
Step 4. 검색어 입력 란에 CentOS를 입력하고 잠시 기다리면 CentOS-based 7.3 이라는 추천 항목이 나타납니다. 이 항목을 선택합니다.
Step 5. 검색 결과에서 CentOS-based 7.3 항목을 클릭합니다.
Step 6. 배포 모델은 기본 선택인 Resource Manager로 되어있는지 확인하고, 만들기 버튼을 클릭합니다.
Step 7. 리눅스 서버의 경우 비밀 번호 방식보다 SSH 공개 키를 직접 제공하는 방식을 많이 사용하므로, SSH 공개 키를 만들어 VM 생성 시에 전달해보겠습니다. 나머지 항목들은 적절하게 선택하거나 입력하도록 합니다.
Step 8. SSH 공개키와 비밀키 쌍을 만들기 위해서는 OpenSSH 호환 SSH 클라이언트 프로그램이 필요합니다. Windows 환경에서 작업하는 경우 putty 패키지를 설치하면 필요한 모든 프로그램을 구할 수 있습니다. Google 또는 선호하는 검색 엔진에 putty를 검색어로 입력하면 공식 웹 사이트에 찾아갈 수 있습니다.
Step 9. 웹 사이트에 방문한 다음 다운로드 링크를 클릭하면 여러 종류의 파일을 다운로드할 수 있는 페이지가 나타납니다.
Step 10. 64비트 버전과 32비트 버전 중 시스템에 해당되는 버전의 MSI 패키지를 다운로드하여 설치합니다. 정확한 운영 체제 버전을 알 수 없다면 32비트 버전의 MSI 파일을 다운로드하여 설치해도 무방합니다.
Step 11. MSI 패키지를 다운로드하고 열면 설치 마법사가 시작됩니다.
Step 12. 설치 대상 폴더를 선택하는 단계입니다. 다음 버튼을 클릭합니다.
Step 13. 어떤 기능을 활성화할 것인지 묻는 대화 상자입니다. 패키지에서 설치하는 모든 프로그램이 시작 메뉴에 표시되므로 기본값으로 두고 Install 버튼을 클릭합니다. 시스템에 변경 사항을 반영하는 동작이 포함되어있으므로 관리자 권한이 필요하기 때문에 권한 상승 과정이 동반됩니다.
Step 14. 설치 작업이 완료되면 아래 화면이 나타납니다. Finish 버튼을 클릭합니다.
Step 15. 공개키를 생성해야 하므로 puttygen 프로그램이 필요합니다. 시작 메뉴에서 putty를 검색어로 입력하면 puttygen이 추천 항목으로 표시됩니다. puttygen 프로그램을 실행합니다.
Step 16. 공개키와 개인키를 생성하기 위한 Putty Key Generator가 실행됩니다. Actions 그룹의 Generate 버튼을 클릭합니다.
Step 17. Key 그룹 안의 비어있는 사각형 영역 안에서 마우스 커서를 두고 임의로 휘젓거나, 노트북의 터치 패드나 포인팅스틱으로 임의로 커서를 움직이거나, 터치 입력이 가능한 경우 영역 위에 손가락을 두고 임의로 문지르면 전달되는 좌표값이 암호화 키 생성을 위한 재료로 사용됩니다. 진행률 표시기가 꽉 찰 때 까지 반복합니다.
Step 18. 키가 생성된 다음 Public key for pasting into OpenSSH authorized_keys file: 텍스트 상자의 텍스트를 모두 선택한 다음 Ctrl + C 키를 눌러 클립보드로 복사합니다.

주의! 개인키를 저장해야 하므로 복사만 하고 창을 닫으면 안됩니다!
Step 19. 이제 Key passphrase에 암호를 입력하고, 같은 암호를 Confirm passphrase에 한 번 더 입력한 후 Save private key 버튼을 클릭합니다.
Step 20. 기억할 수 있는 위치에 PPK 파일을 저장합니다. 이 파일은 나중에 putty나 다른 SSH 호환 터미널 프로그램에서 인증 수단으로 사용할 때 다시 사용되므로 안전한 위치에 저장하도록 합니다.

Step 21. 이제 웹 브라우저로 돌아와서 SSH 공개 키 사용 입력란에 puttygen에서 만든 공개 키를 붙여넣고 녹색 체크 표시가 나타나는지 확인한 다음, 확인 버튼을 클릭하여 다음 단계로 진행합니다.

Step 22. 인스턴스의 크기를 선택합니다. A v2 시리즈 혹은 F 시리즈를 선택하는 것을 추천합니다. 가격대와 사양, 등급 등의 정보를 확인하고 해당 셀을 선택한 다음 선택 버튼을 눌러 다음 단계로 이동합니다.
Step 23. 상황에 따라 알맞은 옵션이나 추가 설정을 지정할 수 있습니다. 변경 사항을 모두 지정하거나 확인한 다음 확인 버튼을 클릭합니다.
Step 24. 최종 내역을 검토한 다음 확인 버튼을 클릭합니다.
Step 25. VM이 생성될 때까지 기다립니다.

CentOS 7 VM 접속하기

Step 1. VM의 생성이 완료되면 상세 정보 블레이드가 나타납니다. 만약 자동으로 표시되지 않으면 새로 생성한 VM을 클릭하여 상세 정보 블레이드를 엽니다.
Step 2. 개요 메뉴를 선택하고 도구 모음의 연결 버튼을 클릭하면 Windows VM일 때와는 다르게 SSH 터미널 프로그램으로 접속할 수 있는 ID와 주소 정보가 표시됩니다. 주소를 메모하거나 클립보드로 복사해둡니다.
Step 3. VM이 생성되었으므로 putty 터미널 프로그램에서 접속 정보를 설정하여 접속이 잘 되는지 테스트할 차례입니다. 시작 메뉴에서 putty를 검색어로 입력하고, PuTTY 프로그램을 실행합니다.
Step 4. Step 2에서 복사한 IP 주소를 Host Name 입력란에 넣고, 포트는 기본 포트인 22번을 그대로 사용합니다. 연결 방식은 기본값인 SSH를 선택합니다.

주의 사항! 기본 SSH 포트인 TCP/22는 튜토리얼 상의 편의를 위하여 사용하는 기본 값이지만, 보안을 위하여 나중에 포트 번호를 변경하는 것이 좋습니다.
Step 5. 비밀 번호 대신 공개키/비밀키 쌍을 사용하여 인증을 대신하기로 하였으므로 앞 단계에서 만든 PPK 파일을 지정해야 연결이 가능합니다. 화면 왼쪽의 트리 뷰에서 Connection – SSH – Auth 노드를 선택하고 Private key file for authentication: 입력란의 Browse 버튼을 클릭합니다.
Step 6. 앞에서 만든 PPK 파일을 찾아 열기 버튼을 누릅니다.
Step 7. 파일이 지정된 것을 확인합니다.
Step 8. 지금까지 설정한 내용을 다음번에 다시 입력하지 않고 편리하게 재사용할 수 있습니다. Load, save or delete a stored session 그룹 안의 Saved Sessions에 알기 쉬운 항목명을 입력하고, Save 버튼을 눌러 저장합니다.
Step 9. 저장된 항목명을 더블 클릭하여 연결을 시작합니다.
Step 10. 보증 기관이 없는 사설 인증 키 체인을 지정하여 생성한 것이므로 신뢰할 수 없다는 경고 메시지가 나타나게 됩니다. Yes 버튼을 눌러 연결을 수락합니다.
Step 11. VM 생성 시 입력한 사용자 이름을 입력하고, Private Key 생성 시 지정한 암호를 입력하여 로그인합니다.
Step 12. VM에 설치된 패키지를 최신 버전으로 업그레이드합니다. 다음의 명령어를 입력합니다.

sudo yum upgrade -y

CentOS 7 VM에 NGINX 설치하고 시작하기

Step 1. CentOS 7 VM이 생성되었으므로 일반적인 설치 가이드를 읽고 작업을 진행할 수 있습니다. Digital Ocean의 CentOS 7 환경에서의 NGINX 설치 가이드를 인용하여 튜토리얼을 계속 진행하겠습니다.
Step 2. CentOS 7 EPEL 리포지터리를 추가합니다. 아래와 같이 명령어를 입력합니다.

sudo yum install epel-release

Step 3. NGINX 패키지를 설치합니다. 아래와 같이 명령어를 입력합니다.

sudo yum install nginx

Step 4. NGINX 설치가 끝났으므로 아래와 같이 명령어를 입력하여 서비스를 활성화하고 시작합니다.

sudo systemctl enable nginx
sudo systemctl start nginx

Step 5. Azure 네트워크 내의 보안을 강화하기 위하여, 시스템 방화벽을 시작하고 정상적인 웹 서비스 접속을 위하여 인바운드 방화벽 허용 내역을 수정해야 합니다. 아래와 같이 명령어를 입력합니다.

sudo systemctl enable firewalld
sudo systemctl start firewalld
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Step 6. 시스템 수준의 방화벽 설정을 변경하였으므로, Azure 네트워크 보안 그룹의 설정도 변경하여 외부에서 연결을 받아들일 수 있게 해야 합니다. VM 블레이드를 열고, 개요 메뉴의 공용 IP 주소의 IP 주소 부분을 클릭합니다.
Step 7. IP 주소 속성 블레이드의 개요 메뉴에서 “다음에 연결됨”에 표시된 항목을 클릭합니다.
Step 8. 네트워크 인터페이스 카드 속성 블레이드의 개요 메뉴에서 “네트워크 보안 그룹”에 표시된 항목을 클릭합니다.
Step 9. 네트워크 보안 그룹 속성 블레이드에서 “인바운드 보안 규칙” 메뉴를 클릭하고, 도구 모음의 “추가” 버튼을 클릭합니다.
Step 10. 이름은 알기 쉬운 이름으로, 우선 순위는 제안된 기본 값으로 그대로 지정하고, 서비스 드롭 다운에서 HTTP를 선택한 후, 작업의 허용 버튼을 클릭하고 확인 버튼을 클릭합니다. 같은  작업을 HTTPS에 대해서도 수행합니다.
Step 11. HTTP와 HTTPS 항목이 추가된 것을 확인합니다.
Step 12. IP 주소를 넣고 외부에서 접속했을 때 아래 그림과 같이 표시되는지 확인합니다.

마무리

이 아티클에서는 CentOS 7 이미지를 이용하여 VM을 만들었지만 더 많은 종류의 VM 이미지를 갤러리에서 찾아 프로비져닝할 수 있습니다. Ubuntu Server, CoreOS, Clear Linux, Redhat Enterprise Linux, Oracle Linux, Asianux 등 매우 많은 종류가 준비되어있습니다.

글쓴이: 남정현

http://www.rkttu.com

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.