일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- terraform with aws
- GDPR
- aws따라하기
- opt/anaconda3/bin/jupyter_mac.command
- terraform따라하기
- Linux
- 리눅스명령어
- AWS CI/CD
- AWS구축
- aws terraform
- AWS실습
- AWS 공격테스트
- aws
- aws기초
- 쉘스크립트
- aws기본
- terraform기초
- 주피터노트북 설치
- linux명령어
- blue/green배포
- 리눅스기초
- cissp
- Cissp sdlc
- AWS CodeDeploy
- terraform기본
- AWS배포자동화
- 최소권한
- 리눅스
- 리눅스기초명령어
- 직무분리
ysuekkom의 IT study note
[AWS 패턴] PublicSubnet에서 private AZ 내 데이터베이스 LB로 연결/접속하기 I편 본문
[AWS 패턴] PublicSubnet에서 private AZ 내 데이터베이스 LB로 연결/접속하기 I편
ysuekkom 2023. 7. 24. 10:43AWS 따라하기
개인 스터디 기록용
AWS 클라우드 서비스 인프라 구축 이해와 해킹, 보안
이번 실습 포스팅에서는 다중 public AZ에서 로드밸런싱으로 private AZ 내 데이터베이스에 접근하여 정보를 가져오는 실습을 진행해보겠다. 서비스는 워드프레스를 이용한다.
아래 구성도를 참고하기 바란다.
public subnet에 웹서버를 올려 워드프레스 서비스를 실행한다. 2개 이상의 public subnet AZ에 워드프레스를 올려, 로드밸런싱으로 DB에 접근하도록 구현한다. DB는 private subnet에 MySQL로 구성하고, 각 퍼블릭서브넷에서 하나의 데이터베이스로 접근한다.
처음 생성된 워드프레스를 이미지로 저장 후, 다른 퍼블릭서브넷 AZ에 AMI로 생성한다.
단계별로 실습을 진행해보자!
기본적인 환경 구성에 대한 내용은 [aws 기본]이라는 머릿글로 작성해두었으니, 처음 실습을 진행하는 사람이라면 아래 포스팅을 먼저 참고하길 바란다!
https://ysuekkom8915.tistory.com/19
1. 기초 환경 구성하기
- VPC 생성하기/인터넷게이트웨이 생성(Public_IGW) 및 VPC에 연결/라우팅테이블 생성(Cloud_Public_rt)>서브넷 연결 편집(public추가)&라우팅연결 하기
- 서브넷 생성하기: private subnet 2개, public subnet 2개 생성하기
- EC2 인스턴스 생성하기: public subnet(10.0.0.0/24)에 wordpress web server 생성하기
- 보안그룹 생성하기: ssh, http port 80 허용
2. 데이터베이스 생성 및 연결하기
>>AWS RDS 진입>서브넷/파라미터/옵션 그룹 생성하기
- 파라미터 그룹
>파라미터 그룹 생성>mysql8.0 선택 > 그룹 이름 및 설명 입력 > 생성
- 옵션 그룹
로그 관리 등의 목적을 위한 옵션 그룹 생성하기: 그룹 생성>옵션 그룹 이름/설명 입력 > 엔진 선택:mysql 8.0 >생성
- 서브넷 그룹
서브넷 관리를 위한 서브넷 그룹 생성(PrivateSubnet에 연결)
>>DB서브넷 그룹 생성 >이름/설명 입력>VPC 선택>서브넷 추가_가용영역: privatesubnet 2개 가용영역 추가, 서브넷 선택>생성
>>DB생성하기
RDS>데이터베이스 생성하기 진입>생성하기
- 데이터베이스 생성 방식 선택: 표준 생성
- 엔진 옵션: MySQL / 엔진 버전: 최신
- 템플릿: 프리티어 사용(간단한 실습으로 프리티어 사용)
- 설정: DB 인스턴스 이름/자격 증명(로그인 방법)/pw설정하기(admin/wordpress)
- 인스턴스 구성: default 값으로 진행
- 스토리지: default 값으로 진행
- 연결: 실습을 위해 생성했던 VPC 선택/ DB서브넷 그룹 선택
- VPC 보안그룹: 생성하여 연결(mysql-db-SG01) / AZ는 DB가 위치한 서브넷으로 지정(10.0.5.0/24) / 추가구성: 3306 port
- 데이터베이스 인증: 인증 옵션 선택 - 암호인증
- 데이터베이스 옵션(추가구성): 초기 데이터베이스 이름/DB파라미터그룹/옵션그룹 선택(전 단계 생성했던 그룹 선택)/자동백업 사용하기 해제
(생성에 시간 소요)
생성 완료 후, 연결&보안 > 엔드포인트 및 포트 정보 확인
>>보안: VPC 보안 그룹 수정 작업: mysql-db-SG01 진입: 인바운드 규칙 편집(VPC 10.0.0.0/16 허용하기)
3. PublicSubnet EC2 인스턴스로 접속/워드프레스 서비스 생성하기
PublicSunet(10.0.0.0/24)에서 워드프레스 설치 후, DB(10.0.5.0/24)로 접속 할 수 있도록 작업하기
sudo apt update
sudo apt install mysql-client
sudo mysql -u admin -p -h [DB 엔드포인트 도메인]
>>DB 접속 및 wordpress 생성 결과 화면
>>EC2 PublicSubnet(10.0.0.0/24)에 Apache2 설치하기
sudo apt install apache2 //설치하기
sudo service apache2 start //apache 시작하기
>>EC2 IP로 주소창 접속: http:[IP] 확인하기
>>php 설치 후, DB연결하기
sudo apt install php libapache2-mod-php php-mysql //php 환경 설치 및 library module - db결하기
sudo vim/var/www/html/info.php //apache 메인 페이지(root page) 만들기
>>php 환경이 정상적으로 잘 설치되었는지 phpinfo()함수를 통해 확인
>>웹페이지 다시 접속: http://[IP]/info.php 로 진입: 정상적으로 불러오므로 php환경 설치 성공
>>메인페이지에 워드프레스 최신 버전 다운로드 받기
cd /var/www/html //경로 이동
sudo wget -c http://wordpress.org/latest.tar.gz //최신버전 압축 파일 다운받기
ls
sudo tar -xzvf latest.tar.gz //압축 풀기
ls //wordpress 파일 확인 가능
>>결과 확인
>>권한 부여 및 수정하기
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress/
>>wp-config-sample.php 파일을 복사하여 wp-config.php파일로 DB 연결 및 페이지 수정
ls //wordpress 디렉터리 내 파일 리스트 보기
sudo cp wp-config-sample.php wp-config.php //wp-config.php이름으로 복사하기
ls //결과 확인
wp-config.php 안에는 데이터베이스 connection 정보가 존재하기 때문에 중요하다. 편집기를 이용하여 수정해서 사용한다.
sudo vim wp-config.php
수정 필요
- DB_NAME: wordpress
- DB_USER: admin
- DB_PASSWORD: 개인이 지정한 패스워드 입력
- DB_HOST: 생성된 데이터베이스 연결&보안 탭 내 엔드포인트 도메인 주소 복사 붙여넣기
>>wordpress 관리자페이지 접속하기
http://[IP주소]/wordpress
>>관리자페이지 접속 성공
[참고]
관리자페이지 > 설정> 워드프레스 주소/사이트주소를 확인해보면 정적 주소로 고정되어있는 것을 확인 할 수 있다.
이는 퍼블릭서브넷에 새로운 EC2-워드프레스 서비스를 연결하여 로드밸런싱을 통해 DB로 연결하고자 할 때, 문제가 된다.
>>이후 작업에서 정적주소가 아닌 도메인주소로 변경하는 작업을 수행 할 예정
>>워드프레스 메인 페이지 확인
마치며
다음 포스팅에서는 기존 워드프레스 서비스가 올라간 EC2를 이미지화하여 새로운 EC2를 생성, DB로 로드밸런싱하여 연결하는 구성 실습을 진행해 보겠다.
'Cloud Service > AWS 패턴' 카테고리의 다른 글
[AWS 패턴] AWS 쾌속 개발 환경 구축하기-자동화 및 무중단 릴리스(관리형 컨테이너 ECS, Blue/Green 배포) (0) | 2023.08.02 |
---|---|
[AWS 패턴] 로드밸런싱 구축 및 DB 연결하기 II편 (0) | 2023.07.25 |
[aws 패턴] aws 백업 알아보기 - 장애대비편(가용성 확보, 장애대비 오프사이트 구성 등) (1) | 2023.01.14 |
[AWS 패턴] AWS IAM 사용자그룹 및 사용자 추가, 권한/정책 부여 실습(Terraform IaC) (0) | 2023.01.10 |
[aws 패턴] 인메모리 캐시 & 고속 RDB를 활용하여 성능 요구사항 만족하기 (0) | 2023.01.09 |