Cat Solution

AWS Technical Essentials - 모듈 1: AMAZON WEB SERVICE 소개 본문

Study/AWS

AWS Technical Essentials - 모듈 1: AMAZON WEB SERVICE 소개

Casol 2024. 1. 3. 22:18

AWS Skill Builder - AWS Technical Essentials 개인 공부 내용입니다.

모듈 1: AMAZON WEB SERVICE 소개

 

목차

AWS 글로벌 인프라

AWS API를 호출하는 방법

보안 및 AWS 공동 책임 모델

AWS 루트 사용자 보호

AWS IAM, 역할 기반 액세스

데모: AWS IAM 로 보안 구현

(실습) 직원 디렉터리 애플리케이션 호스팅

 


AWS 글로벌 인프라

리전 / 가용영역 / 데이터 센터는 중복되고, 중첩된 방식으로 존재한다.

 

출처: AWS Skill Builder

 

리전

AWS가 전 세계에서 데이터 센터를 호스팅하는 지리적 위치

리전이 있는 위치의 이름을 따서 지정됨

적합한 AWS 리전 선택

대기 시간, 가격, 서비스 가용성, 규정 준수의 4가지 측면 고려

 

가용 영역

모든 리전의 내부에는 가용 영역 (AZ)의 클러스터 존재

가용 영역은 중복 전력, 네트워킹 및 연결이 제공되는 1개 이상의 데이터 센터로 구성됨

데이터 센터는 공개되지 않은 위치의 개별 시설에서 운영되고 이중화되어 대기 시간이 짧은 고속 링크를 사용하여 연결됨

 

복원력 유지

애플리케이션을 계속 사용할 수 있도록 하려면 고가용성과 복원력을 유지해야 함

클라우드 아키텍처의 모범 사례는 리전 범위의 관리형 서비스를 사용하는 것

or 워크로드가 여러 AZ에 걸쳐 복제되도록 해야 함

-> 하나의 AZ에 장애가 발생하더라도 두 번째 AZ에서 인프라가 가동되어 처리

 


 

 AWS API 를 호출하는 방법

 

AWS 관리 콘솔

AWS CLI

AWS SDK

 


 

보안 및 AWS 공동 책임 모델

 

출처: AWS Skill Builder

 

공동 책임 모델: 클라우드 자체의 보안 (AWS) & 클라우드 내부의 보안 (고객)

 


 

AWS 루트 사용자 보호

 

MFA: 멀티 팩터 인증 사용하여 루트 계정을 보호하자

계정에 액세스하려면 두 개 이상의 인증 방법을 사용해야 함

 


 

AWS IAM (AWS Identity and Access Management)

AWS 계정 및 리소스에 대한 액세스를 관리하는 데 도움이 되는 AWS 서비스 (인증, 권한 부여)

 

AWS에서의 역할 기반 액세스

출처: AWS Skill Builder

 

-> IAM 역할 사용

 

IAM 역할

요청에 서명하는데 사용하는 AWS 의 자격 증명

정적 로그인 자격 증명 없음 (사용자의 이름, 암호 등 없음)

프로그래밍 방식으로 획득

구성 가능한 시간 동안만 가능한 임시 자격 증명

자격 증명이 만료되고 교체됨

 

출처: AWS Skill Builder

 

자격 증명 공급자

직원 5000명이 AWS에 액세스 할 수 있도록 모든 직원에 대해 각각의 IAM 사용자를 생성해야 할까?

ㄴㄴ... 비효율적

IAM 역할을 사용!

 

여기까지 이해 안갔어두 괜찮다고 하심,,, 데모에서 내내 설명하실거기 때문!

 


 

데모: AWS IAM 로 보안 구현

 

출처: AWS Skill Builder

 

시나리오

콘솔에서 각 사용자가 고유한 권한을 갖도록 구성해보자

ex) user-1은 Amazon S3 에 대한 읽기 전용 액세스 권한

 

IAM 검색 > IAM dashboard 로 이동

Users > user-1 

Permissions 에서 할당된 권한 확인

 

사용자들에게 직접 할당하지 않고 그룹에 권한을 할당해보자 

> 더 많은 사용자가 팀에 합류할 때 직무 역할에 적합한 그룹에 배치할 수 있음

 

Groups > 할당된 그룹 확인

Security credentials

 

User groups

Permissions > show policies 어떤 정책인지 볼 수 있음

 

User groups > Add users

로 적절한 그룹에 유저 추가 후 확인

 


 

(실습) 직원 디렉터리 애플리케이션 호스팅

 

Amazone EC2 를 사용하여 애플리케이션을 호스팅해보자

 

*EC2

가상머신을 호스트할 수 있는 컴퓨팅 서비스 (지금은 간단하게만)

 


 

로그인 > 관리 콘솔 화면에서 EC2 검색

Lauch Instance 눌러 EC2 인스턴스 시작

 

 

이름 지정 - employee-webapp

구성 - 나중에

 

 

인스턴스 유형 - t3.micro

key pair - X

네트워크 설정 - vpc

 

 

방화벽 (보안 그룹) - HTTPS, HTTP 하나씩 생성

 

 

고급 세부 정보 > User data (사용자 데이터)

스크립트는 인스턴스가 부팅될 때 실행됨

소스코드를 앱에 다운로드 하고 웹서버를 시작하고 애플리케이션 코드를 시작하는 등의 프로세스를 자동화함

 

#!/bin/bash -ex

# Update yum
yum -y update

# Add node's source repo
curl -sL https://rpm.nodesource.com/setup_15.x | bash -

#Install nodejs
yum -y install nodejs

# Create a dedicated directory for the application
mkdir -p /var/app

# Get the app from S3
wget https://aws-tc-largeobjects.s3-us-west-2.amazonaws.com/ILT-TF-100-TECESS-5/app/app.zip

# Unzip it into a specific folder
unzip app.zip -d /var/app/
cd /var/app/

# Install dependencies
npm install

# Start your app
npm start

 

Launch Instance (인스턴스 시작) 후 잠시 기다리기

 

시작된 인스턴스에서 public IPv4 주소 복붙하면 웹앱이 실행되는 것을 확인

할 수 있다고 하시는데,,, 안된다 아직 아는 게 없어서 뭐가 문제인지 모르겠음 강의 다 듣고 돌아와서 해결해보기로,,,

 


다음 시간

EC2 뿐만 아니라 AWS 에서의 네트워킹