Conference & Lecture

[웨비나] AWS TechCamp / AWS 핵심 서비스로 웹 애플리케이션 구축

Bay Im 2024. 9. 3. 17:08
  • Amazon VPC
    • Virtual Private Cloud
    • 사용자가 정의한, 논리적으로 격리된 가상의 프라이빗 네트워크 환경
    • Amazon VPC 구성
      • 리전 선택 및 IP 주소 범위 설정→ 가용 영역 내 서브넷 정의→ Internet Gateway 설정→ 라우팅 테이블 구성→ 네트워크 보안 구성
  • Amazon EC2
    • Elastic Compute Cloud
    • AWS 클라우드에서 확장 가능한 컴퓨팅 용량 제공
    • 가상 서버 구축, 보안 및 네트워크 구성, 스토리지 관리 가능
  • AMI
    • Amazon Machine Image
    • 인스턴스 시작에 필요한 정보 제공
    • 동일한 구성으로 여러 인스턴스가 필요할 때 한 AMI에서 여러 인스턴스 시작 가능
  • Elastic Load Balancing
    • 들어오는 애플리케이션 트래픽을 자동으로 분산시킨다.
      • EC2 인스턴스, 컨테이너, IP 주소, Lambda, 가상 어플 라이언스
    • 네트워크 트래픽 분산을 통한 애플리케이션 확장성 개선
    • 트래픽에 따라 자동 조정

 


 

실습

  • IAM 생성
    • AdministratorAccess, IAMUserChangePassword 퍼미션 추가
  • VPC 생성
    • VPC- VPC 생성 클릭
    • 이름 태그: VPC-Lab
    • 가용 영역 수: 1
    • 퍼블릭 서브넷 수: 1
    • 프라이빗 서브넷 수: 0
    • ap-northeast-2a 퍼블릭 서브넷 CIDR 블록: 10.0.0.0/24
    • VPC 엔드포인트: 없음
    • VPC 생성 클릭
  • VPC, 서브넷 이름 수정
    • 위에서 만든 VPC 이름을 VPC-Lab으로 수정
    • 만들어진 서브넷도 public subnet A로 이름 수정
  • 서브넷 생성
    • VPC- 서브넷- 서브넷 생성 클릭
    • VPC ID: 방금 만든 VPC-Lab 클릭
    • 서브넷 이름: public subnet C
    • 가용 영역: ap-northeast-2c
    • IPv4 서브넷 CIDR 블록: 10.0.20.0/24
    • 서브넷 생성 클릭
  • 서브넷 편집
    • 방금 만든 public subnet C 체크하여 작업- 라우팅 테이블 편집 클릭
    • 라우팅 테이블 ID: 위에서 만든 VPC-Lab 선택
    • 저장 클릭
     
  • 보안 그룹 생성
    • VPC- 보안- 보안 그룹 클릭
    • 보안 그룹 생성 클릭
    • 기본 세부 정보
      • 보안 그룹 이름: webserver-sg
      • 설명: security group for web servers
      • VPC: VPC-Lab 클릭
    • 인바운드 규칙
      • 규칙 추가 클릭
        • 규칙 1
          • 유형: SSH, 소스: 내 IP
        • 규칙 2
          • 유형: HTTP, 소스: 내 IP
    • 아웃바운드 규칙
      • 유형: 모든 트래픽, 대상 유형: Anywhere-IPv4
    • 보안 그룹 생성 클릭
  • EC2 인스턴스 생성
    • EC2- 인스턴스 시작 클릭
    • 이름: webserver 1
    • AMI: Amazon Linux 2 AMI (HVM) - Kernel 5. 10, SSD Volumne Type 클릭
    • 키 페어 생성
      • 이름: keypair-seoul
      • 유형: RSA
      • 파일 형식: .pem
    • 네트워크 설정
      • 편집 클릭
      • VPC: VPC-Lab 선택
      • 서브넷: public subnet A 선택
      • 퍼블릭 IP 자동 할당: 활성화
      • 방화벽(보안그룹): 기존 보안 그룹 선택 클릭
      • 일반 보안 그룹: 위에서 만든 webserver-sg 클릭
       
    • 고급 세부 정보
      • 사용자 데이터
        • 아래 코드 복사하여 붙여 넣기
          • 코드
            • #!/bin/sh
                      
              # Install a LAMP stack
              sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
              sudo yum -y install httpd php-mbstring
              sudo yum -y install git
                      
              # Start the web server
              sudo chkconfig httpd on
              sudo systemctl start httpd
                      
              # Install the web pages for our lab
              if [ ! -f /var/www/html/aws-boarding-pass-webapp.tar.gz ]; then
                  cd /var/www/html
                  wget -O 'techcamp-webapp-2024.zip' 'https://ws-assets-prod-iad-r-icn-ced060f0d38bc0b0.s3.ap-northeast-2.amazonaws.com/600420b7-5c4c-498f-9b80-bc7798963ba3/techcamp-webapp-2024.zip'
                  unzip techcamp-webapp-2024.zip
                  sudo mv techcamp-webapp-2024/* .
                  sudo rm -rf techcamp-webapp-2024
                  sudo rm -rf techcamp-webapp-2024.zip
              fi
                      
              # Install the AWS SDK for PHP
              if [ ! -f /var/www/html/aws.zip ]; then
                  cd /var/www/html
                  sudo mkdir vendor
                  cd vendor
                  sudo wget https://docs.aws.amazon.com/aws-sdk-php/v3/download/aws.zip
                  sudo unzip aws.zip
              fi
                      
              # Update existing packages
              sudo yum -y update
    • 인스턴스 시작 클릭
     
  • 인스턴스 접속
    • 인스턴스- 해당 인스턴스 체크
    • 퍼블릭 IPv4 주소 복사 후 접속
    • 접속 시 Welcome to the AWS IMD 출력
     
  •  
  • AMI (Amazon Machine Image) 생성
    • EC2- 인스턴스 이동
    • 위에서 만든 인스턴스 체크 후 작업- 이미지 및 템플릿- 이미지 생성 클릭
    • 이미지 이름: webserver-ami
    • 이미지 설명: webserver-ami
    • 이미지 생성 클릭
    • EC2- 이미지- AMI 이동하면 생성한 이미지 확인 가능
  • AMI 기반 인스턴스 생성
    • 위에서 만든 AMI 체크 후 AMI로 인스턴스 시작 클릭
    • 이름: webserver 2
    • 키 페어: keypair-seoul
    • 네트워크 설정 편집 클릭
      • VPC: VPC-Lab 클릭
      • 서브넷: public subnet C
      • 퍼블릭 IP 자동 할당: 활성화
      • 방화벽: 기존 보안 그룹 선택
      • 일반 보안 그룹: webserver-sg
    • 인스턴스 시작 클릭
  • AMI 기반 인스턴스 접속
    • 인스턴스- 해당 인스턴스 체크
    • 퍼블릭 IPv4 주소 복사 후 접속
    • 접속 시 Welcome to the AWS IMD 출력
     
  • 로드밸런서 구성
    • EC2- 로드 밸런싱- 로드밸런서 이동
    • 로드 밸런서 생성 클릭
    • Application Load Balancer 생성 클릭
    • 이름: web-alb
    • 네트워크 매핑
      • VPC: VPC-Lab
      • 매핑- 가용 영역
        • ap-northeast-2a (apne2-az1) 체크
        • ap-northeast-2c (apne2-az3) 체크
    • 보안 그룹
      • 새 보안 그룹 생성 클릭
        • 이름: webalb-sg
        • 설명:  security group for load balancer
        • VPC: VPC-Lab
        • 인바운드 규칙: 유형: HTTP, 소스: 내 IP
        • 보안 그룹 생성 완료
      • 위에서 만든 보안 그룹으로 지정
    • 리스너 및 라우팅
      • 대상 그룹 생성 클릭
        • 기본 구성: 인스턴스
        • 이름: webserver-tg
        • 프로토콜: HTTP, 포트: 80
        • VPC: VPC-Lab
        • 대상 등록
          • 위에서 만든 두 개의 인스턴스 체크 후 아래의 보류 중인 것으로 포함 버튼 클릭
        • 보류 중인 대상 등록 클릭
      • 위에서 만든 대상 그룹으로 지정
    • 로드 밸런서 생성 클릭
  • 인바운드 규칙 편집
    • EC2- 네트워크 및 보안- 보안 그룹 이동
    • webserver-sg 클릭 후 작업- 인바운드 규칙 편집 클릭
    • 기존 HTTP 규칙 삭제
    • 규칙 추가
      • 유형: HTTP
      • 소스: 사용자 지정. webalb-sg 클릭
  • 로드밸런서 접속
    • EC2- 해당 로드밸런서 체크
    • DNS 이름 주소 복사 후 접속
    • 접속 시 Welcome to the AWS IMD 출력

    • 새로고침 시 InstanceId와 Availability Zone 값이 변경된다.
     

 

 

728x90