처음 만나는 클라우드 보안

[AWS]아마존 리눅스를 활용한 웹페이지 제작 (feat.쉘스크립트) 본문

클라우드 기초/Amazon AWS

[AWS]아마존 리눅스를 활용한 웹페이지 제작 (feat.쉘스크립트)

영민하게 2022. 6. 13. 23:31
반응형

 아마존 리눅스 (Amazon Linux)란?

: Amazon Web Services환경에 최적화된 리눅스, 빠르고 안정적인 구성으로 EC2에서 사용 비중이 가장 높은 AMI이다. Database로 MariaDB가 제공되며 설치 명령어는 'yum'을 사용한다. 

참고) yum install httpd // Apache2 설치


 아마존 리눅스 만들기

1. OS 이미지 선택

2. ssh 연결 확인

Amazon Linux - ssh연결 /  암호화 키로 ssh 접속


 웹서버 구축하기

1. DB서버 설정

- MySQL (MariaDB)

$ sudo systemctl start mariadb

$ sudo mysql -u root -p    //MySQ접속, 패스워드 없음, 엔터

mysql> create database gnuboard;    //데이터 베이스 생성
mysql> create user board@localhost identified by 'pass13#';    //board 로컬 계정 생성
mysql> grant all privileges on gnuboard.* to board@localhost;    //board에게 gnuboard의 모든 테이블 권한 부여

 

2. Web서버 설정

- httpd (Apache2)

$ sudo yum update -y      //-y 모든 설정 yes로 통과

$ sudo yum install httpd      // WEB(apache2)서버 설치

$ sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 // lamp:Linux Apache2 MySQL PHP(웹서버 세트)

$sudo yum install -y mariadb-server    // DB(mariadb)서버 설치

$sudo systemctl start httpd

$sudo usermod -a  -G apache ec2-user    //아파치 그룹(-G apache)에 ec2-user를 추가(-a:add)함

$sudo chown -R ec2-user:apache /var/www    //웹서버 루트 디렉토리(/var/www)의 소유권을 apache그룹의 ec2-user로 변경

$sudo chmod 2775 /var/www    //웹서버 루트 디렉토리의 권한을 2755로 변경(other는 read와 executable만 가능)

$sudo find /var/www -type d -exec chmod 2775 {} \;

$sudo find /var/www -type f -exec chmod 0664 {} \;

$sudo echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php    //php테스트 페이지 확인 http://www. ip주소/phpinfo

 

추가) Shell Script

: 반복되는 Shell 명령어들은 스크립트 형태로 간편하게 작성가능

맨위 선언문 #!/bin/bash  => 메모장으로 .sh 포맷으로 저장 후 S3에 업로드 => wget으로 파일 다운로드 

$ sudo yum update

$ sudo wget 'S3 경로'

$ sudo chmod 700 amazn1.sh   // 초기 다운파일은 권한이 낮음

$ sudo sh amzn1.sh

#!/bin/bash
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
yum install -y httpd mariadb-server
systemctl start httpd
systemctl enable httpd
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

- 웹도구 설치

$ sudo yum install php php-mariadb php-common php-gd php-fpm php-xml php-json php-curl git   // 웹서버툴 설치

$sudo systemctl restart httpd    //웹서버 재시작

Apache2-php 구동확인

3. DB-Web연결

- GNUboard설치

$ cd /var/www/html
$ sudo git clone http://github.com/gnuboard/gnuboard5    //githun에서 소스코드 다운
$ cd gnuboard5
$ sudo mkdir data
$ sudo chmod 777 data    // 사용자, 그룹, 다른 사용자에게 읽고 쓰기 실행 권한 설정

$ sudo systemctl restart httpd    //웹서버 재시작

비밀번호 pass13#으로 변경

- GNUboard-MySQL접속

https://ip주소/gnuboard5

웹페이지 구동모습


참고자료

https://aws.amazon.com/ko/amazon-linux-ami/

 

AWS | Amazon Linux AMI

Amazon Linux AMI는 Amazon Web Services와 긴밀하게 통합되는 패키지와 구성으로 이루어져 있습니다. Amazon Linux AMI는 많은 AWS API 도구와 CloudInit가 미리 설치되어 있는 상태로 제공됩니다. AWS API 도구를 이

aws.amazon.com

반응형
Comments