41/120
미니프로젝트 진행 및 README 작성
AWS WordPress 설계 및 구현
프로젝트 과정
VPC 생성
VPC 마법사 시작
VPC 설정
가용영역 지정
퍼블릭 서브넷 수 지정
프라이빗 서브넷 수 지정
NAT 게이트웨이 수 지정
VPC 엔드포인트 설정
DNS 옵션
VPC 미리보기
VPC 생성
보안 그룹 생성
sg_bastion
기본 세부 정보 설정
인바운드 규칙
아웃바운드 규칙
기본설정 사용
태그
기본설정 사용
sg_web
기본 세부 정보
인바운드 규칙
아웃바운드 규칙
기본설정 사용
태그
기본설정 사용
sg_db
기본 세부 정보
인바운드 규칙
아웃바운드 규칙
기본설정 사용
태그
기본설정 사용
sg_web
기본 세부 정보
인바운드 규칙
아웃바운드 규칙
기본설정 사용
태그
기본설정 사용
sg_ELB
기본 세부 정보
인바운드 규칙
아웃바운드 규칙
기본설정 사용
태그
기본설정 사용
bastion_host 구축
인스턴스 생성
AMI 선택
인스턴스 유형 선택
인스턴스 세부 정보 구성
네트워크 설정
스토리지 추가
기본 설정 사용
태그 추가
기본 설정 사용
보안 그룹 구성
검토 및 시작
설저사항 검토
키 페어 생성
bastion_host 접속
생성한 키가 있는 윈도우 폴더> ssh -i .\키 파일 ec2-user@bastion의 퍼블릭 IP
Last login: Fri Apr 8 10:28:19 2022 from *
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
14 package(s) needed for security, out of 17 available
Run "sudo yum update" to apply all updates.
Web Server 구축
인스턴스 생성
AMI 선택
인스턴스 유형 선택
인스턴스 세부 정보 구성
네트워크 설정
스토리지 추가
기본 설정 사용
태그 추가
기본 설정 사용
보안 그룹 구성
검토 및 시작
설저사항 검토
기존 키 페어 선택
Web Server 접속
bastion 접속
생성한 키가 있는 윈도우 폴더> ssh -i .\키 파일 ec2-user@bastion의 퍼블릭 IP
Last login: Fri Apr 8 10:28:19 2022 from *
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
14 package(s) needed for security, out of 17 available
Run "sudo yum update" to apply all updates.
키 페어 복사
[ec2-user@bastion ~]$ vi .ssh/key
[ec2-user@bastion ~]$ chmod 400 .ssh/key
[ec2-user@bastion ~]$ ssh -i .ssh/key ec2-user@web server의 프라이빗 IP
Last login: Fri Apr 8 10:32:18 2022 from bastion
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
14 package(s) needed for security, out of 17 available
Run "sudo yum update" to apply all updates.
[ec2-user@webserver ~]$
Mariadb 설치
[ec2-user@webserver ~]$ sudo yum -y install mariadb-server
APACHE(httpd) 설치
[ec2-user@webserver ~]$ sudo yum -y install httpd
Apache 활성화
[ec2-user@webserver ~]$ sudo systemctl start httpd
[ec2-user@webserver ~]$ sudo systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
php 설치
[ec2-user@webserver ~]$ sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
wordpress 다운
wordpress 설치 패키지 다운
[ec2-user@webserver ~]$ wget https://wordpress.org/latest.tar.gz
압축해제
[ec2-user@webserver ~]$ tar -xzf latest.tar.gz
[ec2-user@webserver ~]$ ls wordpress/
index.php wp-includes
license.txt wp-links-opml.php
readme.html wp-load.php
wp-activate.php wp-login.php
wp-admin wp-mail.php
wp-blog-header.php wp-settings.php
wp-comments-post.php wp-signup.php
wp-config-sample.php wp-trackback.php
wp-content xmlrpc.php
wp-cron.php
wordpress 구성
wordpress 설정 파일 편집
샘플 복사
[ec2-user@webserver ~]$ cp wordpress/wp-config-sample.php wordpress/wp-config.php
편집
[ec2-user@webserver ~]$ vim wordpress/wp-config.php
...
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress-db' );
/** Database username */
define( 'DB_USER', 'wordpress-user' );
/** Database password */
define( 'DB_PASSWORD', '데이터베이스 비밀번호' );
/** Database hostname */
define( 'DB_HOST', 'RDS의 엔드포인트' );
...
Apache 설정
wordpress 설정 파일 이동
[ec2-user@webserver ~]$ sudo cp -r wordpress/* /var/www/html/
Apache 문서 루트에서 모든 재정의 허용 및 php 연동
[ec2-user@webserver ~]$ sudo vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
...
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
...
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
파일 권한 수정
/var/www/ 소유권을 Apache 사용자에게 허용
[ec2-user@webserver ~]$ sudo chown -R apache /var/www
/var/www 및 하위 그룹 소유권을 apache에게 허용
[ec2-user@webserver ~]$ sudo chgrp -R apache /var/www
/var/www 그룹 쓰기 권한추가
[ec2-user@webserver ~]$ sudo chmod 2775 /var/www
[ec2-user@webserver ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;
[ec2-user@webserver ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;
Apache 재시작하여 새 그룹 및 권한 가져오기
[ec2-user@webserver ~]$ sudo systemctl restart httpd
RDS를 이용한 데이터베이스 구축
서브넷 그룹 생성
서브넷 그룹 세부 정보 설정
서브넷 추가
생성완료
데이터베이스 생성
데이터베이스 생성 방식 선택
엔진 옵션 선택
템플릿 선택
가용성 및 내구성
기타 설정
DB 인스턴스 클래스 선택
스토리지 선택
연결설정
퍼블릭 액세스
보안 그룹 설정
가용 영역 설정
데이터베이스 인증 방식 설정
추가 구성
기본 설정 사용
생성 완료
Web Server에서 접속
[ec2-user@webserver ~]$ mysql -u admin -p -h RDS의 엔드포인트
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 8.0.27 Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
WordPress 사용자 생성
MySQL [(none)]> CREATE USER 'wordpress-user'@'10.0.%' IDENTIFIED BY '비밀번호';
Query OK, 0 rows affected (0.00 sec)
MySQL [mysql]> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | admin |
| 10.0.% | wordpress-user |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | rdsadmin |
+-----------+------------------+
7 rows in set (0.00 sec)
wordpress 데이터베이스 생성
MySQL [(none)]> CREATE DATABASE `wordpress-db`;
Query OK, 1 row affected (0.01 sec)
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wordpress-db |
+--------------------+
5 rows in set (0.00 sec)
WordPress 사용자에게 권한 부여
MySQL [(none)]> GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"10.0.%";
Query OK, 0 rows affected (0.01 sec)
MySQL [mysql]> SHOW GRANTS FOR 'wordpress-user'@'10.0.%';
+-----------------------------------------------------------------------+
| Grants for wordpress-user@10.0.%
|
+-----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `wordpress-user`@`10.0.%`
|
| GRANT ALL PRIVILEGES ON `wordpress-db`.* TO `wordpress-user`@`10.0.%` |
+-----------------------------------------------------------------------+
2 rows in set (0.01 sec)
데이터베이스 권한 새로고침
MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
ELB 구축
대상 그룹 생성
그룹화 대상 종류 선택
이름 지정 및 VPC 설정
Health checks
타겟 등록
대상그룹 생성
로드밸런서 생성
로드밸런서 유형 지정
기본 설정
네트워크 연결
VPC 지정
서브넷 지정
보안그룹 지정
리스너 지정
로드밸런서 생성
로드밸런서의 DNS 이름으로 웹 접속
Auto Scaling
Web Server Auto Scaling
Web Server 인스턴스 이미지 생성
이름 지정 및 설정
이미지 생성
시작 템플릿 생성
이름 지정
AMI 지정
인스턴스 유형 지정
키 페어 지정
네트워크 설정
네트워크 인터페이스 구성
스토리지 구성
시작 템플릿 생성
Auto Scaling 그룹 생성
시작 템플릿 구성 및 구성 선택
네트워크 지정
로드밸런서 연결
상태확인 설정
그룹 크기 설정
자동 조정 설정
태그 설정
인스턴스 추가 된 모습 확인
bastion Auto Scaling
bastion 인스턴스 이미지 생성
이름 지정 및 설정
이미지 생성
시작 템플릿 생성
이름 지정
AMI 지정
인스턴스 유형 지정
키 페어 지정
네트워크 설정
스토리지 구성
시작 템플릿 생성
Auto Scaling 그룹 생성
시작 템플릿 구성 및 구성 선택
네트워크 지정
로드밸런서 연결
상태확인 설정
그룹 크기 설정
자동 조정 설정
태그 설정
프로젝트 결과
wordpress 접속
언어설정
사용자 생성
로그인
메인페이지
ken의 wordpress 접속
참고문헌
Author And Source
이 문제에 관하여(41/120), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@numerok/41120저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)