실습으로 배우는 AWS - 01 AWS 시작하기

핏자·2023년 5월 22일
0

인공지능사관학교

목록 보기
26/31
post-thumbnail
  • 📖 AWS 개념 & 주요 서비스

- 클라우드란 무엇일까?

AWS = cloud

프로그램 코드 -컴파일 / 빌드-> 프로그램

프로그램 -배포-> 1. PC(성능과 안정성↓), 2. 서버(성능과 안정성↑), 3. 데이터 센터(항온항습, 이중화)
위 3개를 인프라&플랫폼이라고 한다

안정성 : 얼마나 안정적으로 서비스를 운용
민첩성 : 개발한 프로그램을 적재적소에 배포할 수 있도록 자원 준비
관리 : 여러개의 인프라 자원이 존재했을 때, 관리가 얼마나 편리한지
비용 : 얼마나 비용효율적으로 인프라 자원을 이용하는지

데이터 센터 :
물리적인 장비들을 안정적이고 중단 없는 서비스 유지 목적
가상화 :
하나의 물리적인 장비에서 소프트웨어적으로 여러 개의 논리적인 자원으로 분리하여 비용대비 효율성 증대 목적
클라우드 :
특정 기업이 호스팅하여 인터넷을 통해 사용자에게 제공하는 서비스 혹은 플랫폼 제공자에 따라 분류 : 프라이빗 / 퍼블릭 서비스 형태에 따라 분류 : IaaS / PaaS / SaaS

- 아마존 웹 서비스(Amazon Web Services; AWS)

  • 글로벌 #1 클라우드 제공 업체
  • 300개 이상의 온 디맨드(On-Demand) 클라우드 서비스
  • 넷플릭스, 페이스북, 트위치 등 수많은 기업에서 AWS 사용 중

- 웹 어플리케이션 기본 구성(Front-end, Back-end)

사용자 -> Front-end(Web Server, 정적콘텐츠) -> Request -> Back-end(API Server ↔ Database, 동적콘텐츠)



- 요약

  1. 클라우드는 빠르고, 안정적이면서, 비용 효율적인 컴퓨팅 서비스를 제공한다.
  2. AWS는 클라우드 서비스 제공 업체로, 300개 이상의 온-디맨드 서비스를 제공한다.
  3. 본 강의에서 사용되는 AWS의 서비스들이 여러가지 존재한다.





  • 📖 AWS 글로벌 인프라

- AWS 리전(Regions)

  • 리전 : 물리적인 데이터센터 클러스터 단위
  • 전 세계적으로 리전 단위로 AWS 서비스 제공
  • 하나의 국가에 한 개 혹은 다수의 리전 존재
  • 아시아 태평양 리전 : 중국(베이징, 닝샤), 시드니, 오사카, 도쿄, 뭄바이, 서울, 홍콩

- AWS 가용 영역(Availability Zones) : Seoul Region에 총 4개의 AZ 존재

  • 가용영역(Availability Zone : AZ) : 지리적으로 분리된 1개 이상의 데이터센터
  • 서울 리전에는 총 4개의 AZ 존재
    • ap-northeast-2a
    • ap-northeast-2b
    • ap-northeast-2c
    • ap-northeast-2d
  • 왜 AZ를 분리하였을까? : 내결함과 고가용성을 유지하기에 적합한 구조

- 엣지 로케이션(Edge Location) : 더 나은 네트워크 속도를 위한 서비스

  • 엣지 로케이션(Edge Locations) : 전 세계적으로 통신사와 협업하여 빠른 네트워크 서비스를 제공하기 위한 지역
  • 215개 이상의 엣지 로케이션을 전 세계적으로 제공
  • 해외 서비스를 제공할 때 유용

- Region vs AZ vs Edge Location이 왜 중요할까?

서비스 제공 단위 : Region 별 서비스 상이
서비스 지연 시간 : Edge
비용 : AZ, 비용 ↔ 안정성

- 요약

  1. AWS 글로벌 인프라에는 Region, AZ, Edge Location이라는 개념이 있다.
  2. Region은 여러 개 데이터 센터의 묶음 단위, AZ는 실제 물리적인 데이터 센터, Edge Location은 더 가까운 곳에서 빠른 네트워크 서비스를 위한 단위이다.
  3. 각각의 지역은 필요한 서비스, 지연시간, 비용에 의해서 결정된다.





  • 📖 AWS IAM 서비스 소개

- IAM(Identity & Access Management) : AWS의 자격 증명과 접근 관리 서비스!

개인 X
Team O

개발자A에게 개발서비스 X 제공
인프다 담당자 B에게 운영관 관련된 Y,Z 서비스 제공
등록되지 않은 사용자는 접근을 차단

- AWS IAM(Identity and Access Management) : Identity & Access Management

Identity : 신원 정의
Access Managemetn : 접근에 대한 권한 부여

IAM은 AWS 서비스 전체의 권한 통제 시스템

- Root 계정, 사용자, 사용자 그룹 : Identity

Root 계정 :

  • AWS 계정 생성 시 최초로 만들어지는 계정
  • 모든 서비스에 대한 권한을 가지고 있음
  • MFA(Multi Factor Authentication)를 통해 보안 강화 필요

사용자 :

  • AWS 서비스를 실질적으로 사용하는 유저, Root 계정과 독립적인 권한을 가짐
  • 사용자는 필요한 최소한의 권한을 가져야 함
  • '그룹'에 의해서 그룹화 될 수 있음

사용자 그룹 :

  • 여려 명의 사용자들 대상으로 그룹화를 하여 권한을 제공할 수 있음
  • 사용자는 반드시 그룹에 소속될 필요는 없으며, 한 명의 사용자는 여러 개의 그룹에 소속될 수 있음

- 권한 정책(Permissions) : IAM Permission

  • 정책(Permission)은 사용자 혹은 사용자 그룹을 대상으로 적용할 수 있음
  • 정책은 JSON 형식 기반으로 구성할 수 있음
  • 하나의 사용자 혹은 사용자 그룹은 여러 개의 정책을 설정할 수 있음
  • AWS 환경에서는 사용자에 대해 필요 이상의 권한을 부여하지 않는 것을 원칙으로 함

- 정책(Permission)의 JSON 형식 : Permission JSON format

{
	"Version": "2012-10-17"
    "Statement":[
    	{
        	"Effect": "Allow or Deny",
            "Action":[
            	...
			],
            "Resource":[
            	...
			],
            "Condition":[
            	...
			}
		]
}

Effect : 허용 & 차단?
Action : 어떤 행위를 할 것인가?
Resource : 어떤 객체(리소스)들에 대해?
Condition : 어떤 조건에서?

- IAM : Identity(User, Group) + Access Management(Permission) 활용

  1. 사용자(User)는 여러 개의 그룹에 속할 수 있다.
  2. 사용자(User)는 반드시 그룹에 속하지 않아도 된다.
  3. 사용자(User)는 여러 개의 정책이 적용될 수 있다.

- IAM Role

  • 역할(Role)은 AWS 서비스 대상으로 적용할 수 있음
  • 역할(Role)을 구성하기 위해서는 어떤 권한(Permission)을 가지는지 명세 해야 함
  • 역할(Role)을 적용하는 주요 대상은 EC2, Lambda 등이 AWS 서비스를 호출하는데 사용됨(AWS 대부분의 서비스에 적용 가능)

- 멀티 팩터 인증(MFA : Multi Factor Authentication)

  • Password 정책
    • 기본 암호 정책
    • 최소 8자 이상 128자 암호 길이
    • 대문자, 소문자, 특수문자 중에서 3개 이상의 조합
    • AWS 계정 이름 혹은 이메일 주소와 동일하지 않아야 함
    • ** 사용자가 지정하여 암호 정책을 변경 할 수 있음(암호 최소 길이, 강도, 만료일, 재사용 권한 등)
  • MFA 인증
    • 비밀번호 접속만으로는 보안이 취약할 수 있기 때문에 2중 암호 장치(MFA)를 구성하는 방법이 제공됨
    • MFA는 일정한 주기로 토큰이 갱신되며, 스마트폰 혹은 물리적인 기기를 통해 발급받을 수 있음
    • Root User 나, IAM User의 보안 강화를 할 수 있음

- 요약

  1. AWS IAM은 AWS 서비스 사용을 위한 Identity(신원)와 Access Management(권한 관리)로 구성되어 있는 접근 제어 서비스 이다.
  2. Identity에는 Root User, User, User Group 개념이 있다.
  3. Permission은 User 나 User Group 대상으로 어떤 행위를 허용할 지를 명세 한다.
  4. Role은 AWS 서비스를 대상으로 적용할 수 있음 Permission이다
  5. 보안 강화를 위한 방법으로 암호 정책과 MFA가 있다.





  • 📖 AWS 서비스 사용법

- AWS 접속 방식

  1. AWS 관리 콘솔(Management Console)
  2. AWS CLI
  3. AWS SDK

- AWS 관리 콘솔 웹 인터페이스

AWS 관리 콘솔은 웹브라우저를 통해 접속하여 AWS 서비스를 제어할 수 있도록 제공하는 유저 인터페이스

사용자, 서비스 사용량, 월별 요금 등을 한 눈에 모니터링 가능

사용자에게 친숙하고, 자주 사용되는 서비스를 커스터마이징하여 관리 및 접근할 수 있음

- AWS CLI

  • AWS CLI는 커맨드 라인 방식으로 Shell 화면에서 AWS 서비스를 사용할 수 있도록 제공해주는 툴
  • AWS 관리 콘솔에서 수행하는 대부분의 역할을 수행 가능
  • 커맨드 라인 스크립트 생성을 통해 반복적인 작업에 대해서는 스크립트 자동화를 구성할 수 있음
  • AWS CLI는 Open source 기반

- AWS 액세스 키 & 비밀 액세스 키

액세스 키 & 비밀 액세스 키 :

  • 액세스 키는 AWS CLI나 AWS SDK 활용 시, ID와 PW 같이 사용됨
  • 액세스 키 ID = ID,비밀 액세스 키 = Password
  • 외부로 절대 노출 돼서는 안됨!

- AWS SDK

  • AWS SDK(Software Development Kit)는 프로그램 언어에서 라이브러리 형태로 제공되는 개발 킷
  • AWS 서비스를 프로그래밍 언어를 통해 구현 및 사용할 수 있음
  • 지원언어 : C++, Go, Java, JavaScript, .NET, Node.js, PHP, Python, Ruby

- 요약

  1. AWS 서비스를 사용하는 방식에는 크게 3가지가 있다.
    1)AWS 관리 콘솔, 2)AWs CLI, 3)AWS SDK

  2. AWS CLI와 AWS SDK는 서비스를 사용할 때 액세스 키와 비밀 액세스 키를 사용하므로 노출되지 않도록 주의한다.

  3. AWS CLI는 커맨드 라인 방식으로 쉘에서 AWS 서비스를 사용할 수 있는 툴이다.

  4. AWS SDK는 프로그래밍 언어를 통해 라이브러리와 같이 구현할 수 있는 개발 킷이다.

profile
개발자 핏자의 로그들

0개의 댓글