요즘 실전 인프라 구축을 해보면서 기초지식이 많이 부족하다는 것을 느껴 YouTube에 AWS 관련 세미나를 검색해서 보던 중 내용이 너무 좋아서 기초를 다지기에 완벽하다고 느껴져서 감상하며 봤던 내용들을 기록으로 남긴다.
모든 정보와 이미지와 자료는 아래의 AWS 공식 세미나에서 캡처하거나 가지고 왔다. 문종민 솔루션즈 아키텍트께서 만들어 주신 PPT의 내용을 보며 캡처를 해서 설명을 이어가도록 한다. (따로 허가받지는 않아서 혹시 PPT 이미지 사용이 문제가 된다면 바로 비공개로 전환하도록 하겠습니다.)
https://www.youtube.com/watch?v=1zzBgCRDqeo
1. AWS의 가용영역
가용 영역이란 하나 또는 복수개의 데이터 센터(datacenter)로 구성되어진 완전히 독립적인 infrastructure다.
별도의 전원 시스템이 구축되어 있으며 물리적인 보안 시스템도 구축되어 있다.
데이터 센터간의 network는 이중화로 구성되어 있고 자연재해에 서로 연관을 받지 않을 만큼 떨어져 있으나 데이터를 복제해도 레이턴시 문제가 발생하지 않을 정도의 충분히 가까운 거리에 이루어져 있다.
1-1. 리전이란?
- 리전은 가용영역이 최소 2개이상 모인 것이다.
- 아래의 사진은 5개의 가용영역이 1개의 리전을 이루고 있는 그림이다.
- AWS의 가용영역은 서로 완전히 분리되어 있어서 서버를 가용 영역별로 분리해서 배치한다면 만약 한 가용영역에 장애가 발생해도 다른 가용영역에서는 문제없이 동작하기 때문에 높은 가용성을 제공한다.
2. EC2 (Elastic Compute Cloud)
2-1. Amazon Machine Images (AMIs)
- EC2는 초기에 서버를 만들 때 "OS/Program"을 정하는데 이를 편하게 선택할 수 있도록 하기 위해서 AWS에서는 Amazon Machine Images (AMIs)를 제공한다. AWS에서는 각각의 회사들이 이미 자신들의 솔루션을 설치해서 AMIs로 만들어 놓은 것들을 마켓 플레이스에 올려서 사용할 수 있도록 했으니 필요시 그것을 선택해서 사용할 수도 있다.
2-2. AMIs의 장점
- 자신들의 서버를 기동 할 때 필요한 것들을 미리 AMIs로 만들어 놓고 EC2를 만들 때마다 가져다 사용하면 매번 같은 설치작업을 반복하는 것을 획기적으로 줄일 수가 있다는 장점이 있다. (기존 구성 그대로 바로 설치됨)
2-3. EC2 인스턴스의 특징
- 어느 정도 사양의 서버를 선택해야 하는가? 아래의 사진과 같이 각 EC2에는 인스턴스별 구분이 있다.
- 아래와 같이 Instance Family가 나뉘어 있다. 이것에 따라 본인이 필요한 사양을 선택하게 된다.
- AWS에서는 아래와 같이 다양한 프로세서와 아키텍처를 제공하기 때문에 필요에 따라 적절한 것을 선택할 수가 있다.
2-4. 그래서 EC2는 무엇인가?
- AWS가 관리하고 있는 리전의 물리 서버에 실제로 올라가게 되는 서버를 의미한다.
- AWS에서는 EC2서버의 부하 분산을 위해 Elastic Load Balancing을 지원한다.
- ELastic Load Balancing (ELB)의 종류는 아래와 같다.
3. 스토리지 (Storage)
EC2는 물리적인 호스트가 자체적으로 로컬 디스크를 가지고 있는데 이것을 Instance Store라고 부른다. 아래의 사진 우측의 EBS는 네트워크로 붙어있는 디스크이다. 이것은 마운트 되어 사용이 가능하다.
3-1. EC2 Instance Store의 휘발성
- 만약 EC2 서버를 종료했다 다시 시작한다면 EC2는 동일한 가용영역에 안에 뜬다는 보장은 있지만이전에 떴던 물리적인 호스트 서버 위에 다시 뜬다는 보장은 없다. 즉, 인스턴스 스토어는 휘발성이다. (다른 호스트에 서버가 뜨면 사라진다.)
3-2. EBS의 영구성
- EBS는 다른 호스트에 EC2가 떠도 네트워크로 연결을 해주기 때문에 EBS는 영구적으로 유지가 된다고 생각하면 된다.
3-3. EBS 상세 설명
- 하나의 EBS는 한 EC2에만 연결할 수 있다. 그렇지만 하나의 EC2가 여러 개의 EBS를 가질 수는 있다.
- EBS 볼륨은 암호화 기능을 제공하며 스냅샷을 지원하기 때문에 스토리지의 내용을 백업할 수도 있다.
3-4. AWS의 다른 Storage
- AWS에는 EBS 말고 다른 Storage도 지원한다. EFS와 Object Storage인 S3도 있다.
3-5. Simple Storage Service (S3) - Object Storage 설명
- S3 (Object Storage)는 마운트 해서 사용하는 저장소가 아니다.
- S3는 가용영역 3곳에 복제를 해서 유지하기 때문에 파일이 유실되지 않을 확률이 매우 높다.(99.999999999% 의 내구성을 가짐)
- 파일 1개의 사이즈가 5TB를 넘지 않으면 아무리 많은 파일을 업로드해도 S3는 다 받을 만큼 확장성이 있다.
- 파일 하나하나마다 ACL로 접근제어를 설정해 줄 수도 있고 데이터를 암복호화 시킬 수도 있다.
- S3에는 아래 사진과 같은 여러 가지 스토리지 저장소 유형을 제공한다. 필요에 따라 Tier를 선택해서 사용할 수가 있다. (사실 이건 LifeCycleManagement를 설정하면 알아서 Tier를 선택해서 이동시킨다. 이렇게 비용절감이 가능하다.)
- AWS에서는 S3에 더 쉽게 파일을 넣을 수 있도록 SFTP 기능을 제공한다.
3-6. Elastic File System (EFS) - Nas 스토리지
- EFS 스토리지는 NAS스토리지의 관리형 서비스이다.
- 온프레미스에서도 EFS를 마운트 해서 사용이 가능하다.
- 클라우드와 온프레미스의 데이터 공유를 위해서도 사용된다.
- 보안을 위한 암복호화도 지원한다.
4. VPC - 아마존의 네트워크 구성
4-1. VPC란?
- AWS에서는 Virtual Private Cloud(VPC)를 제공하는데 이것은 "자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사한 가상 네트워크"를 의미한다.
4-2. VPC의 기본적인 생성 절차
- VPC의 IP주소 대역을 선정하고 가용영역 내부에 서브넷을 생성한다. 이후 라우팅 테이블을 생성하고 보안 그룹을 설정해서 방화벽으로 트래픽을 통제한다
4-3. 프라이빗 IP대역으로 IP주소 대역 설정하기 (권장)
- 주의사항으로는 연결되어야 하는 다른 네트워크 대역과 IP주소가 겹치지 않도록 선정해야 한다.
4-4. 서브넷의 정의
- 인터넷과 직접 통신이 가능한 것을 Public 서브넷이라고 하고 직접 통신이 불가능한 것을 Private 서브넷이라고 한다.
4-5. 서브넷 설명
- 서브넷은 여러 개의 가용영역에 동시에 걸쳐서 만드는 것은 안된다.
- 하나의 서브넷을 만든다는 것은 한 가용영역 안에 넣는다는 의미이다.
- 아래와 같이 가용성을 보장하면서 VPC와 서브넷을 구성하게 될 것이다.
4-6. VPC 내부의 통신
- 이제 서브넷 구성까지 했으면 데이터를 어떻게 보낼지 룰을 정해야 하는데 이것이 "라우팅 테이블"이다.
4-7. 라우팅 테이블
- 라우팅 테이블은 패킷이 어디로 가야 하는지에 대한 규칙을 가지는 테이블 정의이다.
- VPC는 기본적으로 한 개의 메인 라우팅 테이블을 가진다.
- 서브넷별로 다른 라우팅 테이블을 할당할 수 있으며 하나의 서브넷은 하나의 라우팅 테이블을 가지게 된다.
4-8. 라우팅 테이블 설명
- 좌측의 "대상"은 VPC를 생성할 때 적용한 IP대역(CIDR블록)이고 만약 패킷의 목적지가 VPC내의 IP이면 대상(Target)은 local로 가라는 의미이다. (여기서 local은 VPC 내부라는 의미이다.)
- 그래서 이런 라우팅 테이블이 있다면 그 서브넷은 패킷을 항상 VPC내부에서만 움직일 수 있다는 의미이다.
- 만약 패킷을 인터넷으로 보내고 싶다면? 아래의 설명을 읽어보자
- 좌측의 "대상"(Destination)이 [0.0.0.0/0 CIDR블록] 이면 이것은 모든 IP를 의미한다.
- 라우팅 테이블은 위에서부터 읽어서 해석하기 때문에 이 테이블의 해석은 다음과 같을 것이다.
- VPC내부의 IP접근이면 VPC내부에서 움직이되 VPC내부 IP가 아닌 접근이면 다 igw(인터넷 게이트웨이)로 보내라
4-9. VPC의 방화벽 (보안 그룹)
- 이번에는 AWS의 VPC에서는 어떻게 방화벽을 구성하고 있는지 알아보자
- VPC 내 네트워크 보안을 담당하는 보안 그룹(Security groups)에 대해서 설명하겠다.
- VPC를 구성하면 아래와 같이 보안 그룹(Security Group)을 설정하게 된다.
4-10. 보안 그룹 설정
- 아래에서 보이는 인바운드, 아웃바운드를 설정해서 외부에서 접근이 가능한지 불가능한지를 설정할 수가 있다.
이번 세미나를 통해 기본적인 AWS의 구성에 대한 확립이 되었던 것 같다.
강사님께서 너무 말을 편하게 잘해주셔서 이해도 잘 되었고 이전에 나는 그냥 냅다 ECS와 ECR을 배포해 봤었는데 이때 겪은 VPC관련 문제나 ALB, 보안 그룹에 대한 문제들을 떠올려보면서 들을 수 있어서 더 좋았다.
나의 AWS 관련 기초지식이 탄탄해진 것 같고 다른 사람들도 괜찮다면 한번 꼭 들어봤으면 좋겠다.
결국 모든 개발도구의 사용은 어떻게 구성이 되었는지를 아는 것이 중요하다고 생각하니 말이다.
2023.10.29 - [AWS] - AWS - CodePipeline을 통한 CI/CD구현기 1편 (Step1: 파이프라인 설정, Step2: 소스 스테이지 추가하기)
반응형
'AWS' 카테고리의 다른 글
AWS IAM MFA 설정: 더 강력한 보안을 위한 가이드 (1) | 2023.11.04 |
---|