AWS Cloud

1. AWS IAM, EC2

JNU 2023. 7. 13. 11:02
반응형

AWS Cloud를 이해하려면 AWS Global Infrastructure를 파악하는 것이 필요하다.
AWS Cloud가 어떤 service를 제공하고 어떤 기능을 수행하는지 이해하는 것도 중요하지만
전체적인 AWS Cloud 구조를 파악한다면 service의 흐름도 파악할 수 있다.
 

AWS Cloud 구조 파악하기


 1. AWS Infrastructure
Region, AZ 개념 구성도

AWS Cloud는 Region > Availability Zone > Data Center > Edge location > users와 같은 범위로 나뉘어 있다.
각각의 언어에 대한 개념은 다음과 같다.
 
1. Region: data center를 clustering 하는 물리적인 위치로 1개의 region은 2개 이상의 AZ로 구성되어 있다.
DR 설계를 위해 두 개 이상의 region에 system을 배치한다.
 
2. Availability Zone(AZ): 하나 이상의 개별 data center.
AZ끼리는 물리적으로 떨어져 있어 이를 고속 network로 연결함
고가용성 설계(High Availability)를 위해  두 개 이상의 AZ에 system을 배치한다.
 
3. Edge Location: data를 caching하는 용도로 사용자에게 최소한의 delay 시간으로 contents를 전송한다.
global 배포 service인 AWS CloudFront, Global Acclerator에서 대표적으로 사용하는 service다.
 


 

2. IAM
IAM 구성

IAM은 Identity Access Management로 사용자가 AWS로 접근할 때 권한을 부여해 주는 서비스를 뜻한다.
IAM은 크게 4가지의 구성요소로 이뤄졌는데 구성요소는 다음과 같다.
 
1. User: 사람,ID, 계정
2. Group: user들을 하나로 묶어주는 group
3. Role: AWS resource에서 사용하는 자격증명. AWS에 있는 서로 다른 resource에 접근할 때 필요함
4. Policy: user,group,role에 대한 권한 정의로 JSON 문서 형식으로 구성되었다. 
 
위의 네가지 중 Role과 Policy가 실질적으로 사용자들에게 권한과 자격을 부여해 주는 역할을 하게 된다.
먼저 Policy의 구성부터 먼저 알아보면 밑의 그림을 예시로 들 수 있다.
 
 

- Policy

밑의 그림은 AWS에서 EC2에 읽기 권한만 부여할 때 사용하는 policy로 IAM의  JSON 파일 내에 다음과 같이 세부적으로 구성되어 있고 JSON으로 작성된 코드 별로 수행하는 역할이 다르다.

AmazonEC2ReadOnlyAccess policy JSON 파일구조

1. Effect: statement에 대한 access or deny 설정
2. Action: 권한에 대한 작업 목록
3. Resource: 권한이 적용되는 resource
4. Condition: 정책이 적용되는 세부 조건
 
간단히 해석하면 "EC2 ReadOnly Access policy는 EC2, ELB, Cloudwatch에 대하여 허용하는 정책을 가진다"
라고 해석할 수 있다.
 
이러한 IAM policy에는 permission boundary가 존재한다. 정확히 표현하자면 IAM user나 role에 대하여 최대 권한을 
제한하는 기능으로 AWS 전체 권한을 가지고 있어도 permission boundary가 기본적으로 적용되어
IAM user나 role에 권한 범위를 축소시켜 적용되는데 이는 보안 원칙 중 하나인 최소권한 부여 원칙을 따르는 방식이다.
 
 
 

- Role

policy와 유사하면서도 다른 IAM Role에 대해 알아본다.
Policy는 user, group, role에 대한 권한 정의라고 배웠다면, Role은 AWS resource에서 사용하는 자격증명을 뜻한다.
쉽게 풀어쓰자면 특정 AWS service가 다른 AWS service에 접근하여 작업을 수행할 때 필요한 권한 policy를 연결하여
IAM role에 작업 수행에 필요한 권한을 부여하는 것이다.
 

EC2에 부여하는 IAM Role 예시

예를 들면 EC2에서 실행되는 application이 있는데 application에서 AWS S3, RDS에 접근하려고 할 때
EC2에서 resource에 접근할 수 있는 권한이 없을 경우 사용할 수 없다. 이 권한을 부여하는 것이 IAM Role이다.
 


 

3. EC2

 
Elastic Compute Cloud 라는 뜻으로 AWS 클라우드 내의 가상 서버를 지칭한다.
흔히, EC2 클라우드 가상 서버를 "instance" 라고 이야기 한다.
 

EC2 구성요소

 
1.ENI (Elastic Network Interface)
가상 network interface로 EC2에 IP주소와 MAC 주소 등이 부여된다.
ENI는 instance에 연결되어 network 통신을 하는 역할로 마치 컴퓨터에 NIC card를 장착하는 것과 똑같다고 볼 수 있다.
사용자가 수동으로 설치하지 않아도 instance를 생성할 때 기본적으로 설정되며,
추가로 여러 개의 network interface를 연결할 수 있다.
 

ENI 구성 예시

 
 
2.  security group
EC2 instance에 대한 traffic을 제어하는 가상의 방화벽 역할을 하는 service다.
EC2 instance의 ENI와 연결되어 있으며, allow rule만 지정 가능하고 deny rule은 지정할 수 없는 것이 특징이다.
security group은 connection을 추적할 수 있는 Stateful Firewall 기능을 탑재하고 있다.
여기서 connection은 session으로 방화벽에서 src IP, dst IP, src port, dst port를 바탕으로 연결상태를 추적하는  
기능과 똑같다고 볼 수 있다.
 

security group 예시

 
 

3. Elastic IP

Elastic IP는 인터넷에 연결 가능한 고정적인 public IP 주소로 instance 생성시 자동으로 할당 받은 public IP는
instance를 재시작하면 다른 IP로 재할당 받게 되어 public IP 주소가 변경된다.
따라서 이러한 불편함을 없애고자 Elastic IP를 설정한다.
EC2 instance의 ENI에 Elastic IP 주소를 연결하면 EC2 instance를 다시 시작해도 동일한 IP주소로 접속할 수 있다.
 
#용어 정리 #
public IP: 인터넷 연결에 사용하는 IP
private IP: 회사나 집의 내부에서만 사용하는 IP, internet gateway를 통해야 연결가능한 IP
 

public IP, private IP 개념도

 
 

4. AMI (Amazon Machin Image)

AMI는 OS, 애플리케이션, server를 구동하기 위해 필요한 이미지다.
EC2를 시작하게 되면 어떤 OS의 image를 사용할지 선택할 수 있는데 사용자가 원하는 image를 선택하여 사용할 수 있다.
가상머신에서 .iso 파일을 다운받아 image를 사용하듯이 클라우드에서도 동일한 개념으로 사용된다.
 
 
 

5. EC2 life cycle

EC2를 운영하게 되면 instance 상태를 확인할 수 있는데 그림과 같이 5가지로 나뉘어져있다.

EC2 instance 상태

- 중지(stop): instance 전원 off
- 시작(start): instance 전원 on
- 재부팅(Reboot): instance 재부팅
- 최대 절전 모드 (Hibernate): RAM에 있는 애플리케이션 상태만 저장하고 중지상태로 변환
- 종료(Termination): instance를 삭제(삭제되면 instance를 재생성해야 함)
 
EC2 운영시 주의할 점은 AWS 서비스 종료시 instance를 중지하지 않은 상태로 나오게 되면
EC2는 계속 운영 상태에 머물게 되어 운영된 시간만큼 사용자에게 사용 요금이 부과된다.
따라서 단순히 공부 용도로 사용할 때는 사용 종료 시 instance도 중지상태로 변경한 후 service를 종료하도록 한다..!
 

반응형