MS AI school 6기

[Microsoft AI School 6기] 1/8(15일차) 정리 - 클라우드 컴퓨팅(3)

parkjiyon7 2025. 1. 8. 17:56

클라우드 컴퓨팅 입문

 

Wordpress 설치 실습

 

워드 프레스

대표적인 웹 콘텐츠 관리 시스템(Contents Managment System)으로 개인들도 손쉽게 웹 사이트를 구축할 수 있는 도구

 

워드프레스의 장점

  • 상용자 친화적 인터페이스
  • 플러그인 및 테마
  • 오픈 소스 및 커뮤니티 지원
  • 다양한 용도와 확장성

SSH

SSH (Secure Shell)은 보안되지 않은 네트워크를 토해 컴퓨터 간의 안전한 통신을 가능하게 하는 암호화 네트워크 프로토콜

주로 서버와 같은 원격 시스템에 안전하게 접근하고 관리하기 위한 명령 줄 인터페이스를 통해 사용

 

SSH 인증 방법

  • 비밀번호 기반 인증
  • 공개 키 인증
  • 다중 인증(MFA)

DNS에 도메인 명 추가

DNS에 도메인 명을 추가하는 것은 가비아나 GoDaddy 등의 업체에서 제공하는 서비스를 쓸 수 있지만, 실습을 위해서는 Azure에서 제공하는 도메인 활용

 

DNS 설정 메뉴

가상머신 > 네트워킹 > DNS 이름 > 구성 > DNS 이름 레이블

korea.central.cloudapp.azure.com 이라는 도메인 내에 중복되지 않아야 함

 

Apache 서버 설정 및 Certbot 구성

- Certbot: SSL 인증을 쉽게 도와줌

- HTTPS 도입을 도움

 

Wordpress 설치 - IaaS

 

Azure 설정

1) 리소스 그룹 만들기

탐색 > 리소스 그룹 > 만들기그룹명 지정 > 영역: Korea central

- CLI로 리소스 그룹 생성 가능

 

2) 리소스 만들기

 

3) Marketplace에서 가상머신 선택

  - virtual machine 검색 > Azure services only 체크 > 가상 머신> 만들기

 

4) 가상머신 기본 사항 구성

가상머신 만들기

  - 생성하고자하는 가상 머신 이름 입력(그룹, 지역 확인)

  - DS1_v2로 설정

  - RSA SSH 형식으로 설정(키 쌍 이름 설정)

  - 인바운드 포트 선택

     wordpress이므로 22, 80, 443 선택

- 네트워킹 > 공용 IP 새로 만들기, VM 삭제 시 NIC 삭제 체

 

5) 가상머신 최종 구성 리뷰

  - 만들기 버튼 -> '새 키 쌍 생성' -> '프라이빗 키 다운로드 및 리소스 만들기' -> 해당 파일이 PC에 다운로드 됨

 

리소스 그룹

 

리소스 그룹으로 돌아가면 7개의 항목이 떠야 한다

 

7) 공용 IP 주소 복사

리소스 그룹 > 가상머신 클릭 > 좌측 상단 연결- 공용 IP 복사> 원시 SSH > SSH 명령 복사 및 실행에 pem 파일 경로 입력하고 복사

 

8) 터미널에서 가상머신 접속(windows power shell)

복사하게 되면 아래와 같은 형식으로 나타남  ssh -i .\[프라이빗 키 이름] azureuser@[IP 주소]

탐색기에 powershell 혹은 cmd

 

windows power shell이나 cmd로 접속하여 해당 명령어로 vm 접속

 

접속이 안되는 경우 아래 명령어를 사용해보는 것을 추천한다

icacls <pem file> /reset

icacls <pem file> /grant:r %username%:(R)

icacls <pem file> /inheritance:r

 -> %username%은 디폴트 값임, 로그인한 윈도우 ID

vm 접속

 

위와 같이 뜨면 접속이 완료된 것이다

 

가상 머신 접속 후 환경 설정

1) 업데이트 업그레이드 진행

sudo apt update -y

sudo apt upgrade -y

 

2) Apache2 설치, Maria DB 설치, PHP 언어의 실행 환경을 설치

PHP란

Hypertext Preprocessor의 약자로 서버에서 실행되는 스크립트 언어이다

주로 웹개발에 사용

-> 최근에는 JavaScript(Node.js), Python(Django, Flask) 같은 언어들이 대체재로 등장

 

  • apache2: Apache 웹 서버를 설치합니다.
    • 웹 요청을 처리하고 HTML, PHP 파일을 제공하는 역할.
  • mariadb-server: MariaDB 데이터베이스 서버를 설치합니다.
    • MySQL의 포크로, 데이터 저장 및 관리 시스템.
  • php: PHP 언어의 실행 환경을 설치합니다.
    • 서버 측에서 동적 웹 콘텐츠를 생성.
  • php-curl: PHP에서 cURL 라이브러리를 사용하여 HTTP 요청을 처리하는 확장.
  • php-gd: PHP에서 이미지 처리(GD 라이브러리)를 위한 확장.
  • php-mbstring: PHP에서 다중 바이트 문자열(예: UTF-8)을 처리하는 확장.
  • php-xml: PHP에서 XML 데이터를 처리하기 위한 확장.
  • php-xmlrpc: XML-RPC 프로토콜을 사용하는 PHP 확장.
  • php-soap: PHP에서 SOAP 프로토콜(웹 서비스)을 지원하는 확장.
  • libapache2-mod-php: Apache에서 PHP를 처리하도록 하는 모듈.
  • php-mysql: PHP와 MySQL/MariaDB 간의 연동을 지원하는 확장.

 

sudo apt install apache2 mariadb-server php php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap libapache2-mod-php php-mysql -y

 

3) Apache 실행

sudo systemctl start apache2

sudo systemctl enable apache2

 

apache 실행

 

apache 상태 확인

 

4) mysql_secure_installation

sudo mysql_secure_installation

여러 가지 설정을 완료하면 다음과 같이 뜬다

 

MariaDB setup

 

Remove anonyomous users 이후로 다 y

 

5) IP주소를 브라우저에 검색

 

Apache2 defualt page

 

Apache2 default page가 뜨면 아파치와 연결되었음을 알 수 있다

또한 /var/www/html에 가면 해당 웹페이지의 html 파일을 확인할 수 있다.

sudo systemctl restart apache2로 재실행 가능

 

*****연결이 끊길 경우 ssh -i .\[프라이빗 키 이름] azureuser@[IP 주소] 로 다시 실행*****

- exit 명령어를 통해 VM나갈 수 있음

 

 

MariaDB에 wordpress 데이터베이스 생성 및 설정

1) MariaDB에 접속

sudo mysql -u root -p

 

2) Database(테이블) 생성

CREATE DATABASE wordpress[테이블명]; -> 쿼리는 대소문자 상관 없음

CREATE USER 'wordpress[유저명]'@'localhost' IDENTIFIED BY '[비밀번호]';

-> 'localhost'는 현재 MySQL 서버가 시행되고 있는 동일한 서버를 의미, IP 주소로 외부 접속 할당 가능

 

wordpress

 

wordpress라는 USER가 생성되었음을 알 수 있다

 

- 권한 부여

GRANT ALL PRIVILEGES ON wordpress.*[데이터베이스.* => wordpress 데이터베이스의 모든 테이블] TO 'wordpress'@'localhost'[유저];

유저에게 wordpress 데이터베이스의 모든 테이블에 대한 모든 권한 부

 

*****exit을 통해 VM으로 복귀 *****

 

wordpress 다운로드 및 구성

1) 경로 변경

cd /var/www 로 이동

기존의 html 파일 -> wordpress 다운 받아 압축 풀기---이를 html 일로 대체 할 예정

 

2) wordpress 다운로드

sudo wget http://wordpress.org/latest.tar.gz

 

wordpress 다운로드

 

다운로드를 완료한 후 ls -al로 파일을 확인하면 위와 같이 뜬다는 것을 확인할 수 있다

 

3) 압축풀기

sudo tar -xvzf latest.tar.gz

위의 명령어를 실행하면

 

wordpress

 

위와 같은 파일이 생성된다

 

4) 필요 없는 파일 삭제

sudo rm -rf html

sudo rm -rf latest.tar.gz

sudo mv wordpress html

 

기존 html 파일과 latest.tar.gz 파일을 삭제 후 

html 파일로 wordpress 파일을 이름을 변경하여 준다

 

5) 파일 권한 변경

 

sudo chown -R www-data:www-data html[경로]

 

파일 권한 변경

 

변경할 소유자[www-data]:그룹[www-data]

www-data는 보통 Apache 또는 Nginx와 같은 웹 서버의 기본 사용자 계정 및 그룹으로 사용

이 소유자와 그룹으로 설정하면 웹 서버가 파일에 접근하거나 작업할 수 있도록 권한을 부여

 

sudo chmod -R 775 html

권한을 775로 변경하여 준다

 

apache의 user name, group name이 www-data이다

따라서 html 파일의 권한은 apache에게 제공한 것이다

 

이러한 설정을 마치면 아래와 같은 화면이 뜬다

 

클라우드 public IP로 브라우저에서 검색

 

Public IP 화면에서의 환경 설정(Wordpress 환경 설정)

이후, PublicIP로 접속한 화면에서 데이터베이스 이름, 사용자명 등을 입력하여 주면 된다

 

ls -al html

을 VM에서 실행하면(/var/www$) wp-config.php 파일이 생성되었음을 알 수 있다

 

이후, public IP로 들어간 word press에서 사이트 제목 등의 정보를 입력하면 된다

wordpress

 

이후 설치 실행을 누르고 정보를 채운 다음 설치를 하면 된다.

성공하면, 워드프레스에 로그인할 수 있다.

 

wordpress

 

도메인 생성

1) DNS 이름 레이블 지정

Azure 접속> 생성한 가상 머신

> 개요 > DNS이름 > 구성되지 않음 클릭

> DNS 이름 레이블(옵션) 입력 > 저장

 

이후, 다시 개요로 가면 DNS 이름이 만들어져 있음을 알 수 있다

이를 브라우저에 검색하며 블로그 창이 띄워 진다

 

HTTPS 적용

1) certbot 설치

sudo apt install python3-certbot-apache -y

 

certbot 설치

 

2) Certbot을 사용하여 Apache 웹 서버에 SSL 인증서를 설정

sudo certbot --apache -d '[DNS명]'

아까 만든 DNS 명을 활용하여 아파치 웹에 SSL 인증서를 설정하는 명령어이다

명령어 실행 후 이메일을 입력 하는 등 몇 가지에 답하면 설치가 완료된다

이후, 도메인을 브라우저에 검색하면

 

domain

 

아까와 다르게 안전하게 연결되었다고 뜨는 것을 확인할 수 있다

 

3) 웹사이트에 적용

[Public ip]/wp-admin/

로 워드프레스 접속

설정 > 일반 설정 > 워드프레스 주소를 https:// [도메인]로 변경하여 주면 된다

성공할 경우 DNS를 브라우저에 입력하였을 ㅐ

 

wordpress

 

안전하게 접속할 수 있게 된다

 

이제 테마 등을 변경하여 블로그를 꾸밀 수 있다

 

wordpress

 

 

오늘의 간단한 후기

 

처음으로 Azure를 다뤄보고 접속할 수 있어서 좋은 경험이었다. 또한 웹사이트 접속을 위해 shell과 http 뿐만 아니라 보안을 위한 https 를 적용시킬 수 있는 방법을 배울 수 있어서 좋았다. 지난 번 프로젝트할 때에는 어떻게 해야하는 지 감조차 없어서 찾아보는 것이 힘들었는 데, 이렇게 절차대로 하니 외우진 못하더라도 무엇을 해야하는 지에 대한 감을 찾을 수 있어서 좋은 수업이었던 것 같다. 모두가 따라올 수 있도록 천천히 진도를 나가주셔서 좋았다.

 

 

 

출처

 

[1] Microsoft, "Azure account and subscription purchase options," *Azure*. [Online]. Available: https://azure.microsoft.com/ko-kr/pricing/purchase-options/azure-account/search?icid=free-search. [Accessed: Jan. 08, 2025].

 

-If any problem for references, or any questions please contact me by comments.

-This content is only for recording my studies and personal profiles

 

일부 출처는 사진 내에 표기되어 있습니다

본문의 내용은 학습과 개인 profile 이외의 다른 목적이 없습니다

출처 관련 문제 있을 시 말씀 부탁드립니다

상업적인 용도로 사용하는 것을 금합니다

본문의 내용을 Elixirr 강의자료 내용 및 Microsoft Learn(정종현 강사님)을 기반으로 제작되었습니다

깃허브 소스코드의 내용을 담고 있습니다

본문의 내용은 MS AI School 6기의 강의 자료 및 수업 내용을 담고 있습니다.

반응형