AWS Cloud Club
[ACC] Amazon EC2 동적 웹사이트
rec-of
2025. 1. 21. 14:41
- 기존 EC2 인스턴스의 AWS Cloud9 IDE에 연결
- EC2 인스턴스 환경을 분석하고 웹 서버에 액세스할 수 있는지 확인
- 웹 애플리케이션을 AWS Systems Manager Parameter Store를 사용하는 EC2 인스턴스 설치
- 웹 애플리케이션 테스트
- AMI 생성
- 웹 애플리케이션의 두 번째 사본을 다른 AWS 리전에 배포
챌린지 #1 웹사이트를 호스팅할 EC2 인스턴스 준비
1단계: 기존 EC2 인스턴스 분석
- Services 옆 검색창에 EC2 검색 후 선택하여 EC2 콘솔로 이동, 그 다음 Instances 선택.
2단계: EC2 인스턴스에서 IDE에 연결하기
AWS Cloud9은 EC2 인스턴스에서 실행할 수 있는 서비스. 코드 편집기, 디버거, 터미널 같은 기능이 포함된 통합 개발 환경(IDE) 제공.
AWS Cloud9 환경을 사용하면 키 페어를 다운로드할 필요 없이 PuTTY나 비슷한 SSH 소프트웨어로 EC2 인스턴스에 연결 가능. 또 AWS Cloud9에서는 Linux 인스턴스 파일을 편집하려고 vi나 nano 같은 명령줄 텍스트 편집 도구를 쓸 필요 없음.
- Services 옆 검색창에 Cloud9 검색 후 선택하여 AWS Cloud9 콘솔로 이동. Environments 페이지에서 CafeWebServer 환경을 볼 수 있음. 유형이 EC2 인스턴스라고 표시돼 있음.
- Open 선택하면 EC2 인스턴스에서 실행 중인 AWS Cloud9 IDE에 연결됨.
3단계: LAMP 스택 환경 분석하고 웹 서버에 접근할 수 있는지 확인하기
- OS 버전 확인:
AWS Cloud9 bash 터미널에서 cat /proc/version - 웹 서버, 데이터베이스, PHP 세부 정보와 서버 상태 살펴보기:
sudo httpd -v
sudo yum -y install httpd php-mbstring
service httpd status
php --version - 웹 서버와 데이터베이스를 시작하고, 나중에 EC2 인스턴스를 다시 시작하면 자동으로 시작되도록 설정:
sudo chkconfig httpd on
sudo service httpd start
sudo service httpd status
#install database
sudo yum install -y mariadb-server
sudo mariadb --version
sudo systemctl enable mariadb
#
sudo chkconfig mariadb on
sudo service mariadb start
sudo service mariadb status - AWS Cloud9 편집기로 웹 서버 파일을 수정할 수 있게 EC2 인스턴스 설정
ln -s /var/www/ /home/ec2-user/environment
sudo chown ec2-user:ec2-user /var/www/html - 간단한 테스트 웹 페이지 제작
- 인터넷에서 이 웹사이트에 접속할 수 있게 제작 (웹 서버에 호스팅되는 엡 페이지를 인터넷에서 접속할 수 있게 하는 설정을 확인하고 업데이트 해야 함)
챌린지 #2 EC2 인스턴스에 동적 웹 사이트 애플리케이션 설치하기
4단계: 카페 애플리케이션 설치
- 웹 서버 애플리케이션 파일을 다운로드하여 추출
cd ~/environment
wget https://aws-tc-largeobjects.s3-us-west-2.amazonaws.com/ILT-TF-200-ACACAD-20-EN/mod4-challenge/setup.tar.gz
tar -zxvf setup.tar.gz
wget https://aws-tc-largeobjects.s3-us-west-2.amazonaws.com/ILT-TF-200-ACACAD-20-EN/mod4-challenge/db.tar.gz
tar -zxvf db.tar.gz
wget https://aws-tc-largeobjects.s3-us-west-2.amazonaws.com/ILT-TF-200-ACACAD-20-EN/mod4-challenge/cafe.tar.gz
tar -zxvf cafe.tar.gz - 카페 파일을 웹 서버 문서 루트에 복사
unzip cafe.zip -d /var/www/html/ - 애플리케이션의 작동 방식 관찰
- AWS Systems Manager Parameter Store에서 애플리케이션 파라미터를 구성
cd setup
./set-app-parameters.sh - AWS 관리 콘솔의 Services 메뉴에서 Systems Manager를 선택
- 왼쪽 패널에서 Parameter Store를 선택
- 카페 애플리케이션을 지원하도록 MySQL 데이터베이스를 구성
cd ../db/
./set-root-password.sh
./create-db.sh - 생성된 데이터베이스 테이블을 관찰
mysql -u admin -p
오류로 인해 명령어 앞에 sudo 를 붙임
데이터베이스의 콘텐츠(특히, 카페 웹 애플리케이션을 지원하는 테이블)를 관찰하려면 다음 명령을 입력
show databases;
use cafe_db;
show tables;
select * from product;
exit; - PHP에서 시간대 구성을 업데이트
sudo sed -i "2i date.timezone = "America/New_York" " /etc/php.ini
sudo service httpd restart - 카페 웹 사이트가 제대로 작동하고 인터넷에서 웹 사이트에 액세스할 수 있는지 테스트
- 웹 사이트 문제를 해결
역할을 부여했음에도 불구하고 아직 웹사이트 문제가 발생 26:53
5단계: 웹 애플리케이션 테스트
- 주문을 넣어 테스트
http://<public-ip>/cafe
페이지가 열려 있는 브라우저 탭에서 Menu를 선택- 표시된 메뉴 품목 중 하나 이상에 대한 주문을 제출
- 참고: Submit Order 버튼을 찾으려면 아래로 스크롤해야 할 수도 있음
- 메뉴 페이지로 돌아와 다른 주문을 제출한 다음 Order History 페이지로 이동하여 제출한 모든 주문에 대한 주문 세부 정보를 확인
챌린지 #3 여러 AWS 리전에 개발 및 프로덕션 웹사이트 만들기
6단계: AMI 생성 및 다른 EC2 인스턴스 시작
- 정적 내부 호스트 이름을 설정하고 EC2 인스턴스에서 새 키 페어를 생성
sudo hostname cafeserver
ssh-keygen -t rsa -f ~/.ssh/id_rsa
암호를 입력하라는 메시지가 두 번 나타나는데, 이때마다 Enter 키를 누릅니다.
SSH 유틸리티에서 새 키를 사용할 수 있도록 하기 위해 Bash 터미널에서 다음 명령을 실행
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys - AWS 관리 콘솔에서 EC2 서비스 영역을 찾아 인스턴스 선택
- Actions > Image and templates > Create Image를 차례대로 선택
6-1단계: AMI 딥다이브
- AWS 관리 콘솔로 돌아와 Create Image 화면에서 새 AMI를 생성
- 탐색 메뉴에서 AMIs를 선택하고 이미지 상태가 Available이 될 때까지 기다립니다. 이 프로세스는 일반적으로 2분 정도 걸립니다. AMIs를 찾으려면 Images를 확장해야 할 수도 있음
- 다른 AWS 리전에 AMI 생성
- AMI에서 새로운 카페 인스턴스 생성. 생성하는 새 인스턴스는 다음 조건을 충족해야 함
- Region:
Oregon
- Instance Size:
t2.small
- Network:
Lab VPC Region 2
,Public Subnet
- IAM Role:
CafeRole
- Tag:
- Key:
Name
- Value:
ProdCafeServer
- Key:
- Security Group:
- TCP 포트 22를 모두에게 개방하는 cafeSG라는 새 보안 그룹 생성
- TCP 포트 80도 모두에게 개방되도록 설정
- Proceed without a key pair(필요한 경우 이 랩에서 이전에 생성한 키 페어로 연결할 수 있음)
- 인스턴스의 상태가 Available로 바뀌지 않더라도 새 인스턴스에 Public DNS 값이 할당될 때까지 기다림
- Public DNS 값을 복사
- 새 AWS 리전에 필요한 AWS Systems Manager 파라미터를 생성하려면 다음 단계를 완료해야 함
- 버지니아 북부(us-east-1) 리전의 AWS Cloud9 IDE로 돌아갑니다.
- 텍스트 편집기에서 CafeWebServer/setup/set-app-parameters.sh 파일을 엽니다.
- 다음 설정과 일치하도록 파일의 12행을 편집합니다.
region="us-west-2" - 다음 설정과 일치하도록 18행을 편집합니다. 여기서
는 ProdCafeServer 인스턴스의 실제 DNS입니다.
publicDNS="" - File > Save를 선택하여 변경 사항을 저장합니다.
- 스크립트를 실행하려면 IDE의 맨 위로 이동하여 Run 버튼을 선택합니다.