---
title: AWS 공부 내용 정리
date: 2024-05-15
tags: aws, 공부
excerpt: AWS 강의를 시작
---
# AWS 강의 시작

시작부터 시험에 맞춰진 강의라는 느낌을 받았다.

섹션 1 ~ 11 까지 기초 강의로 되어 있고, 3, 4 & 5는 스킵해도 된다고 되어 있어서 당황스럽긴 한데..

한번보고 안 볼꺼면 어떻게 보라고 강의 순서까지 정리해두네 😃

#### Please watch the following lectures:

 - Section 7 - AWS Fundamentals: ELB + ASG
   - Auto Scaling Groups - Instance Refresh
 - Section 8 - AWS Fundamentals: RDS + Aurora + ElastiCache
   - ElastiCache Strategies
   - Amazon MemoryDB for Redis
 - Section 9 - Route 53
   - Routing Policy - Traffic Flow & Geoproximity Hands On
 - Section 10 - VPC Fundamentals
   - VPC Fundamentals - Section Introduction
   - VPC, Subnets, IGW and NAT
   - NACL, SG, VPC Flow Logs
   - VPC Peering, Endpoints, VPN, DX
   - VPC Cheat Sheet & Closing Comments
   - Three Tier Architecture
 - Section 12 - AWS CLI, SDK, IAM Roles & Policies
   - AWS EC2 Instance Metadata
   - AWS EC2 Instance Metadata - Hands On
   - AWS CLI Profiles
   - AWS CLI with MFA
   - AWS SDK Overview
   - Exponential Backoff & Service Limit Increase
   - AWS Credentials Provider & Chain
   - AWS Signature v4 Signing
 - Section 15 - CloudFront
   - CloudFront - Caching & Caching Policies
   - CloudFront - Cache Behaviors
   - CloudFront - Caching & Caching Invalidations - Hands On
   - CloudFront - Signed URL / Cookies
   - CloudFront - Signed URL - Key Groups + Hands On
   - CloudFront - Advanced Concepts
   - CloudFront - Real Time Logs
 - Section 16 - ECS, ECR & Fargate - Docker in AWS
   - Amazon ECS - Rolling Updates
   - Amazon ECS Task Definitions - Deep Dive
   - Amazon ECS Task Definitions - Hands On
   - Amazon ECS - Task Placements
   - Amazon ECR - Hands On
 - And everything from Section 17 onwards

이것만 들어도 되는건지는 모르겠다.

---

## AWS 가입

이전에 aws 찍먹해보겠다고 가입했었는데, 90일 지나서 비활성화가 되어 버렸네;;

찾아보니 account+tag@mail.com 이런식으로 태그를 달면 원래 이메일 계정으로 인식해서 코드를 보내주길래 다시 가입을 했다.

시작부터 당황스러웠지만 어쩔 수 없지.

관련해서 강의에서도 정리를 해뒀는데 이건 못봤네 😂

아무튼 생성 완!!

---

## AWS 역사와 Regions

이건 빠르게 보고 지나가자

---

## AWS Console

Aws Console에 대한 내용을 다루는데 하나씩 보면서 친숙해지는 방법이 좋을것 같다.

이전에도 EC2와 같은 서비스를 이용해본적 있는데, 꽤 많이 한글 최적화도 된거 같고 콘솔이 친숙화가 진행된거 같다.

---

## IAM

IAM 이란?  
IAM = Identity and Access Management, Global service  
로 ID와 엑세스 관리의 약자이다.

IAM에서는 사용자를 생성하고 그룹에 할당할 수 있다.

유저(Users)는 조직에서의 사람을 뜻하며 그룹으로 될 수 있다.  

그룹(Groups)는 오직 유저를 포함하고 있고 다른 그룹은 포함할 수 없다.(중요)

어떤 유저는 그룹에 속해있지 않아도 된다.

또한, 각 그룹 사이에 그룹을 생성할 수 있다.

### 왜 사용자와 그룹을 생성할까?

AWS를 사용하기 위한 Permissions 때문이다.

유저와 그룹은 정책이라고 불리는 JSON 문서를 기반으로 한다.

이러한 정책은 유저들의 사용 권한을 결정한다.  
AWS에서는 최소한의 원칙을 적용할 수 있다. 유저가 필요한것 보다 더 많은 권한을 주지 않는다.

#### Tags

Tags는 AWS 어디에서나 사용 가능한 선택 사항이다. 메타데이터를 여러 리소스에 남길 수 있다는 장점이 있다.

#### AWS Account

AWS Account 에는 사용자 계정이 들어 있고, 로그인 url가 있다.  
해당 url는 alias(별칭)을 생성해서 간단하게 접근 가능하다. (단, unique 해야 한다.)

#### IAM 유저 로그인

해당 로그인 url를 통해서 관련 계정으로 들어갈 수 있고, IAM 유저 로그인 상에 alias를 통해서 접근이 가능해진다.  
항상 콘솔 로그인에서 루트계정과 IAM계정의 접근이 이해가 안갔었는데, 이 부분을 확실하게 이해할 수 있었던것 같다.

### IAM Policies

그룹에 IAM Policies를 적용하게 되면 그 그룹 안에 있는 모든 유저에게 접근되고 상속되게 된다.

inline policy 라는 방식으로 한 유저에게만 직접적으로 생성 가능하다.

### IAM Structure

 - Version : 정책 언어 버전, 일반적으로 날짜로 되어 있는 경우가 많다.
 - ID : 정책을 확인하는 방법인데 선택사항이다.
 - Statement : 하나 이상의 구문을 작성해야 한다.
   - Sid : 구문의 식별자로 선택사항이다.
   - Effect : 해당 구문을 허용할지 거부할지에 대한 내용이다. (Allow/Deny)
   - Principal : 어떤 계정, 사용자, 혹은 역할이 이 정책에 적용될지를 결정한다.
   - Action : API 호출 목록이다.
   - Resource : 작업을 적용할 리소스 목록이다.
   - Condition : 이 정책을 적용하기 위한 조건, 선택 사항이다.
~~~
{
  "Version": "2012-10-17",
  "ID": "S3-Account-Permissions",
  "Statement": [
    {
      "Sid": "1",
      "Effect": "Allow",
      "Principal": {
        "AWS": ["arn:aws:iam::123456789012:root"]
      },
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": ["arn:aws:s3:::mybucket/*"]
    },
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "elasticloadbalancing:Describe*",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudwatch:ListMetrics",
        "cloudwatch:GetMetricStatistics",
        "cloudwatch:Describe*"
      ],
      "Resource": "*"
    }
  ]
}
~~~

### IAM - Password Policy

AWS에는 패스워드 정책이 다양하다.  
 - 최소한의 길이 설정
 - 특별한 문자 요구
 - 스스로 패스워드 변경 허용
 - password expiration 설정하여 90일 후에 변경을 요구
 - 재사용 방지

### MFA

MFA - Multi Factor Authentication  
Root 계정과 IAM 유저를 보호하기 위해 사용한다.

MFA = password you know + security device you own

MFA devices options in AWS  
 - Virtual MFA device
   - Google Authenticator
   - Authy
 - Universal 2nd Factor (U2F) Security Key
   - 3rd party
 - Hardware Key Fob MFA Device
 - Hardware Key Fob MFA Device for AWS GovCloud (US)
