* 진행 일자 : 2025.05.16 ~ 05.19
>>> 1일차
아키텍쳐 구조
1. AZ-a, AZ-b, AZ-c 분산 배포되는 로드밸런싱 환경 구성
2. Web1, 2는 Private Subnet에 배포 & NAT를 통한 외부 통신 가능하도록 구성
3. Web1, 2는 Bastion server를 통해서만 ssh 접속 가능하도록 구성
4. LB(Load Balancer)를 통하여 Web서버 접근 시 서버 별로 다른 웹페이지 출력
* Bastion : Cloud9 또는 EC2 사용
진행 과정
1. 기본 인프라 구조 설계 (VPC, 서브넷, 라우팅테이블, NAT게이트웨이, 인터넷게이트웨이)
- 3개의 가용영역, 각 영역 내 public, private 서브넷 한 개씩 생성
- 인터넷게이트웨이 > public용 라우팅 테이블 > public 서브넷
- NAT게이트웨이 > private용 라우팅 테이블 > private 서브넷
2. 인스턴스 생성
Bastion
- AZ-a의 public
Web
- AZ-b, AZ-c의 private
3. Bastion에 접속해서 private Web Server에 접속해보기
// cmd에서 Bastion으로 pem파일 전송
scp -i [KEY.pem] [KEY.pem] ec2-user@BastionIP:/home/ec2-user/
// 권한 변경 후 내부 IP 접속
chmod 600 [KEY.pem] // 권한 변경
ssh -i [KEY.pem] ec2-user@[내부IP]
// 내부에 웹 서버 구축
sudo yum update -y
sudo yum install httpd -y
sudo service httpd start
// html 파일 수정
sudo -i
echo "Web Server 1" | sudo tee /var/www/html/index.html
- We1, Web2에서 같은 작업 수행
- 이 단계에서 웹서버를 구축하지 않고 다음단계로 넘어갔으니,,, 웹 페이지 접속이 안됐던 것이었다. 로드밸런서 생성하고 연결까지 마쳤는데 자꾸만 웹페이지 연결이 안된다는 메시지가 떴다. 당연하다. 웹 서버 구축을 안했으니 ㅋㅋㅋ 로드밸런서 대상그룹에 각 인스턴스가 unhealthy로 뜨길래 포트문제인 줄 알고 지웠다 새로 만들었다 엄청난 삽질을 했다.
4. 로드밸런서 생성
- 로드밸런서 생성 후 DNS이름에 뜬 주소 복사 후, 웹 페이지 주소창에 붙여넣기 -> 웹 서버 정상 동작 확인
- 서버 별 서로 다른 웹 페이지 출력 확인
>>> 2일차
아키텍쳐 구성도로 작성하여 문서화
활용 기술 : Draw.io
draw.io
Security-first diagramming for teams. Bring your storage to our online tool, or save locally with the desktop app. No login or registration required.
www.drawio.com
- 웹 기반의 무료 다이어그램 작성 도구
- 공식 아이콘 모음 : https://aws.amazon.com/ko/architecture/icons/
추가 설계방안 모색
- AWS WAF을 참고하여 보완
- "내가 어떤 서비스를 만들 것인가?"에 따라 어떤 원칙을 중요시해야하는 지 다름
서비스의 사용자 수가 얼마나 되는가?
그 정보가 민감정보인가?
구성도에 반영
- '갤럭시 S25 사전예약 사이트'를 구현한다고 가정
1) 가용성 : Application Load Balancer, Auto Scaling Group
2) 보안/안정성 : WAF, S3/EBS
3) 비용 최적화 : RDS/S3/Auto Scaling
'KT aivleschool' 카테고리의 다른 글
[5주차] RAG (2) | 2025.05.22 |
---|---|
2차 미니프로젝트 : AI 면접관 Agent 시스템 구축 (1) | 2025.05.19 |
[5주차] LangChain (2) (0) | 2025.05.18 |
[5주차] LangChain (1) (0) | 2025.05.18 |
1차 미니프로젝트 : 스마트폰 센서 데이터 기반 모델 분류 (0) | 2025.05.18 |