2. 컴퓨팅 계층 추가
2.1. EC2
- 인스턴스 메타데이터를 사용하여 EC2 인스턴스에 대한 정보를 가져올 수 있다.
** public-hostname을 이용한다.
ex) #hostname = $ ( curl -s http://169.254.169.254/latest/meta-data/public-hostname(ec2 고유)
2.2. EC2 요금 유형
- 온디맨드 인스턴스 : 사용한 만큼 지불 ( 1년 이상 비효율 )
- 예약 인스턴스 : 용량에 대한 비용을 미리 지불, 장기 사용 시
- Savings plans : 리전 등을 자유롭게 변경, 장기 사용 시
- 스팟 인스턴스 : 비용변동, 비용이 변하면 종료 2분전 중단 공지
2.3. EBS : Elastic Block Storage
- Instance Store 란 무료 서비스가 존재하지만 특정한 인스턴스에만 존재하며 휘발성의 특성을 지닌다.
- EC2 인스턴스를 위해 안정적이고 분리 가능한 블록 수준 스토리지를 제공한다.
- 볼륨을 추가하며 인스턴스에 연결해주면 사용 가능하다. ( 마운트 작업이 필요 )
- 대체로 3세대부터 EBS 최적화를 지원한다.
- 하나의 인스턴스에만 사용 가능하기 때문에 여러 인스턴스 사용 시 EFS나 FSx가 적합하다. ( NAS )
* EFS -> linux 환경 ( NFSv4 프로토콜 )
* FSx -> window 환경 ( SMP 프로토콜, AD통합, 분산 파일 시스템 )
2.4. EC2 전용 옵션 ( 테넌시 )
- default : 인스턴스가 공유된 하드웨어에서 실행
- 전용 인스턴스 : 다른 AWS 계정과 물리적으로 격리 : 규정 준수, 라이선스 사용에 대한 요구사항을 충족
( 비 특정 하드웨어에서 실행)
- 전용 호스트 : 고객 전용의 EC2인스턴스 용량을 갖춘 물리적 서버, 고객이 선택한 특정 하드웨어
--> 독립적인 서버를 구성, 물리적 장치의 id를 사용할 수 있다.
2.5. 태그
- 관리와 검색 필터링이 용이해진다.
- 많이 사용하는 것이 좋다.
2.6. EC2 고려사항
- 클러스터 배치 그룹 : 인스턴스를 동시에 시작하며 같은 기본 하드웨어에 배치하게 함으로써 네트워크 성능을 높임
- 분산형 배치 그룹 : 서로 영향을 끼치는 인스턴스의 경우 서로 다른 하드웨어에 배치하도록 한다.
- 파티션 배치 그룹 : 파티션을 나누어 인스턴스의 영향을 단일파티션으로 억제한다.
3. 데이터베이스 계층 추가
- 데이터 베이스 유형 : 관계형 ( SQL ), 비관계형 ( NoSQL )
- 관계형 DB : 엄격한 스키마 규칙 및 데이터 품질 적용 필요하다
데이터베이스가 과도한 읽기 쓰기 작업을 하지 않는다.
RDBMS가 최고의 솔루션이 될 수 있다. 수직확장을 한다.
- 비관계형 DB : 수평적으로 확장한다.
기존 db 스키마에 적합하지 않다. 정형화 되지 않은 데이터에 사용
빠른 읽기 쓰기 속도를 지원한다. ( 분산 처리 )
- 관리형 데이터 베이스 : aws에서 서비스 관련한 모든 관리를 해주는 DBMS이다.
따라서 OS적 접근은 불가능하다.
3.1. RDS
- 완전 관리형 관계형 데이터베이스 서비스 ( 관계형 DB 엔진을 사용 )
- 다중 AZ를 통해 마스터, 슬레이브를 통해 안정성 구현이 가능하다.
- 자동 백업 및 복원을 통해 안정성을 높힐 수 있다.
- Amazon Aurora : MySQL 과 PostgreSQL 과 호환되는 완전 관리형 관계형 데이터 베이스 엔진이다.
3개의 가용 영역에 영역별 2개씩 총 6개의 복제본을 가질 수 있어 안정성이 높다.
- RDS 보안 제어 : 엑세스, 암호화, 이벤트 알림
- IAM으로 철저히 관리가 가능.
3.2. DynamoDB
- 완전 관리형 비관계형 데이터베이스 서비스
- 서버리스 환경에서 잘 활용된다.
- 용량이 부족하다면 자동으로 수평적으로 확장된다. ( 최상의 수평 확장 기능 )
- 글로벌 테이블 : 복제본 테이블로 식별되는 한개 이상의 테이블의 모음이며 가까운 리전에 해당되는 테이블을 사용함으 로써 최적의 성능을 이끈다.
- 사용 사례 : 게임서버 : 많은 읽기 쓰기가 일어난다.
온라인카트
- 일관성 : 최종일관성 : 복제본에서 DynamoDB로의 이동하는 짧은 시간동은 옛날 값이 나올 수 있다.
강력한일관성 : 한번에 복제본에서 값을 이동함으로써 한번에 새로운 값을 꺼낼 수 있다.
- IAM으로 철저히 관리가 가능.
3.3. AWS Database Migration Service 마이그레이션 서비스
- EC2, RDS, S3, 온프레미스 데이터베이스간의 마이그레이션에 사용.
- AWS SCT ( Schema Conversion Tool) : 사용자가 기존 데이터베이스 스키마를 다른 데이터베이스 엔진으로 변환하도록
해주는 독립 애플리케이션
4. 실습
4.1. AWS 웹 애플리케이션 배포
- 앱 보안 그룹 : 인터넷에서 액세스하도록 허용
DB 보안 그룹 : 앱 보안 그룹에서 액세스하도록 허용
- 앱 보안 그룹 구성
- DB 보안 그룹 생성
- Amazon RDS 생성
- 인스턴스 생성
- 인스턴스 생성 완료
- 주소로 접속
- setting에 rds 엔드포인트 입력
-연결 확인
5. AWS 기반 네트워킹
5.1. VPC
- 클라우드의 네트워크 환경 , 과금 x
- 점유 리소스에 대한 CIDR범위를 지정한다. EX) 10.0.0.0/16~28
- 리전 1개에 해당되며 해당 가용영역에서 모두 사용 가능
- 각 VPC는 사용자가 지정하는 프라이빗 IP 주소의 범위를 예약 ( 해당 CIDR 범위 내에서 사용 가능 )
- 일반적으로 다중 VPC를 사용 및 복수 계정
* 하나의 vpc 사용 사례 = 소규모 단일 애플리케이션
고성능 컴퓨팅 (ex. HPC)
자격 증명 관리
- 다중 VPC 패턴 : 하나의 계정에 여러개의 vpc 생성
단일 팀 단일 조직, 더 쉽게 표준 상태를 유지하며 액세스를 관리
- 복수 계정 : 계정별로 하나의 vpc 생성
여러팀에서 관리하는 애플리케이션을 배포하는 엔터프라이즈 고객 또는 조직에 가장 적합
- Service Limit : 계정당 리전당 vpc 5개를 생성 가능하다.
- 서브넷을 사용하여 VPC를 분리 : aws 의 경우 서브넷마다 5개의 ip 사용불가
0~3, 255 사용불가. 네트워크 id, 게이트웨이, 나머지는 예약됨
- 라우팅테이블 : vpc 리소스간에 트래픽을 연결하는데 필요
주요 기본 라우팅 테이블이 존재 ( 내부만 통신 가능)
각 서브넷마다 사용자 정의 라우팅 테이블을 만드는 것이 모범 사례
- 퍼블릭 서브넷 : 퍼블릭 인터넷에 대한 인 아웃 바운드 엑세스를 지원하기위해 인터넷 게이트웨이에 대한 라우팅 테이블
항목을 포함함.
- 프라이빗 서브넷 : 인터넷 게이트웨이에 대한 라우팅 테이블 항목이 없으며 퍼블릭 인터넷에서 직접 액세스 할 수 없다.
퍼블릭 인터넷에서 직접 액세스할 수 없으며, 제한된 아웃바운드 퍼블릭 인터넷 액세스를 지원하기
위해 nat 게이트웨이를 사용.
* 퍼블릭 보다 프라이빗 서브넷에 더 많은 ip를 할당
- 각 서브넷에 인터넷 게이트웨이와 nat 게이트웨이에 라우팅 테이블을 추가하여 인터넷을 가능하게 한다.
- 서브넷 권장 상황 : 큰 크기의 서브넷을 고려
- 탄력적 네트워크 인터페이스 : 가상 네트워크 인터페이스 : 동일한 가용영역안에서 ec2 인스턴스간에 이동할 수 있다.
: 두 개이상 사용하여 용도 별로 사용 가능하다.
: 새로운 인스턴스로 이동하면 프라이빗 ip, 탄력적 ip, mac 주소 유지
- 탄력적 ip : 고정 퍼블릭 ipv4 주소
5.2. 가상 사설 클라우드 생성 실습
- vpc 생성
- 생성한 vpc에 dns hostname 활성화
- 퍼블릭 서브넷 생성
- 프라이빗 서브넷 생성
- 인터넷 게이트웨이 생성
- 프라이빗 라우팅 테이블 설정 : vpc 내부 통신 가능
- 퍼블릭 라우팅 테이블 설정 : 퍼블릭의 외부 통신 가능
- 앱 서버용 보안 그룹 생성
- 퍼블릭 서브넷에서 앱서버 시작
- 인스턴스 생성 완료
- vpc 피어링 연결생성
- vpc 적용
- 피어링 커넥션 퍼블링 라우팅 테이블 생성
- share vpc에서 역방향 라우트 테이블 생성
- 접속
'클라우드 > AWS' 카테고리의 다른 글
Architecting on AWS (4일) (0) | 2022.07.07 |
---|---|
Architecting on AWS (3일) (0) | 2022.07.06 |
Architecting on AWS (1일) (0) | 2022.07.04 |
10. AWS ( EFS, ROUTE 53 ) (0) | 2022.06.27 |
9. AWS ( 오토스케일링 ) (0) | 2022.06.23 |