• 인증
- 다단계 : 1차 인증 후에 2차 인증을 하는 방식 (종류와 관계없음) ex) i-pin
- 다요소 : 서로 다른 종류의 인증을 하는 방식 ex) 계좌이체 : 공인인증서 + 비밀번호 + OTP
• AWS에 회원 가입을 하면 계정 생성 (Root 계정)
- Root 계정으로 사용자 생성 ----> IAM 계정 (User, 사용자)
- Role(역할)은 서비스나 프로그램에 부여함
- Policy(정책)을 Role or User에게 부야 함
• CloudWatch
- Monitoring을 하면서 상태를 Graph로 표시
- 서비스 지표, 로그 등을 수집, 기록
- 임계값을 넘으면 특정 동작이 일어나도록 설정 ex) 10만 원이 넘으면 Mail로 보내라
- CPU 사용률, 볼륨의 읽기 쓰기 횟수나 바이트 수, 네트워크 송수신 패킷 수 등 감시
• AWS CloudTrail
- 감사 서비스를 활성화하면 '누가' 어떤 리소스에 접근했는지도 기록으로 남길 수 있음
• 감사(Audit)
- 위험(Risk)을 줄이기 위해서 통제(Control)를 사용해야 함
- 통제(Control)의 적절성을 평가하는 것이 감사
- 기록을 추적(증적 : Trail) ----> 감사할 때 증거를 추적하는 것을 Audit Trail이라고 함
- 클라우드에서 발생하는 모든 행위를 기록하고 추적하는 서비스 ---> CloudTrail이라는 서비스를 제공
• EC2 요금체계
- On-Demand : 필요할 때 사용하고, 필요하지 않으면 종료, 할인이 없음
-Spot Instance : 경매 형식, 가장 높은 가격을 제시한 고객부터 EC2를 사용하게 해 줌
- 예약 인스턴스 : 약정, 장기간 사용하기로 하고 할인을 받을 수 있음
•AMI (Amazon Machine Image) : 아마존 클라우드에서 사용하기 위해서 만든 가상 머신 이미지
• 저스펙 type을 사용하다가 고 스펙 type으로 바꾸는 것은? Scale up <-----> Scale down
•HDD와 SSD의 차이점 (속도가 차이 나는 이유)
- HDD는 기계식 : 모터 + 원판 + 헤드 -----> 속도 느림
- SSD는 전자식 : 반도체 장착 -----> 속도 빠름
• EBS
- 가상 머신의 Disk
- 부트 섹터, 운영체제, 데이터 저장 가능(가격 문제)
- 가상 머신에 부착해서 사용하다가 따로 분리해서 별도로 보관할 수 있음
• Key pair 사용방법
1) 윈도우에서 사용하려면, 상속 제거하고 Windows 사용자만 읽기 권한을 부여해야 함
2) 리눅스에서 사용하려면 chmod 400
3) Putty에서 사용하려면 ppk로 변환해서 SSH > Auth에서 ppk파일 첨부해서 로그인
4) 원도우 서버에 EDP로 로그인하려면? 암호로 변경해서 RDP의 패스워드에 입력
• EIP(탄력적 IP)
- IPv4 주소는 부족함(한정된 자원)
- EIP를 확보해놓고 사용하지 않으면? 비용 청구됨(페널티 비용) ----> Release 해서 다른 사용자가 사용할 수 있도록 해야 함
- 사용자당 5개까지 사용 가능 (추가 요청을 하면 심사 후에 제공)
- NLB등에 할당하는 경우에는 비용이 별도로 청구되지 않음
• IPv4 주소 부족하기 때문에 URL방식 사용 권장 ex) ALB의 URL 경로
•Snapshot
- 시스템의 상태를 이미지로 만들어서 저장
- AMI이미지로 저장해서 사용 가능 ex) 오토스케일링에서 사용
• Auto Scaling
- 일정 개수를 유지하는 방식
- Target Tracking : CPU의 사용률을 지속적으로 일정 수준으로 맞춤 ----> EC2가 자동으로 증가 또는 감소
• ELB (ALB, NLB)
- Listener (들어오는 곳)에 설정하는 것은? 프로토콜과 포트를 설정
- Target Group (분배대상) : EC2를 직접 등록 또는 그룹으로 설정 (그룹으로 설정할 때 Auto Scaling 그룹을 설정할 수 있음)
• CloudFront
- 콘텐츠를 배포하는 서비스, 대용량 Cache 서비스
- 고객이 전 세계에 많이 있고, 콘텐츠를 많이 가지고 있는 사업자가 주로 이 서비스를 이용함 ex) 넷플릭스
• Netflix
- 드라마, 영화, 애니메이션 등을 S3 Bucket에 저장
- 전 세계의 수많은 고객들이 같은 영화를 보려고 합니다 ---> Cache (임시 보관) 서비스 필요함 ----> CloudFront
- 원래는 자체 데이터센터를 보유하였으나, 순차적으로 AWS로 Migration을 했음(현재는 데이터센터 없음)
• 인터넷 게이트웨이(IGW)
- 양방향 통신이 가능 (인터넷에서 AWS VPC에 들어올 수 있고(inbound) AWS VPC에서 인터넷으로 나갈 수도 있음(Outbound))
• NAT 게이트웨이
- Inbound(인터넷 --> AWS VPC)는 안되고, Outbound(AWS VPC ---> 인터넷)는 가능 (공유기와 비슷)
- 어떤 경우에 적합할까?
외부에서 접근할 필요 없는 Database Server가 업데이트를 해야 하는 경우에 적합
• ENI (Elastic Network Interface) : AWS에서 제공하는 가상의 랜카드(NIC : Network Onterface Card) --> MAC 주소 들어있고, IP 할당 가능
• VPC 엔드포인트
- 인터페이스 엔드포인트 : ENI를 연결하는 방식(개별적인 연결)
- 게이트웨이 엔드포인트 : 네트워크를 연결하는 방식 --> 라우팅 테이블에 등록
• VPC
- 한 사용자가 VPC를 여러 개 만들 수 있음, 다른 사용자의 VPC도 있음
- VPC와 VPC를 연결하려면? VPC Peering
- VPC Peering은 VPC와 VPC를 1대 1로 연결하는 방식 --> VPC가 많으면 복잡 --> Transit Gateway를 사용하면 복잡한 연결을 한방에 해결
• AWS DirectConnet
- AWS VPC와 기업의 네트워크를 연결하는 전용선(암호화 지원)
- 안정적이고 빠르고 약간 비쌈
• AWS VPN
- 저렴하지만 인터넷을 거쳐서 연결되다 보니 네트워크 품질과 속도를 보장 못함
• Aurora
- MySQL, PostgreSQL(포스트그레스 큐엘)과 호환 가능
- AWS에 최적화해서 속도가 빠르다
• AWS에서 DB 사용하는 방법
- Aurora : AWS에서 자동 복제, 최적화 등등 (가장 추천)
- RDS에서 사용자가 설정
- EC2에 MySQL, Oracle 설정 (비추) --> 관리 문제... 고객이 직접 관리??
• 키 밸류 데이터베이스
- Key Value Store (KVS) : NoSQL방식
- 장점 : 형식에 구애받지 않고 데이터를 입력할 수 있다. 데이터에 대한 Access가 빠르다.
- 빅데이터와 IoT 같은 대용량 데이터를 빠르게 처리
• ElastiCahe
- 인 메모리 데이터베이스 (빈번하게 읽고 쓰는 데이터는 일시적으로 메모리에 보관하는 방식) ---> 속도 무지 빠름
- Redis, Memcahed와 호환 가능
• Lambda
- 람다 함수라고 부름 (Lambda function)
- 간단한 프로그래밍으로 단순 반복 작업을 여러 번 수행하는 경우에 적합함
- 어떤 특정 행위를 Trigger(방아쇠)로 등록해놓으면, 특정 행위가 발생될 때 Lambda함수가 동작함
• Lambda 사용 사례
- 쇼핑몰 담당자가 원본 사진을 업로드하면, 람다가 썸네일을 만들어서 S3 등에 저장
- 일반 게시판 사용자들이 사진을 업로드하면 사진의 크기를 일정 크기로 줄여서 S3에 저장
- 비밀번호 잊어버린 사람들이 휴대폰 본인 인증을 하려는 경우, 본인 확인 프로세스
실습
- AWS CLI를 이용해서 EC2를 생성하고, Wordpress 사이트를 만들어보기 - Bitnami_lamp 처럼 다 만들어져 있는 AMI를 사용하면 안됨 - RDS는 하지 말고, 2Tier로 구성하기 |
AWS CLI를 사용해 EC2를 생성을 하였다.
생성된 EC2이다.
SSH클라이언트 주소를 사용해 EC2에 접속을 한다.
업데이트를 먼저 해준다.
MariaDB 및 PHP 패키지를 설치해준다.
아파치 및 MariaDB서버를 설치해준다.
아파치 웹서버를 시작해주고 매번 부팅할 때 아파치 웹서버를 시작해준다.
sudo usermod - a -G apache ec2-user 사용자를 아파치 그룹에 추가
sudo chown -R ec2-user:apache /var/www /var/www 및 콘텐츠의 그룹 소유권을 마 파치 그룹으로 변경
sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \; && find /var/www -type f -exec sudo chmod 0664 {} \; 그룹 쓰기 권한을 추가하여 나중에 하위 디렉터리에 대한 그룹 ID 설정하려면 /var/www와 그 하위 디렉터리의 디렉터리 권한을 변경
MariaDB 서버 시작
mysql_secure_installation 실행
필요한 종속 항목 설치
phpMyAdmin 최신 릴리스의 소스 패키지를 설치
phpMyAdmin 폴더 생성 및 패키지 압축 해제
Wordpress 설치를 한다.
WordPress를 문서 Root에서 실행
WordPress를 문서 루트 대체 디렉터리에서 실행
AllowOverride None을 All로 변경을 한다.
/var/www의 파일 소유권 및 그 콘텐츠를 apache 사용자에게 허용 및 그룹에 허용을 해준다.
/var/www 및 그 하위 디렉터리의 디렉터리 권한을 변경해서 그룹 쓰기 권한을 추가하고 미래 하위 디렉터리에서 그룹 ID를 설정
아파치 및 Mariadb를 재시작을 해준다.
WordPress가 실행이 된 걸 확인할 수 있다.
동작이 잘 되는지 이미지를 업로드를 해보았다.
'Rookies 9기 > 클라우드 보안' 카테고리의 다른 글
클라우드 보안 6일차 (0) | 2022.10.05 |
---|---|
클라우드 보안 5일차 (0) | 2022.09.30 |
클라우드 보안 4일차 (0) | 2022.09.29 |
클라우드 보안 3일차 (0) | 2022.09.28 |
클라우드 보안 2일차 (0) | 2022.09.27 |