0614-AWS

hyejin·2022년 6월 14일
0

EBS Snapshot

snapshot

  • 볼륨 생성
  • 이미지 생성 --> EC2 생성
  • 복사 (백업)

IAM (Identity and Access Management)

  • username, password 생성
  • 접근 제어
  • MFA를 이용해 안전한 로그인 가능
  • group에게 권한 부여

RDS (Relational Database Service)

  • 완전 관리형 서비스 특징
    • 고가용성
    • 자동 백업
    • 자동 조정 (ssd up)
  • EFS 와 유사

실습

-> default 보안그룹이 3개인 이유는 VPC가 3개이기 때문

RDS 생성

Microsoft SQL Server/Oracle 은 유료

  • 엔진 옵션 : MySQL (Ver 5.7.22)
  • 템플릿 : 프리티어
    ※ 프로덕션 - 최종 운영환경
    ※ 개발(Dev) -> 테스트(QA; 품질보증; 품보) -> 스테이징 -> 프로덕션(Ops)
  • 식별자 : database-1
  • 마스터 사용자 이름 (root권한에 준하지만 root 사용자는 아님) : hyejin2022
  • 마스터 암호 : Test1234!
  • DB 인스턴스 클래스 : db.t2.micro
  • 스토리지 자동 조정
    ※ scale up - 용량 증가
  • VPC : MY-VPC
  • 서브넷 그룹 : 새 DB 서브넷 그룹 생성
  • VPC 보안 그룹 : SG-DB
  • 가용 영역 : ap-northeast-2b
  • 추가 구성
    • 초기 데이터베이스 이름 : wordpress

-> private한 db라서 웹서버에서만 접근 가능

인스턴스 생성

  • 이름 : WEBSERVER
  • 애플리케이션 및 OS 이미지 : Amazon Linux 2 AMI (HVM)
  • 인스턴스 유형 : t2.micro
  • 키 페어 : aws-key
  • VPC : MY-VPC
  • 서브넷 : MY-PUBLIC-SUBNET-2A
  • 퍼블릭 IP 자동 할당 : 활성화
  • 방화벽(보안 그룹) : SG-WEB
  • 스토리지 구성 : 8GiB gp2
  • 사용자 데이터
#!/bin/bash
yum install -y httpd git
systemctl enable --now httpd
cd /tmp
git clone https://github.com/hali-linux/html.git
cp -r /tmp/html/* /var/www/html/

▶ alibaba cloud

  • Alibaba Cloud DNS
  • Host : blog
  • Value : WEBSERVER public IP

http://blog.hyejin36.shop/ 로 접속

▶ mobaxterm으로 접속

[ec2-user@ip-10-24-9-235 ~]$ wget https://ko.wordpress.org/wordpress-4.8.2-ko_KR.zip
--2022-06-14 01:45:25--  https://ko.wordpress.org/wordpress-4.8.2-ko_KR.zip
Resolving ko.wordpress.org (ko.wordpress.org)... 198.143.164.252
Connecting to ko.wordpress.org (ko.wordpress.org)|198.143.164.252|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9418591 (9.0M) [application/zip]
Saving to: ‘wordpress-4.8.2-ko_KR.zip’

100%[=================================================================================                     ===================================================================================>]                      9,418,591   2.82MB/s   in 3.2s

2022-06-14 01:45:29 (2.82 MB/s) - ‘wordpress-4.8.2-ko_KR.zip’ saved [9418591/9418591]
[ec2-user@ip-10-24-9-235 ~]$ sudo yum install -y httpd php php-mysql php-gd php-mbstring wget unzip
[ec2-user@ip-10-24-9-235 ~]$ cd /var/www/html
[ec2-user@ip-10-24-9-235 ~]$ sudo unzip /home/ec2-user/wordpress-4.8.2-ko_KR.zip
[ec2-user@ip-10-24-9-235 ~]$ sudo mv ./wordpress/* .
[ec2-user@ip-10-24-9-235 ~]$ sudo chown -R apache:apache /var/www/*
[ec2-user@ip-10-24-9-235 ~]$ sudo systemctl restart httpd
[ec2-user@ip-10-24-9-235 ~]$ sudo rm -rf index.html

http://blog.hyejin36.shop/ 로 접속

  • 데이터베이스 이름 : wordpress
  • 사용자명 : hyejin2022
  • 비밀번호 : Test1234!
  • 데이터베이스 호스트 : RDS 엔드포인트

▶ mobaxterm으로 접속

[ec2-user@ip-10-24-9-235 html]$ ping database-1.cx3zmaopbnbb.ap-northeast-2.rds.amazonaws.com
PING database-1.cx3zmaopbnbb.ap-northeast-2.rds.amazonaws.com (10.24.16.92) 56(84) bytes of data.

-> IP가 10.24 ~~ : 내 IP

  • public access로 변경
  • 퍼블릭 액세스 가능으로 변경

-> 즉시적용 선택

▶ mobaxterm으로 접속

  14/06/2022   11:17.31   /home/mobaxterm  mysql -h database-1.cx3zmaopbnbb.ap-northeast-2.rds.amazonaws.com -u hyejin2022 -p
Enter password: *********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 38
Server version: 5.7.22-log 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)]>

※ 접속 안될 경우

  • RDS > 서브넷 그룹 > DB 서브넷 그룹 생성
  • 이름 : MY-RDS-SUBNET
  • VPC : MY-VPC
  • 가용 영역 : ap-northeast-2a, ap-northeast-2b, ap-northeast-2c, ap-northeast-2d
  • 서브넷 : public subnet이 숫자가 더 앞 (10.24.0.0/20, 10.24.16.0/20, 10.24.32.0/20, 10.24.48.0/20,)

  • RDS > 데이터베이스 > 수정
  • 서브넷 그룹을 생성한 MY-RDS-SUBNET으로 변경

-> 서브넷은 이미 적용된 후에 수정 불가

Amazon Aurora

인스턴스 생성

  • 이름 : WEB02
  • 애플리케이션 및 OS 이미지 : Amazon Linux 2 AMI (HVM)
  • 인스턴스 유형 : t2.micro
  • 키 페어 : aws-key
  • VPC : MY-VPC
  • 서브넷 : MY-PUBLIC-SUBNET-2C
  • 퍼블릭 IP 자동 할당 : 활성화
  • 방화벽(보안 그룹) : SG-WEB
  • 스토리지 구성 : 8GiB gp2
  • 사용자 데이터
#!/bin/bash
yum install -y httpd git
systemctl enable --now httpd
cd /tmp
git clone https://github.com/hali-linux/html.git
cp -r /tmp/html/* /var/www/html/

▶ mobaxterm으로 접속

※ 보안그룹

  • SG-WEB > 인바운드 규칙
  • ICMP 규칙 삭제
    -> WEB01과 WEB02 서로 ping 안나감
  • 자기 자신의 보안그룹을 넣음

-> ping 나가고, 접속도 가능
-> 그 보안그룹 안의 구성들이 port를 따로 열 필요없이 접근 가능

ELB (Elastic Load Balancing)

로드 밸런서

※ ALB - L7 switch (컨텐츠 다루기 가능)
※ NLB - L4 switch (port번호만 가능)

Network Load Balancer 생성

  • 로드 밸런서 이름 : ELB-NLB
  • IP 주소 유형 : IPv4
  • VPC : MY-VPC (같은 네트워크 상에 있어야 부하 분산 가능)
  • 매핑 : ap-northeast-2a / ap-northeast-2c - public subnet 선택해주어야 함
  • 대상 그룹 생성
    • 대상 그룹 이름 : TG-NLB

  • 보안그룹 > 인바운드 규칙 편집
  • HTTP / 0.0.0.0/0 추가

CNAME으로 주소 짧게 만들기

▶ alibaba로 접속

  • alibaba cloud DNS
  • Add Record

  • nlb.hyejin36.shop으로 접속

Application Load Balancer 생성

  • 로드 밸런서 이름 : ELB-ALB
  • IP 주소 유형 : IPv4
  • VPC : MY-VPC (같은 네트워크 상에 있어야 부하 분산 가능)
  • 매핑 : ap-northeast-2a / ap-northeast-2c - public subnet 선택해주어야 함
  • 보안 그룹 생성 ()
    • 보안 그룹 이름 : SG-ALB
    • VPC : MY-VPC
    • 인바운드 규칙 : HTTP, 0.0.0.0/0
    • 아웃바운드 규칙 : 모든 트래픽, 0.0.0.0/0
  • 대상 그룹 생성
    • 대상 그룹 이름 : TG-ALB

CNAME으로 주소 짧게 만들기

▶ alibaba로 접속

  • alibaba cloud DNS
  • Add Record

  • alb.hyejin36.shop으로 접속

  • EC2 > 보안그룹 > SG-WEB > 인바운드 규칙 편집
  • 인바운드 규칙 추가 - HTTP / SG-ALB

-> alb.hyejin36.shop만 접속 가능

▶ mobaxterm으로 접속

  • web01에서 web02로 접속하기
  • web01에 aws-key.pem 업로드
[ec2-user@ip-10-24-9-235 ~]$ chmod 400 aws-key.pem
[ec2-user@ip-10-24-9-235 ~]$ ssh -i aws-key.pem ec2-user@10.24.46.72
The authenticity of host '10.24.46.72 (10.24.46.72)' can't be established.
ECDSA key fingerprint is SHA256:IwSc0fHUzgopojiiKv0qpsfQYwE8di9BzbIGDwsEDQ4.
ECDSA key fingerprint is MD5:ca:a2:53:9d:98:cf:f0:64:5d:86:1a:8e:7a:38:cb:b9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.24.46.72' (ECDSA) to the list of known hosts.
Last login: Tue Jun 14 02:38:38 2022 from 123.142.252.25

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
16 package(s) needed for security, out of 26 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-24-46-72 ~]$

사이트 구분하기

대상그룹 생성1

  • EC2 > 대상 그룹
  • 이름 : TG-CACTUS
  • VPC : MY-VPC

대상그룹 생성2

  • EC2 > 대상 그룹
  • 이름 : TG-RABBIT
  • VPC : MY-VPC

로드밸런서에서 편집

  • chrome=토끼, mobile=선인장, firefox=TG-ALB(라운드 로빈) 으로 설정

  • 규칙추가1

    • HTTP 헤더, Mobile, TG-CACTUS
  • 규칙추가2

    • HTTP 헤더, Chrome, TG-RABBIT

※ 우선순위가 중요!!

  • Mobile

  • Chrome

  • firefox

Auto Scaling

  • alibaba cloud DNS에 레코드 추가

▶ mobaxterm으로 접속

[ec2-user@ip-10-24-46-72 ~]$ sudo tar -xvf food.tar -C /var/www/html/

※ 단일 장애 지점 (Single Point of Failure)

이미지 생성

  • ORIGIN 이미지 생성 (이미지는 껍데기,,, 스냅샷이 중요)
  • 이미지 이름 : MY-AMI
  • 재부팅 안 함에 체크


-> 이미지뿐만 아니라 스냅샷도 만들어짐, 스냅샷이 본체

시작 템플릿 생성

  • 이름 : MY-TEMP
  • Auto Scaling 지침 체크

0개의 댓글