반응형

1. 윈도우 시스템

1) 윈도우 인증 시스템

winlogon은 내부적으로 magina.dll 이라는 GINA 프로그램을 구동시키며 검증을 위해 아이디를 LSA에 전달한다.

구성 내용 세부 내용
Winlogon - 윈도우 로그인 프로세스
GINA(msgina.dll) - Winlogon은 msgina.dll을 로딩하여 사용자가 입력한 계정과 암호를 LSA에게 전달
LSA(lsas.exe) - 계정과 암호를 검증하기 위해서 NTLM(암호화)모듈을 로딩하고 계정을 검증
- SRM이 작성한 감사 로그를 기록
SAM - 사용자 계정 정보에 저장
- 리눅스의 /etc/shadow 파일과 같은 역할을 수행
SRM - 사용자에게 고유 SID를 부여하고 SID에 권한을 부여

 

2) 윈도우 실행 프로세스

윈도우 운영체제 관련 프로세스는 아래와 같이 존재하며, c:\windows\system32 폴더에 위치한다.

프로세스 설명
wininit.exe - 윈도우 시작 프로그램
services.exe - 윈도우 서비스를 관리
lsm.exe - Local Session Manager
- 시스템 관리 작업, 주요 함수 실행, 호스트 컴퓨터와 서버의 연결을 관리
lsass.exe - LSASS(Local Security Authority Subsystem Service)
- 사용자 로그인 검사, 비밀번호 변경 관리, 액세스 토큰 생성
svchost.exe - 서비스를 관리하기 위한 프로세스
conhost.exe - 키보드, 마우스 입력 허용, 문자 출력, 콘솔 API 등 Shell의 기본 기능을 수행

2. 바이러스와 악성코드

컴퓨터 바이러스는 컴퓨터 프로그램의 한 종류로, 사용자 몰래 은닉하여 정상적인 프로그램이나 사용자의 데이터를 파괴하며 자기 스스로 복제해서 증식하는 자기 복제 특성을 지닌 악성 프로그램이다.

 

1) 세대별 컴퓨터 바이러스

바이러스 유형 내용
1세대 원시형 바이러스 - 프로그램 구조가 간단하고 분석이 쉬움
- Jerusalem, Stoned 바이러스
2세대 암호화 바이러스 - 바이러스를 암호화 시킴
- Cascade, Slow 바이러스
3세대 은폐형 바이러스 - 기억장치에 있으면서 감염된 파일의 길이가 증가하지 않는 것처럼 보이게 함
- 감염된 부분을 읽으면 감염되기 전의 내용을 보여주어 은폐
- MacGyver, Brain, 512 바이러스
4세대 갑옷형 바이러스 - 암호화 및 다양한 기법을 사용
- Maltese_Ameoba, Blue Sky, Whale 바이러스
5세대 매크로 바이러스 - 운영체제와 관계없이 응용 프로그램에서 동작하는 바이러스
- Melisa, Laroux, Nimda 바이러스

 

2) 윈도우 DDE취약점을 이용한 공격

DDE는 윈도우에서 Application 간 데이터를 전송하기 위한 프로토콜로, 윈도우 Application 간에 공유 메모리를 사용하여 데이터를 공유한다. (DDE 취약점은 DDE의 정상적인 기능을 악용한 것이다.)

- MS Word 문서 사용 시 자동으로 프로그램 실행 등

 

3) Shell Code와 Heap Spray

Shell Code는 작은 크기의 코드로 소프트웨어 취약점을 이용하는 짧은 기계어 코드로, 일반적으로 Instruction Shell을 실행시켜서 피해자의 컴퓨터를 공격자가 컨트롤한다.

Heap Spray는 짧은 기계어 코드인 Shell Code를 Heap 영역에 뿌리는 것으로, Heap 영역에 임의적으로 Shell Code를 삽입하여 실행시키는 공격 기법이다.

 

Cf) ASLR(Address Space Layout Randomization)

- 실행 파일이 메모리에 Load될 때 기본주소는 항상 동일한 주소 사용

- 동일한 메모리 주소를 가지면 공격자가 악용하기 쉬움

- 위 문제를 해결하기 위해 메모리 주소를 항상 동적으로 할당

 

4) Buffer Overflow

Process가 사용 가능한 메모리 공간을 초과해서 발생되는 공격으로, 메모리 공간에 제한을 두지 않는 API를 사용해서 발생하는 공격이다.

 

Cf) Buffer Overflow가 취약한 코드

아래 코드는 strcpy() 함수를 사용할 때 길이 제한을 두지 않기때문에 취약하다.

- 대응책: 길이제한을 두는 기능이 있는 함수를 사용, ASLR, DEP

void main(int argc, char* argv[]){
char buffer[10];
strcpy(buffer, argv[1]);
printf("test\n", buffer);
}

 

Cf) Stack, Heap, Data 영역

- Stack: 지역 변수가 저장되며, 함수를 호출하는 경우 되돌아오는 주소인 복귀주소를 가지고 있음

- Heap: 프로그램 실행 중 메모리를 동적으로 할당하는 경우, Heap 영역에 할당

- Data: 전역 변수를 선언하면 전역변수 저장, 정적변수를 선언하면 정적변수 저장, 변수가 선언되면 자동으로 초기화

 

Cf) Buffer Overrun

- 메모리 공간에 할당된 공간보다 더 큰 데이터를 입력하면 프로그램의 오류를 유발할 수 있음

- 공격자는 프로그램의 오류를 유발하여 시스템 Control 또는 Shell Code 복사하여 악성코드 실행 가능

 

5) Race Condition

다중 프로세스 환경에서 두개 이상의 프로세스가 동시에 수행될 때 발생되는 비정상적인 상태를 의미한다.

임의의 공유 자원을 여러개의 프로세스가 경쟁하기 때문에 발생한다.

 

6) APT(Advanced Persistent Threat) 공격

특정 기법 및 조작을 대상으로 다양한 공격 기법을 사용하여 지속적으로 공격을 수행하는 행위를 말한다.

참고: 이기적 정보보안기사 필기 1권 이론서

Cf) Binary Diffing

Zeroday Attack 취약점을 찾을 수 있는 기법으로, 자동으로 Malware를 탐지하고 오픈소스 라이선스 준수 여부를 확인

 

 


# 참고

해당 글은 '이기적 정보보안기사 필기 1권 이론서'을 읽으며 필요한 부분만 정리한 내용입니다.

 

반응형
반응형

리눅스 관련 일부 내용 정리

1. 핵심 구성요소

구성요소 내용
Kernel - 주기억장치에 상주하면서 사용자 프로그램을 관리하는 운영체제의 핵심 역할
Shell - 명령어 해석기/번역기로, 사용자 명령의 입출력을 수행하며 프로그램을 수행
- 사용자가 시스템에 로그인했을 때 각 사용자에게 설정된 Shell이 부여됨
- Kernel에 포함된 프로그램이 아니라 독립된 프로그램으로, 커널을 호출하여 작업을 처리
File System - 여러가지 정보를 저장하는 기본적인 구조

 

Cf) Shell Shork

- GNU Bash Shell에서 발견된 취약점으로 악의적 명령 실행, 관리자 권한을 획득할 수 있음

- 해당 공격 기법은 아래 예시처럼 Linux 환경변수에 빈 함수를 넣으면 그 뒤에 오는 코드는 무조건 실행되는 버그를 악용

$ env x='() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
test

2. 패스워드 파일

1) /etc/passwd 파일 구조

root : x : 0 : 0 : root : /root : /bin/bash

- root : 사용자 계정
- x : 사용자 암호, 'x'는 /etc/shadow 파일에 저장되어 있다는 뜻
- 0 : User ID, '0'은 root
- 0 : User Group ID, '0'은 root
- root : Comments
- /root : User의 Home Directory
- /bin/bash : User가 기본으로 사용하는 Shell 종류

 

2) /etc/shadow 파일 구조

root : $1$FzsfsSFGd$wsS/ : 14806 : 0 : 99999 : 7 :   :   :

- root : 사용자 계정
- $1$FzsfsSFGd$wsS/ : Encrypted Password
- 14806 : 1970/1/1부터 비밀번호가 수정된 날짜의 일 수
- 0 : 비밀번호 변경 전 최소 사용기간(일 수)
- 99999 : 비밀번호 변경 전 최대 사용기간(일 수)
- 7 : 비밀번호 만기일 전, 경고 메시지를 제공하는 일 수
- (공란1) : 로그인 접속 차단 일 수 
- (공란2) : 로그인 사용을 금지하는 일 수 (월/일/연도)
- (공란3) : 사용되지 않음

3. 권한 관리

1) 디폴트 권한 umask

기본적으로 File 생성 시 권한은 666, Directory 생성 시 권한은 777이다. ( File: r(4) w(2) x(0), Directory: r(4) w(2) x(1) )

File 또는 Directory 생성 시 기본 권한을 설정할 수 있는 명령어가 'umask'이다.

umask = 0022 일 경우,
1) File 생성 시 권한: 644 (666-022)
2) Directory 생성 시 권한: 755 (777-022)

 

2) 권한 부여 및 변경 chmod

리눅스에서 권한을 부여하는 명령은 'chmod' 이며, 아래와 같이 사용 가능하다.

1) 'aaa' 파일에 'user: rwx, group: rw-, other: r--' 권한을 부여하는 방법
- chmod 764 aaa
2) 'aaa' 파일에 'other'의 'read' 권한을 빼는 방법
- chmod o-r aaa

 

3) 특수 권한 관리

- SetUID : 실행될 때 대상 파일의 소유자 권한으로 실행되도록 함 (4000 또는 u+s를 사용하여 설정)

- SetGID : 실행될 때 대상 파일의 그룹 권한으로 실행되도록 함 (2000 사용하여 설정)

- Sticky bit : 공용 Directory를 만들어 누구나 자유롭게 사용할 수 있도록 함 (1000 사용하여 설정, 삭제는 소유자만 가능)

 

cf) 특수 권한 파일 검색

- SetUID: # find / -perm 4000 -print

- SetGID: # find / -perm 2000 -print

- Sticky bit: # find / -perm 1000 -print

 

cf) 권한이 777인 Directory에 각 특수 권한 부여 시 표시 방법

- SetUID: drwsrwxrwx

- SetGID: drwxrwsrwx

- Sticky bit: drwxrwxrwt

 

cf) 실행 파일이 아닌데 SetUID를 설정하면 대문자 'S'가 되고 실행할 수 없음

 


4. 로그 파일

리눅스의 로그 파일은 기본적으로 '/var/log' directory에 존재한다.

파일 내용
/var/run/utmp 현재 로그인한 사용자 정보 (사용자 이름 확인 명령어 : users)
/var/log/wtmp 사용자의 로그인/로그아웃 정보 (확인 명령어: last)
/var/log/btmp 로그인 실패 정보 (확인 명령어: lastb)

5. 작업 스케줄 관리

1) cron

cron 데몬 프로세스는 '/etc/crontab' 파일을 읽고 작업을 수행하며, crontab 설정은 아래와 같이 진행한다.

52  6  1  *  *  root  /usr/sbin/test

- 52: 분
- 6 : 시
- 1 : 일
- * : 월
- * : 요일 (0: 일요일 ~ 6: 토요일)
- root : 사용자
- /usr/sbin/test : 실행할 명령어

cf) crontab 옵션

옵션 설명
-l 현재 로그인 된 계정에 잡혀있는 작업 스케줄 확인
-e 현재 로그인 중인 계정에 작업을 등록
-r 현재 crontab에 등록된 작업을 삭제
-u [user명] 작업을 실행시킬 유저명 설정

 

2) at

cron과 달리 예약한 명령어를 정해진 시간에 한 번만 실행할 때 사용하는 명령어이다.

# at 18:00

at> hping --rand-source 127.0.0.1 -p 80 -S -flood > test.txt

cf) at 옵션

옵션 설명
-l 현재 실행 대기중인 명령의 목록을 출력
-r 실행 대기중인 명령에서 해당 작업번호를 삭제
-f 표준 입력 대신 실행할 명령을 파일로 지정

6. 리눅스 방화벽

리눅스에서 방화벽 정책을 수립할 수 있는 도구로 iptables가 있다.

 

cf) iptables Chain 종류

- INPUT : 리눅스로 들어오는 패킷

- FORWARD : INPUT과 OUTPUT 역할로, 라우터에 방화벽을 적용할 때 사용

- OUTPUT : 외부로 나가는 패킷

 

cf) iptables 사용 예시

- DNS 서비스를 사용하는 서비스를 모두 차단하는 명령어는 아래와 같이 작성할 수 있다.

iptables - A FORWARD -p udp -m udp --dport 53 -j DROP

 

 


# 참고

해당 글은 '이기적 정보보안기사 필기 1권 이론서'을 읽으며 필요한 부분만 정리한 내용입니다.

반응형
반응형

1. 운영체제(Operating System)

운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다.

 

Cf) 운영체제의 목적

- 처리 능력의 향상: 시간당 작업 처리량(Throughput), 평균 처리시간 개선

- 신뢰성 향상: 실패 없이 주어진 기능을 수행할 수 있는 능력

- 응답 시간의 단축: 사용자가 시스템에 의뢰한 작업의 반응 시간 단축

- 자원 활용률 향상: 자원의 공유, 상호배제를 통해 자원 효율적 활용

- 가용성 향상: 고장과 오류가 발생해도 운영 영향 최소화


2. Process와 Thread

Process란, 레지스터, 스택, 포인터, 실행중인 프로그램, 데이터 등의 집합체로, 프로세에 의해 수행되는 프로그램 단위로 현재 실행 중이거나 곧 실행 가능한 PCB를 가진 프로그램이다.

Thread란, 프로세스에서 실행의 개념만을 분리한 것으로, 프로세스 실행의 기본 단위가 된다.

 

Cf) Process와 Thread 비교

구분 Process Thread
상호 통신 - System Call
- Call 종료 시까지 전체 자원 Blocking
- Library Call
- 요청 Thread만 Blocking
처리 방식 - 자원 할당을 위한 기본 구분 단위 - CPU를 이용하는 기본 작업
부하 - Context Switching으로 인한 부하 발생
- 프로세스 자원 할당 시 부하 발생
- Process보다 상대적으로 부하 발생이 적음

- System Call: OS Kernel 자원을 User가 사용할 수 있도록 미리 함수로 만들어 놓은 것을 호출하는 것
- Library Call: User들이 자주 사용할만한 기능을 미리 함수로 만들어 놓은 것을 호출하는 것

- Context Switching: 현재 진행중인 Process 상태를 PCB에 저장하고 다른 Process의 상태 값을 PCB에서 읽어 레지스터에 적재하는 과정

※ 빠른 응답을 위해 CPU가 Task를 바꿔 가며 실행하는데, 이를 위해 Context Switching이 필요하다.
Context Switching이란, 작업중인 Task(Process, Thread)의 상태를 저장 후 다음 Task의 상태 값을 읽어와서 작업하는 것을 말한다.

 

Cf) Process 상태 변환

상태 상태 변환 내용
Admit 생성 -> 준비 - 준비 큐가 비어있을 때
Dispatch 준비 -> 실행 - 준비 큐에 있는 하나의 Process를 선택하여 CPU 할당
Timer Run out 실행 -> 준비 - CPU를 할당받은 Process가 CPU의 제한된 시간을 모두 사용한 경우
Blocked 실행 -> 슬립 - CPU를 할당받은 Process가 I/O, 다른 자원 요구 등 CPU 외 서비스 작업을 요청한 경우
Wake Up 슬립 -> 준비 - 대기중이던 Request의 처리가 끝난 경우
Release 실행 -> 종료 - Process의 정상/비정상 종료 시 발생

3. CPU Scheduling

컴퓨터의 자원을 효율적으로 사용하기 위해 특정 자원을 요청하는 Process들에게 CPU 자원을 할당해주는 순서를 정하는 일이다.

 

Cf) CPU Sheduling 기법

1) FCFS(First Come First Service), 비선점형

- 대기 큐에 도착한 순서대로 CPU 할당하며, CPU를 차지한 Process는 작업을 완료할 때까지 수행

- 중요하지 않은 작업이 중요한 작업을 기다리게 할 가능성이 존재

 

2) SJF(Shortest Job First), 비선점형

- 수행 시간이 가장 짧은 Process에게 먼저 할당

- FCFS보다 평균 대기시간은 적으나, 큰 작업에 대해서는 대기 시간 예측이 어려움

 

3) Round Robin, 선점형

- FCFS에 의해 CPU가 할당되며, 각 Process에 같은 크기의 CPU 시간을 할당

- CPU 시간이 만료되면 대기중인 다른 Process에게 할당되며, 실행중이던(완료되지 않은) Process는 list의 가장 뒤로 보내짐

 

4) SRT(Shortest Remaining Time), 선점형

- SJF처럼 처리 완료 시간이 가장 짧은 Process에게 먼저 할당

- 실행중인 Process라도 남은 시간이 더 짧은 Process가 생기면 언제라도 실행중인 프로세스가 선점된다.

 

5) Multi Level Queue

- 여러 종류의 그룹으로 나누어 여러 개의 큐를 이용

- 그룹화된 작업들은 각각의 큐에 넣어두고 각 큐의 독자적인 알고리즘에 따라 CPU를 할당 받음

 

6) Multi Level Feedback Queue

- 우선순위 Queue와 Round Robin을 모두 사용

- 먼저 들어온 Process에게 높은 우선순위를 부여하고, n개 이상이 생성되면 작업이 완료될 때까지 Round Robin으로 순환

- 입출력 위주와 CPU 위주인 Process의 특성에 따라 서로 다른 CPU 시간 할당


4. 병행성 제어(Concurrency Control)

1) 상호배제(Mutual Exclusion Techniques)

- 다수의 Process가 동일 자원에 접근 시 무결성을 보장(동시에 Read/Write 작업을 못하게 함)

 

2) 임계영역(Critical Section)

- 한 순간에 하나의 Process만 진입하기위해 공유 자원의 독점을 보장하는 코드 영역

- Thread가 공유 자원의 배타적인 사용을 보장받기 위해 임계영역에 들어가거나 나올 때에는 세마포어 같은 동기화 매커니즘을 사용

 

3) 교착상태(Dead Lock)

- Process가 더이상 계속할 수 없는 아래와 같은 특정 사건을 기다리고 있는 상태

- 둘 이상의 Process가 서로 자신이 요구한 자원을 할당받아 점유하고 있는 상태에서 상호 간에 상대방 프로세스에 할당되어 있는 자원을 요구하는 경우


5. 장치 관리 방법

Disk Sheduling

1) FCFS(First Come First Serviced)

- 가장 먼저 도착한 요청을 우선적으로 처리

 

2) SSTF(Shortest Seek Time First)

- 탐색 거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스

- 현재 Head 위치에서 가까운 요청을 우선적으로 처리

 

3) SCAN(엘리베이터 알고리즘)

- SSTF가 갖는 탐색시간의 편차를 해소하기 위한 기법

- Head가 이동하는 방향의 모든 요청을 서비스하고 끝까지 이동한 후 역방향의 요청을 서비스

 

4) C-SCAN(Circular-SCAN)

- Head가 항상 한 쪽 끝에서 반대쪽 끝으로 이동하며 서비스하고, 반대쪽 끝에 도달하면 그 반대쪽 끝으로 되돌아간 후 다시 서비스

 

5) C-LOOK(Circular-Look)

- C-SCAN의 보완으로, Head 이동 방향의 마지막 요청을 처리한 뒤, Head를 처음 위치로 이동하여 다음 요청을 서비스

- 진행 방향에 더이상 요청이 없으면 Head는 진행 방향을 바꿈 

 

RAID(Redundant Array of Independent Disk)

Disk 장애 발생 시, 그대로 복구할 수 있도록 2개 이상의 Disk에 데이터를 저장하는 기술

이미지 출처: https://en.wikipedia.org/wiki/Standard_RAID_levels

1) RAID 0(Stripe, Concatenate)

- 최소 2개의 Disk로 구성되며, 데이터를 나누어 저장하지만 중복 저장하지 않기 때문에 장애 발생 시 복구 불가

 

2) RAID 1(Mirroring)

- 여러 Disk에 데이터를 완전 이중화하여 저장하는 방식으로 RAID에서 가장 좋은 방식이지만 비용이 많이 발생

 

3) RAID 2(Hamming Code ECC)

- ECC(Error Correction Code) 기능이 없는 Disk의 오류 복구를 위해 개발되었으며, Hamming Code를이용하여 오류를 복구

- 최소 3개의 Disk로 구성 가능하며, 별도의 Disk에 복구를 위한 ECC를 저장하여 1개의 Disk 에러 시 복구 가능 (2개 이상 불가능)

 

4) RAID 3(Parity ECC, Byte 단위 I/O)

- Byte 단위로 striping을 하고 Error Correction을 위해 Parity 정보를 별도 Disk에 저장

- 최소 3개의 Disk로 구성 가능하며, 별도의 Disk에 복구를 위한 ECC를 저장하여 1개의 Disk 에러 시 복구 가능 (2개 이상 불가능)

 

5) RAID 4(Parity ECC, Block 단위 I/O)

- Block 단위로 striping을 하고 Error Correction을 위해 Parity 정보를 별도 Disk에 저장

- 최소 3개의 Disk로 구성 가능하며, 별도의 Disk에 복구를 위한 ECC를 저장하여 1개의 Disk 에러 시 복구 가능 (2개 이상 불가능)

 

6) RAID 5(Parity ECC, Parity 분산 저장)

- Block 단위로 striping을 하고 Error Correction을 위해 Parity 정보를 별도 Disk에 저장하는데, Parity 저장 Disk를 고정하지 않고 매번 다른 Disk에 저장

- 최소 3개의 Disk로 구성 가능하며, 별도의 Disk에 복구를 위한 ECC를 저장하여 1개의 Disk 에러 시 복구 가능 (2개 이상 불가능)

 

7) RAID 6(Parity ECC, Parity 분산 복수 저장)

- RAID 5에서 성능, 용량을 줄이고 안정성을 높인 RAID
- Block 단위로 striping을 하고 Error Correction을 위해 Parity 정보를 2개 Disk에 저장

- 최소 4개의 Disk로 구성 가능하며, 별도의 Disk에 복구를 위한 ECC를 저장하여 2개의 Disk 에러 시 복구 가능 (3개 이상 불가능)

 

 

 


# 참고

해당 글은 '이기적 정보보안기사 필기 1권 이론서'을 읽으며 필요한 부분만 정리한 내용입니다.

반응형
반응형

개인적으로 해당 내용을 다루기 전, 먼저 AWS 인프라 구조를 대략적으로 보고 하나씩 공부하며 이해하는것이 편하다.

아래와 같이 구조를 한번 보고, 세부적인 서비스에 대해 간략하게 알아본다. (각 항목에 대한 자세한 내용은 추후 다루도록 한다.)

AWS 인프라 구조(참고: 따라하며 배우는 AWS 네트워크 입문)


AWS Network Service

1. AWS VPC

VPC는 Virtual Private Cloud의 약자로, AWS 클라우드 내 논리적으로 독립된 섹션을 제공하여 사용자가 정의한 가상 네트워크 상에서 다양한 AWS 리소스를 실행할 수 있도록 해준다.

 

2. AWS VPN

VPN은 Virtual Private Network의 약자로, 공용 인터넷을 통해 가상의 사설 네트워크를 구성하여 프라이빗 통신을 할 수 있도록 제공한다.

(AWS에서 제공하는 VPN 서비스에는 Site-to-Site VPN과 Client VPN이 있다.)

AWS Site to Site VPN (참고: 따라하며 배우는 AWS 네트워크 입문)

3. ELB (Elastic Load Balancing)

AWS에서 제공하는 Load Balancing 기술이며, 서비스 대상 시스템(ex. EC2)에 데이터를 분산하여 전달하는 역할을 수행한다.

Load Balancer
https://teacheryoon.tistory.com/16
 

네트워크 - Load Balancer

Load Balancer가 무엇인지 정의를 내리기 전, Client 요청에 응답하는 Server를 생각해본다. Client가 한명일 경우, Server는 Client의 요청에 응답하는데 무리가 없을 것이다. 하지만 한명이 아닌 수백, 수천

teacheryoon.tistory.com

 

4. AWS PrivateLink

퍼블릭 인터넷에 데이터가 노출되지 않도록 하며 내부 네트워크를 통해 AWS 서비스와 On-Premise 간에 안전한 비공개 연결을 제공한다.

 

5. Route 53

AWS에서 제공하는 관리형 DNS Service로 도메인 질의에 대한 응답을 처리한다.

Route 53 Resolver 기능을 사용하면 Hybrid Cloud 환경에서 On-Premise와 AWS 간 도메인 질의가 가능하다.

 

6. AWS 전송 게이트웨이

VPC나 On-Premise 등의 네트워크를 단일 지점으로 연결할 수 있도록 해주는 Routing Service이다.

AWS 전송 게이트웨이 (참고:따라하며 배우는 AWS 네트워크 입문)

 

7. AWS Direct Connect

데이터 센터, 본사 사무실, Co-Location 환경과 같은 장소에서 AWS와의 전용 네트워크 연결을 제공하는 전용선 서비스다.

 

8. AWS CloudFront - CDN

AWS에서 제공하는 CDN 서비스로, CloudFront는 전 세계에서 216개의 Edge POP을 두고 AWS 글로벌 네트워크를 통해 콘텐츠를 Caching하여 서비스를 제공한다.

 

9. AWS Global Accelerator

로컬 또는 글로벌 사용자를 대상으로 Application의 가용성과 성능을 개선할 수 있는 서비스이며, AWS의 글로벌 네트워크를 통해 User에서 Application으로 이어진 경로를 최적화하여 트래픽의 성능을 개선한다.

 

10. 네트워크 보안

AWS의 네트워크 기반의 보안 기능으로는 Security Group, Network ACL, WAF가 있다.

 

 


# 참고

해당 내용은 '따라하며 배우는 AWS 네트워크 입문' 책을 읽으며 필요한 부분만 정리한 내용입니다.

반응형

'기초지식 > AWS' 카테고리의 다른 글

AWS - AWS 소개  (0) 2021.07.09
반응형

클라우드(Cloud)

인터넷을 통해서 whenever, wherever 원하는 만큼의 IT 리소스를 사용할 수 있도록 해주는 서비스를 말한다.


클라우드 서비스 종류

클라우드의 종류는 크게 4가지로 분류할 수 있다.

1. IaaS(Infrstructure as a Service)

- 기본적인 IT 자원(서버, 네트워크, 스토리지)을 클라우드 사업자가 제공한다.

- 사용자는 가상 서버에 필요한 프로그램을 설치하고 사용한다. (OS 등 직접 설치)

 

2. PaaS(Platform as a Service)

- IT 자원 외 OS, 개발에 필요한 미들웨어와 런타임을 클라우드 사업자가 제공한다.

- 사용자는 제공받은 환경에서 개발에 집중한다. (개발자의 경우, 코드만 업로드해서 사용)

 

3. Serverless 플랫폼

- Application 개발에 필요한 대부분을 클라우드 사업자가 제공한다.

- 사용자는 개발에만 집중한다.

 

4. SaaS(Software as a Service)

- 리소스 제공 및 다양한 지원을 클라우드 사업자가 제공한다.

- Application을 바로 사용할 수 있도록 해주는 서비스이다. (사용자는 서버의 리소스 신경쓸 필요 없음)

 

Cf) PaaS와 Serverless 플랫폼의 차이

- PaaS: 실제 사용자 수가 아닌, 결제한 만큼의 요금을 지불해야 한다.

(사용자가 10명이든 1000명이든 상관없이 결제한 만큼의 요금 지불, IaaS도 마찬가지)

- Serverless: 실제 사용자 수에 따라 요금을 지불해야 한다.

(사용자가 없으면 자원 할당하지 않으며, 실제 사용한 자원에 대해서만 요금 지불)

 


클라우드 구현 모델

1. Public Cloud

- Cloud Service 제공 업체가 운영, 관리한다.

- 사용자는 해당 클라우드의 리소스 사용한다. (ex. AWS에서 서버, 가상머신 등 제공받아 사용)

 

2. Private Cloud

- 사용자가 자신의 On-Premise 환경에 클라우드 플랫폼을 구축하여 직접 사용한다.

- 특정 기업이나 사용자만을 대상으로하며, 데이터는 기업 내부에 저장한다.

 

3. Hybrid Cloud

- On-Premise와 Public Cloud 모두에 서비스하는 모델이다.

- On-Premise 환경에서도 Public Cloud와 유사한 기능을 사용할 수 있다.


AWS 글로벌 인프라(AZ, Region, Edge, Backbone Network)

1. AZ(Availability Zone, 가용 영역)

- AZ는 한 개 이상의 데이터 센터들의 모음을 말한다.

- 각 데이터 센터들은 분산되어 있으며, 초고석 광통신 전용망으로 연결되어 있다.

 

2. Region

- 지리적인 영역 내에서 격리되고 물리적으로 분리된 여러 개의 가용 영역(AZ)의 모음을 말한다.

- 리전은 최소 2개의 AZ로 구성된다.

참고(도서): 따라하며 배우는 AWS 네트워크 입문

 

3. Edge (엣지, Edge POP)

- 외부 인터넷과 AWS 네트워크망을 연결하는 별도의 센터를 말한다.

- Edge Location과 Regional Edge Cache로 구성된다.

- CloudFront와 같은 CDN 서비스의 데이터 캐시 기능을 제공한다.

- CloudFront, Direct Connect, Route 53, AWS Shield, AWS Global Accelerator가 Edge에서 동작한다.

 

4. Backbone Network

- AWS 글로벌 네트워크망과 연결하며, 중국 리전을 제외한 모든 AWS 리전과 연결된다.

참고(도서): 따라하며 배우는 AWS 네트워크 입문


컴퓨팅 서비스(EC2, Auto Scaling, AWS Lambda)

1. EC2(Elastic Compute Cloud)

- 물리 환경의 컴퓨터처럼 컴퓨팅 리소스를 제공하는 서비스다.

- 가상 머신으로 제공되며 인스턴스라고 불린다.

 

2. Auto Scaling

- EC2 인스턴스의 조건에 따라 자동으로 서버를 추가, 제거하는 서비스다.

 

3. AWS Lambda (Serverless Computing)

- 프로그램을 실행하는 컴퓨팅 엔진이다.

- 람다가 있기 때문에 사용자는 코드만으로 서비스를 실행할 수 있다.


스토리지 서비스(EBS, S3)

1. EBS(Elastic Block Store)

- 가용 영역 내의 EC2 인스턴스에 연결되어 사용할 수 있는 Block Storage를 말한다.

 

2. S3(Simple Storage Service)

- 객체 기반의 무제한 파일을 저장할 수 있는 Storage를 말한다.

- 사용자는 URL을 통해 파일을 사용할 수 있다.


데이터베이스 서비스(Amazon RDS, Amazon DynamoDB)

1. Amazon RDS(Relational Database Service)

- Relational DB를 이용할 수 있는 서비스다.

- DB 설정, 패치, 백업 등 시간 소모적인 관리 작업을 AWS에서 처리한다.

 

2. Amazon DynamoDB

- 어떠한 규모에서도 10ms 미만의 성능을 제공하는 key-value 및 NoSQL DB 서비스다.

- 대규모의 데이터 저장 및 처리를 할 수 있다. 

 

 

 


# 참고

해당 내용은 '따라하며 배우는 AWS 네트워크 입문' 책을 읽으며 필요한 부분만 정리한 내용입니다.

 

반응형

'기초지식 > AWS' 카테고리의 다른 글

AWS - AWS Network Service  (0) 2021.07.09

+ Recent posts