SlideShare a Scribd company logo
AWS 간단 리뷰1
김한성
목차
•IAM
•EC2
•S3
•다음 시간
•Lambda
•Step Function
•CloudWatch
IAM
IAM(Identity and Access Management)
• AWS 리소스에 대한 액세스를
안전하게 제어할 수 있는 서비스
• 리눅스 권한과 유사
• root
• user
• service
IAM – 용어 정리
• 리소스(Resource)
• IAM에 저장된 사용자, 역할, 그룹 및 정책 객체
• IAM에서 리소스를 추가, 편집 및 제거 가능
• ID
• 식별 및 그룹화에 사용되는 IAM 리소스 객체
• 사용자, 그룹 및 역할 포함
IAM – 용어 정리
• 개체(Entities) - 인증에 사용하는 IAM 리소스 객체입니다
• 역할 : 웹 자격 증명 또는 SAML을 통해 페더레이션된 사용자는 물론
사용자 또는 다른 계정의 IAM 사용자
• 사용자 : IAM 사용자(root, user)
• 보안주체(Principal)
• 개체를 사용하여 AWS에 로그인하고 요청하는
사람 또는 애플리케이션입니다.
IAM – 용어 정리
• 보안주체
• AWS 리소스에 대한 작업을 요청할 수 있는
사람 또는 애플리케이션
• 필수 - 보안주체로 root를 사용X
• IAM 사용자(user)
• 별개의 계정이 아니라 root 계정 내의 사용자
• IAM User != 사람(일부는 어플리케이션)
IAM – 기존 사용자 연동
• 사용자가 이미 기업 디렉토리에 자격 증명을 보유한 경우
• SAML 2.0 호환 X : 기업 디렉토리를 구성하여 사용자에게 AWS Management 콘솔에 대한 SSO 액세스를 제공
• SAML 2.0 호환 O : 자격 증명 브로커 애플리케이션을 생성하여 사용자에게 AWS Management 콘솔에 대한 Single-Sign On(SSO)
액세스를 제공
• 사용자가 이미 인터넷 자격 증명을 보유한 경우
• Login with Amazon, Facebook, Google 또는 OpenID Connect(OIDC) 호환 자격 증명 공급자 등의 인터넷 자격 증명 공급자를 통
해 자신을 식별할 수 있도록 모바일 앱 또는 웹 기반 앱을 만들면, 해당 앱에서 연동을 통해 AWS에 액세스
• https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction_identity-management.html
SAML = Security Assertion Markup Language 2.0
SSO = Single-Sign On
정책
정책
그룹1
IAM – 권한(Permissions) / 정책(Policies)
• 하나의 계정을 관리하려면
정책을 사용하여
해당 계정 내 권한을 정의
• 교차 계정 관리 - AWS Organizations
IAM User(A)
정책
S3 권한
EC2 권한
IAM User(B)
정책
S3 권한
IAM 권한
그룹1
Lambda 권한
Glue 권한
Athena 권한
IAM – 정책
1
2
3
4
5
6
7
8
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "dynamodb:*",
"Resource": "arn:aws:dynamodb:us-east-2:123456789012:table/Books"
}
} cs
• 정책 설명
Dynamo DB에서
us-east-2에서
user(ID=123456789012) 는
Books table에 대한
모든 Action(dynamodb:*)을
허가
IAM – 그룹
IAM – 역할
• 유사 IAM User
• AWS 리소스에 액세스할 수 없는
사용자, 애플리케이션 또는 서비스에 액세스 권한을 위임
• IAM User와 다르게 영구적인 ID가 부여X
• 쉽게 말하자면, IAM Access(Secret) Key 를 줄 수 없는 상황에서 사용함
IAM – 역할
• 사용 시나리오
• 여러 AWS 계정 전반에 걸친 액세스 권한 제공
• 타사 AWS 계정에 액세스 권한 제공
• AWS 서비스에 대한 액세스 권한 제공
• 자격 증명 연동을 통한 액세스 권한 제공
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"dynamodb:BatchGetItem",
"dynamodb:GetItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:BatchWriteItem",
"dynamodb:PutItem",
"dynamodb:UpdateItem"
],
"Resource": "arn:aws:dynamodb:eu-west-1:123456789012:table/SampleTable"
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:eu-west-1:123456789012:*"
},
{
"Effect": "Allow",
"Action": "logs:CreateLogGroup",
"Resource": "*"
}
]
} cs
IAM – ARN(Amazon Resource Name)
• 예제 : arn:aws:s3:::example_bucket/marketing/newproductlaunch/widget/*
• 형식 - arn:partition:service:region:account:resource
• partition : 표준 = aws, 다른 파티션에 있는 경우 파티션은 aws-partitionname(ex: aws-cn)
• service : IAM 리소스의 경우 항상 iam입니다(ex: s3, ec2…)
• region : IAM 리소스의 경우 항상 공백입니다(ex: us-east, us-west)
• account : AWS 계정 ID, 하이픈은 제외(ex: 123456789012)
• resource : 리소스
EC2
EC2(Elastic Compute Cloud)
• AWS에서 제공하는 확장식 컴퓨터(서버)
• 모든 AWS 서비스의 기반이자 기초 서비스
EC2 - 기능
• 인스턴스 : 가상 컴퓨팅 환경
• Amazon 머신 이미지(AMI)
• SW, OS 구성된 템플릿 이미지(ex - vmware 이미지)
• 다양한 인스턴스 Type
• 키 페어(.pem)를 사용하여 인스턴스 로그인 정보 보호
• AWS는 퍼블릭 키를 저장
• 사용자는 개인 키를 안전한 장소에 보관
EC2 - 기능
• 인스턴스 스토어 볼륨
• 임시 데이터를 저장하는 스토리지 볼륨
• 인스턴스 종료 시 삭제됨
• Amazon Elastic Block Store(Amazon EBS)
• 영구 스토리지 볼륨에 데이터 저장
• 자유롭게 인스턴스에서 접근 가능
• 리전(Region) 및 가용 영역(Availability Zone/AZ)
• 리전 : us-east, ap-northeast-2
• 가용 영역 : ap-northeast-2a, ap-northeast-2 b, ap-northeast-2 c
• 보안 그룹
• 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능
EC2 - 기능
• 탄력적 IP 주소(EIP)
• 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
• 태그
• Amazon EC2 리소스에 할당할 수 있는 메타데이터
• 주로 비용 탐색의 편의성을 위해 사용
• Virtual Private Clouds(VPC)
• 가상 네트워크
• 네트워크를 논리적으로 격리
• 격리된 환경 = 테넌트/Tenent
• CIDR(Classless Inter-Domain Routing)
EC2 – 모든 AWS 서비스의 기반?
instance
instance
instance
instance
instance
instance
EC2 – AWS vs 물리 네트워크
EC2 – 인스턴스 타입
• 타입마다 성능 수치가 다름
• 리전마다 사용 가능한 타입이 다름
• 서울은 스펙이 작은 타입 지원이 적음
• 대신 일반적인 스펙은 지원이 활발
• 세대가 증가할수록 비용감소, 성능 항샹
• M4 → M5
• 세대는 바꾸는 것이 무조건 이득(=HA 구성이 필수인 이유)
• 성능적으로는 바꾸는게 이득이지만 선결제로 구입한 경우가 더 가성비가 좋음
• T시리즈는 되도록 사용X = 서비스 장애의 원인
EC2 – T시리즈(Credit)
• 1 Credit = 1분 동안 100%의 사용률로 실행되는 vCPU 하나
• 1 Credit = 2분동안 vCPU 1개 50% 사용
• 1 Credit = 2분동안 vCPU 2개 25% 사용
• 기본 성능만큼의 Credit을 지속적으로 제공
• CPU 사용량 > 제공량 = Credit 잔고 감소(CPU Burst)
• CPU 사용량 < 제공량 = Credit 잔고 증가
• Credit = 0 → 순차적으로 CPU 성능 저하 발생
• Credit 잔고는 최대 한도가 존재(=하루동안 얻을 수 있는 Credit)
EC2 – T시리즈(Credit)
• CPU Steel Time
• 하이퍼바이저가 띄운 프로세스에서 가상CPU가 실제CPU를 기다리는 시간
• 발생한 경우엔 회피하기 위해서는 인스턴스 Stop/Start해서 물리 하드웨어를 변경
• 영구적인 회피방법으로는 Unlimit 기능 사용
• 기준 성능
• 인스턴스가 시간당 획득한 크레딧 수를 CPU 사용률의 백분율로 표시한 것
• vCPU가 2개인 t3.nano 인스턴스는 시간당 6개의 크레딧을 획득하므로 vCPU당 기준 성능이 5%(3/60분)
• EBS Optimized 비활성화
• I/O 성능이 보장이 안됨
• T3에서는 활성화 가능
EC2 – T시리즈 Unlimit
• CPU Steel Time이 존재하면 안되는 인스턴스에 적용
• T3는 자동 활성화
• 쉽게 생각해서 무이자 마이너스 통장
• CPU 성능 저하 없이 CPU Credit을 빌려 쓸 수 있음
• 24시간동안 잔고가 마이너스가 아니라면 추가비용 발생X
EC2 – T시리즈
• 사용하기 좋은 사례
• 메일 서버
• Gateway
• Batch
• 개발/테스트 서버
• 메모리 큐
EC2 – Elastic IP(EIP)
• 동적 클라우드 컴퓨팅을 위해 고안된 public, static IPv4 주소
• EIP는 AWS 계정과 연결
• IPv6는 지원X
• 리전당 최대 5개 지원(support를 통해 추가 요청 가능)
• 사용 예시
• 인스턴스 장애 시 주소를 다른 인스턴스로 다시 매핑하는 기능이 필요할 때는 EIP 주소 사용
(다른 모든 노드 간 통신에는 DNS 호스트네임을 사용)
• intel meltdown 사태로 인해 전체적인 인스턴스 교체
• 메일, Gateway 서버처럼 외부에서 접근하거나 타사에 IP가 등록 되어야 할때 사용
• Domain은 없지만 다른 서비스에 OAuth 로그인 제공
• 스팸메일 방지를 위해서 kisa에 화이트 리스트 등록시 IP 필요
EC2 – VPC(Virtual Private Cloud)
• 사용자의 AWS 계정 전용 가상 네트워크
• 오리지널 버전은 EC2-Classic 플랫폼
• AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리
• IP 주소 범위, VPC 범위, 서브넷, 보안 그룹을 설정하고
라우팅 테이블을 구성
• 여기서의 서브넷(Subnet)은 VPC의 IP 주소 범위
• 각 서브넷의 AWS리소스를 보호하기 위해
보안 그룹 및 네트워크 액세스 제어 목록(ACL)을 비롯한 여러 보안 계층을 사용
• 격리된 환경 = 테넌트/Tenent
EC2 – VPC 장점
• 인스턴스의 시작/중지에 상관 없이 유지되는 고정 IPv4 주소 할당
• IPv6 CIDR 블록을 VPC에 연결하고 IPv6 주소를 인스턴스에 할당하는 옵션 사용
• 인스턴스에 여러개의 IP 주소 할당이 가능
• 네트워크 인터페이스를 정의하고,
하나 혹은 그 이상의 네트워크 인터페이스를 VPC 인스턴스에 설치 가능합니다.
• 인스턴스의 인바운드 트래픽 제어(Ingress filtering),
아웃바운드 트래픽 제어(Egress filtering) 가능
• 네트워크 액세스 제어 리스트(ACL)를 통해,
인스턴스에 대한 액세스 보안이 한단계 더 강화
• 단일 테넌트 하드웨어에서 인스턴스 실행
EC2 – VPC Default
• 기본으로 생성된 VPC
• 인터넷 Gateway
• Private IP
• Public IP
• 기본 서브넷(=Public)
• 인스턴스간 통신 가능
EC2 – VPC Custom
• 직접 생성한 VPC
• 인터넷 Gateway X
• 기본적으로 Public IP X
• 기본 서브넷(=Public)
• 인스턴스간 통신 가능
EC2 – VPC Custom 2
• 직접 생성한 인터넷 가능 VPC
• 인터넷 Gateway 추가
• EC2 인스턴스에 EIP 설정
• 필요한 사례
• AWS Lambda에서
외부 Redis에 연결해야되는 경우
• 별도의 서버 모니터링 서비스에
EC2 인스턴스를 등록할때
AWS-IAM,S3,EC2
S3
S3(Simple Storage Service)
• 확장성과 데이터 가용성 및 보안과 성능을 제공하는
객체 스토리지 서비스
• Storage : Object – CRUD
• Update = Overwrite(실제론 X)
A A’
Router
A A’
Router
S3 – Example
S3 - ACL
• 객체, bucket,
folder(prefix)별로
유저, 그룹, guest별로
접근 권한 부여 가능
S3 – 활용?
• EFS(Elastic File System) – EC2 Instance Store/EBS(Elastic Block Store)
• Data Export/Import – DMS(Database Migration Service), CloudWatch....
• Athena, Glue, Redshift – Data Worehouse
• CloudFront – Streaming, Image
(CDN - Content Delivery/Distribution Network)
• Static Web Page
• Network Drive
• Storage Manage : 압축, 생명주기, versioning
S3 – 개인적인 활용 사례
• 문제
• 회원 가입시 학생증 사진으로 학교 인증
• 가입 인증 처리 후 삭제가 필요
• 인증 담당자의 잦은 실수
• 스토리지 비용 누적
• 해결
• 15일 뒤에 삭제되는 Life cycle을 설정한 버킷 생성(휴지통)
• 인증처리가 완료되면 휴지통 버킷으로 이동
S3 – 단점
• 버킷의 prefix당 초당 횟수 제한이 있음
• PUT/COPY/POST/DELETE = 3500개
• GET/HEAD = 5500개
• 버킷의 최대수 = 100/1000(제한 요청시 가능한 최대)
• 내부적으로 성능이 Scaling되지만
수치적으로 정확히 알 수 없음
→ 버킷/prefix 설계 중요
Limit을 초과 가능성?
하나의 버킷(prefix)에 대해서
여러 서비스가 동작할 수 있기 때문에 어느정도 고려 필요
CloudFront
유저/개발자API Gateway
Batch
S3 – 설계?
• prefix는 다양하게 – name limit = 1024 bytes
• X – user/123_profile.jpg, 123_profile_thumbnail.jpg
• O - user/[user id]/profile, thumbnails
• 지연시간에 민감
• 최대한 AWS SDK를 사용
• 하나의 object, folder(prefix)에 요청이 몰리지 않게 Balancing
slack/emoji
S3 – 설계?
• 재처리는 필요가 아닌 필수!
• 요청이 몰리면 자동으로 Scaling되지만
Scaling 완료될 때까지 방법이 없다...... = 503 Server Error!
• 클라이언트에서 재시도 처리 필수(백오프 방식)
- retry interval = 1차 2초, 2차 4초, 3차 6초
- Scaling이 완료되어 성공할 때까지 재시도
S3 – 설계?
• 지연 시간이 매우 짧은(ms)
작은 요청(512KB 미만)은 적극적으로 재시도!
• 멀티파트 업로드 파일(128MB 이상)의 경우,
병목이 걸린 요청들 중에서 가장 느린 일부만(1~5%)
재시도 하는 것이 좋음
• 처리량 자체가 매우 높은 경우,
병렬로 GET/PUT하는 애플리케이션을 사용
(Java SDK - S3 Transfer Manager)
S3 – IP문제(Network)
• 느린 이유가 IP 대역문제일때도 있음
• xxx.100~105에 put 요청 중
• 106~110이 새로 Scaling되어 새로운 HTTP Connection 사용 가능
• 이미 진행 중인 요청들은 새로운 커넥션을 쓰지 않아서 요청이 밀림
• 503 Server Error & 재처리의 중요성!
• 주로 IP 캐싱 문제가 많음(로드 밸런싱 X, 단일 IP 사용)
• S3와의 통신에 쓰이는 IP 주소를 확인할 필요가 있음(netstat)
S3 – IP문제(Program Language)
• 주로 Java, PHP에서 많이 발생하는 문제
• Java : JVM에서 DNS 조회를 영구 캐시함(InetAddress)
• PHP : PHP VM이 재시작될 떄까지 DNS 조회를 캐싱(getHostByName)
• Python, Node.js에서는 자주 발생하지 않는 이유?
- DNS Caching X, App 수준에서 따로 제어
- 서비스가 죽어서 재시작되어 캐시가 삭제 or 갱신
- 가끔 심심할때 인스턴스를 죽여줘야하는 이유
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/DNSConsiderations.html
S3 – Glacier
• 데이터 보관 및 백업을 목적으로
보안 기능과 함께 내구성 있는 저장 공간을 제공하는 매우 저렴한 스토리지 서비스
• 주로 Life cycle, 백업에 사용
• 장점 : 안정적이고 싸다(비용은 1/3, 안정성은 S3와 동일)
• 단점 – 마음대로 사용하기 어려움(자유도=비용 청구)
• 검색 비용이 매우 비싸다(GB당 0.01 USD)
• 3개월 이전에 삭제시 비용발생, 이후에는 무료
• 업로드, 검색에 대한 UI 제공X
• 데이터 다운로드시 3~5시간 소요

More Related Content

PPTX
AWS RDS, DYNAMO
PPTX
AWS lambda, step function, cloud watch
PDF
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
PDF
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
PDF
AWS re:Invent 2016 참가자를 위한 강의 세션 가이드
PDF
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
PDF
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
PDF
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
AWS RDS, DYNAMO
AWS lambda, step function, cloud watch
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS re:Invent 2016 참가자를 위한 강의 세션 가이드
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)

What's hot (20)

PDF
AWS 시작하기 및 Amazon S3 살펴보기 (윤석찬) - AWS 웨비나 시리즈
PDF
AWS DirectConnect 구성 가이드 (김용우) - 파트너 웨비나 시리즈
PDF
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
PDF
Amazon RDS 살펴보기 (김용우) - AWS 웨비나 시리즈
PDF
Amazon RDS 서비스 활용하기 - 신규 기능 중심으로 (윤석찬) :: AWS 월간 웨비나
PDF
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
PDF
AWS CLOUD 2017 - AWS 가상 컴퓨팅 분야 혁신 서비스 (박철수 솔루션즈 아키텍트)
PDF
Amazon Aurora 100% 활용하기
PDF
AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트 :: IoT Convergence Conference 2015
PDF
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
PDF
비디가 제시하는 AWS Migration 주요 factor - BD 홍성준 이사:: AWS Cloud Track 1 Intro
PDF
AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...
PDF
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
PDF
더 높은 초당 패킷 처리 수와 더 낮은 지연 시간을 달성하기 위한 AWS 네트워킹 옵션 (이정훈 솔루션즈 아키텍트, AWS) :: Gami...
PPT
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
PDF
모바일을 위한 (AWS) 클라우드 기술 동향
PDF
AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015
PDF
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
PDF
AWS Partner Techshift - B2B IT SaaS 기업은 왜 AWS와 함께 하는가? (샌드버드 윤진현 팀장)
PDF
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
AWS 시작하기 및 Amazon S3 살펴보기 (윤석찬) - AWS 웨비나 시리즈
AWS DirectConnect 구성 가이드 (김용우) - 파트너 웨비나 시리즈
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon RDS 살펴보기 (김용우) - AWS 웨비나 시리즈
Amazon RDS 서비스 활용하기 - 신규 기능 중심으로 (윤석찬) :: AWS 월간 웨비나
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS CLOUD 2017 - AWS 가상 컴퓨팅 분야 혁신 서비스 (박철수 솔루션즈 아키텍트)
Amazon Aurora 100% 활용하기
AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트 :: IoT Convergence Conference 2015
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
비디가 제시하는 AWS Migration 주요 factor - BD 홍성준 이사:: AWS Cloud Track 1 Intro
AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
더 높은 초당 패킷 처리 수와 더 낮은 지연 시간을 달성하기 위한 AWS 네트워킹 옵션 (이정훈 솔루션즈 아키텍트, AWS) :: Gami...
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
모바일을 위한 (AWS) 클라우드 기술 동향
AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
AWS Partner Techshift - B2B IT SaaS 기업은 왜 AWS와 함께 하는가? (샌드버드 윤진현 팀장)
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
Ad

Similar to AWS-IAM,S3,EC2 (20)

PDF
강의 2: AWS 핵심 서비스:: AWSome Day Online Conference
PDF
강의 2 - AWS 핵심 서비스 (조재구 테크니컬 트레이너, AWS) :: AWSome Day 온라인 컨퍼런스 2018
DOCX
아마존 Aws 서비스_연구
PDF
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
PDF
[AWSome Day온라인 컨퍼런스] 강의 2: 클라우드 시작하기 - 장기웅, AWS 테크니컬 트레이너
PDF
2017 AWSome Day Online Conference - 강의 3. AWS 보안 및 AWS Identity and Access Ma...
PDF
EasyCloud 고군분투 개발 이야기::이준희::AWS Summit Seoul 2018
PDF
AWS Finance Symposium_천만 고객을 위한 AWS 클라우드 아키텍쳐 확장하기
PDF
AWS Builders Online Series | AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저
PDF
VPC를 위한 Hybrid 클라우드 보안 :: 김민석 :: AWS Summit Seoul 2016
PDF
AWS 클라우드 보안 및 규정 준수 소개 (박철수) - AWS 웨비나 시리즈
PDF
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018
PDF
클라우드 시작하기 - 장기웅, AWS 테크니컬 트레이너 :: AWSome Day 온라인 컨퍼런스
PDF
AWS 클라우드 이해하기-사례 중심 (정민정) - AWS 웨비나 시리즈
PDF
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
PDF
AWS Builders Online Series | EC2와 Lambda로 AWS 시작하기 - 조용진, AWS 솔루션즈 아키텍트
PDF
AWS의 다양한 Compute 서비스(EC2, Lambda, ECS, Batch, Elastic Beanstalk)의 특징 이해하기 - 김...
PDF
[AWS & 베스핀글로벌, 바이오∙헬스케어∙제약사를 위한 세미나] AWS 101, Cloud Computing is New Normal
PDF
강의 3: AWS 보안:: AWSome Day Online Conference
PDF
AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저
강의 2: AWS 핵심 서비스:: AWSome Day Online Conference
강의 2 - AWS 핵심 서비스 (조재구 테크니컬 트레이너, AWS) :: AWSome Day 온라인 컨퍼런스 2018
아마존 Aws 서비스_연구
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
[AWSome Day온라인 컨퍼런스] 강의 2: 클라우드 시작하기 - 장기웅, AWS 테크니컬 트레이너
2017 AWSome Day Online Conference - 강의 3. AWS 보안 및 AWS Identity and Access Ma...
EasyCloud 고군분투 개발 이야기::이준희::AWS Summit Seoul 2018
AWS Finance Symposium_천만 고객을 위한 AWS 클라우드 아키텍쳐 확장하기
AWS Builders Online Series | AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저
VPC를 위한 Hybrid 클라우드 보안 :: 김민석 :: AWS Summit Seoul 2016
AWS 클라우드 보안 및 규정 준수 소개 (박철수) - AWS 웨비나 시리즈
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018
클라우드 시작하기 - 장기웅, AWS 테크니컬 트레이너 :: AWSome Day 온라인 컨퍼런스
AWS 클라우드 이해하기-사례 중심 (정민정) - AWS 웨비나 시리즈
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
AWS Builders Online Series | EC2와 Lambda로 AWS 시작하기 - 조용진, AWS 솔루션즈 아키텍트
AWS의 다양한 Compute 서비스(EC2, Lambda, ECS, Batch, Elastic Beanstalk)의 특징 이해하기 - 김...
[AWS & 베스핀글로벌, 바이오∙헬스케어∙제약사를 위한 세미나] AWS 101, Cloud Computing is New Normal
강의 3: AWS 보안:: AWSome Day Online Conference
AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저
Ad

More from Han Sung Kim (20)

PPTX
파이썬 스터디 2주차
PPTX
AWS 약쟁이
PPTX
구름 어디까지 써봤니
PPTX
블록체인
PPTX
2017 새싹교실 1교시
PPTX
Django로 배우는 쉽고 빠른 웹개발 study 자료
PPTX
2016년 유니톤 언더라인 발표자료
PPTX
OMS - Start up
PPTX
Web is 뭔들
PPTX
외주 - 시작은 노예였으나 끝은 그래도 노예이니라
PPTX
모바일 해커톤 사전교육 4일차
PPTX
모바일 해커톤 사전교육 3일차
PPTX
모바일 해커톤 사전교육 2일차
PPTX
모바일 해커톤 사전교육 1일차
PPTX
Uching - 2016 한양대 스마트 창작터
PPTX
I see u
PPTX
라인전
PPTX
심리전
PPTX
코딩에는 좋은 노트북이 필요 없다
PPTX
DB Project - Gmarket
파이썬 스터디 2주차
AWS 약쟁이
구름 어디까지 써봤니
블록체인
2017 새싹교실 1교시
Django로 배우는 쉽고 빠른 웹개발 study 자료
2016년 유니톤 언더라인 발표자료
OMS - Start up
Web is 뭔들
외주 - 시작은 노예였으나 끝은 그래도 노예이니라
모바일 해커톤 사전교육 4일차
모바일 해커톤 사전교육 3일차
모바일 해커톤 사전교육 2일차
모바일 해커톤 사전교육 1일차
Uching - 2016 한양대 스마트 창작터
I see u
라인전
심리전
코딩에는 좋은 노트북이 필요 없다
DB Project - Gmarket

AWS-IAM,S3,EC2

  • 3. IAM
  • 4. IAM(Identity and Access Management) • AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 서비스 • 리눅스 권한과 유사 • root • user • service
  • 5. IAM – 용어 정리 • 리소스(Resource) • IAM에 저장된 사용자, 역할, 그룹 및 정책 객체 • IAM에서 리소스를 추가, 편집 및 제거 가능 • ID • 식별 및 그룹화에 사용되는 IAM 리소스 객체 • 사용자, 그룹 및 역할 포함
  • 6. IAM – 용어 정리 • 개체(Entities) - 인증에 사용하는 IAM 리소스 객체입니다 • 역할 : 웹 자격 증명 또는 SAML을 통해 페더레이션된 사용자는 물론 사용자 또는 다른 계정의 IAM 사용자 • 사용자 : IAM 사용자(root, user) • 보안주체(Principal) • 개체를 사용하여 AWS에 로그인하고 요청하는 사람 또는 애플리케이션입니다.
  • 7. IAM – 용어 정리 • 보안주체 • AWS 리소스에 대한 작업을 요청할 수 있는 사람 또는 애플리케이션 • 필수 - 보안주체로 root를 사용X • IAM 사용자(user) • 별개의 계정이 아니라 root 계정 내의 사용자 • IAM User != 사람(일부는 어플리케이션)
  • 8. IAM – 기존 사용자 연동 • 사용자가 이미 기업 디렉토리에 자격 증명을 보유한 경우 • SAML 2.0 호환 X : 기업 디렉토리를 구성하여 사용자에게 AWS Management 콘솔에 대한 SSO 액세스를 제공 • SAML 2.0 호환 O : 자격 증명 브로커 애플리케이션을 생성하여 사용자에게 AWS Management 콘솔에 대한 Single-Sign On(SSO) 액세스를 제공 • 사용자가 이미 인터넷 자격 증명을 보유한 경우 • Login with Amazon, Facebook, Google 또는 OpenID Connect(OIDC) 호환 자격 증명 공급자 등의 인터넷 자격 증명 공급자를 통 해 자신을 식별할 수 있도록 모바일 앱 또는 웹 기반 앱을 만들면, 해당 앱에서 연동을 통해 AWS에 액세스 • https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction_identity-management.html SAML = Security Assertion Markup Language 2.0 SSO = Single-Sign On
  • 9. 정책 정책 그룹1 IAM – 권한(Permissions) / 정책(Policies) • 하나의 계정을 관리하려면 정책을 사용하여 해당 계정 내 권한을 정의 • 교차 계정 관리 - AWS Organizations IAM User(A) 정책 S3 권한 EC2 권한 IAM User(B) 정책 S3 권한 IAM 권한 그룹1 Lambda 권한 Glue 권한 Athena 권한
  • 10. IAM – 정책 1 2 3 4 5 6 7 8 { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-2:123456789012:table/Books" } } cs • 정책 설명 Dynamo DB에서 us-east-2에서 user(ID=123456789012) 는 Books table에 대한 모든 Action(dynamodb:*)을 허가
  • 12. IAM – 역할 • 유사 IAM User • AWS 리소스에 액세스할 수 없는 사용자, 애플리케이션 또는 서비스에 액세스 권한을 위임 • IAM User와 다르게 영구적인 ID가 부여X • 쉽게 말하자면, IAM Access(Secret) Key 를 줄 수 없는 상황에서 사용함
  • 13. IAM – 역할 • 사용 시나리오 • 여러 AWS 계정 전반에 걸친 액세스 권한 제공 • 타사 AWS 계정에 액세스 권한 제공 • AWS 서비스에 대한 액세스 권한 제공 • 자격 증명 연동을 통한 액세스 권한 제공 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "dynamodb:BatchGetItem", "dynamodb:GetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:BatchWriteItem", "dynamodb:PutItem", "dynamodb:UpdateItem" ], "Resource": "arn:aws:dynamodb:eu-west-1:123456789012:table/SampleTable" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:eu-west-1:123456789012:*" }, { "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "*" } ] } cs
  • 14. IAM – ARN(Amazon Resource Name) • 예제 : arn:aws:s3:::example_bucket/marketing/newproductlaunch/widget/* • 형식 - arn:partition:service:region:account:resource • partition : 표준 = aws, 다른 파티션에 있는 경우 파티션은 aws-partitionname(ex: aws-cn) • service : IAM 리소스의 경우 항상 iam입니다(ex: s3, ec2…) • region : IAM 리소스의 경우 항상 공백입니다(ex: us-east, us-west) • account : AWS 계정 ID, 하이픈은 제외(ex: 123456789012) • resource : 리소스
  • 15. EC2
  • 16. EC2(Elastic Compute Cloud) • AWS에서 제공하는 확장식 컴퓨터(서버) • 모든 AWS 서비스의 기반이자 기초 서비스
  • 17. EC2 - 기능 • 인스턴스 : 가상 컴퓨팅 환경 • Amazon 머신 이미지(AMI) • SW, OS 구성된 템플릿 이미지(ex - vmware 이미지) • 다양한 인스턴스 Type • 키 페어(.pem)를 사용하여 인스턴스 로그인 정보 보호 • AWS는 퍼블릭 키를 저장 • 사용자는 개인 키를 안전한 장소에 보관
  • 18. EC2 - 기능 • 인스턴스 스토어 볼륨 • 임시 데이터를 저장하는 스토리지 볼륨 • 인스턴스 종료 시 삭제됨 • Amazon Elastic Block Store(Amazon EBS) • 영구 스토리지 볼륨에 데이터 저장 • 자유롭게 인스턴스에서 접근 가능 • 리전(Region) 및 가용 영역(Availability Zone/AZ) • 리전 : us-east, ap-northeast-2 • 가용 영역 : ap-northeast-2a, ap-northeast-2 b, ap-northeast-2 c • 보안 그룹 • 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능
  • 19. EC2 - 기능 • 탄력적 IP 주소(EIP) • 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소 • 태그 • Amazon EC2 리소스에 할당할 수 있는 메타데이터 • 주로 비용 탐색의 편의성을 위해 사용 • Virtual Private Clouds(VPC) • 가상 네트워크 • 네트워크를 논리적으로 격리 • 격리된 환경 = 테넌트/Tenent • CIDR(Classless Inter-Domain Routing)
  • 20. EC2 – 모든 AWS 서비스의 기반? instance instance instance instance instance instance
  • 21. EC2 – AWS vs 물리 네트워크
  • 22. EC2 – 인스턴스 타입 • 타입마다 성능 수치가 다름 • 리전마다 사용 가능한 타입이 다름 • 서울은 스펙이 작은 타입 지원이 적음 • 대신 일반적인 스펙은 지원이 활발 • 세대가 증가할수록 비용감소, 성능 항샹 • M4 → M5 • 세대는 바꾸는 것이 무조건 이득(=HA 구성이 필수인 이유) • 성능적으로는 바꾸는게 이득이지만 선결제로 구입한 경우가 더 가성비가 좋음 • T시리즈는 되도록 사용X = 서비스 장애의 원인
  • 23. EC2 – T시리즈(Credit) • 1 Credit = 1분 동안 100%의 사용률로 실행되는 vCPU 하나 • 1 Credit = 2분동안 vCPU 1개 50% 사용 • 1 Credit = 2분동안 vCPU 2개 25% 사용 • 기본 성능만큼의 Credit을 지속적으로 제공 • CPU 사용량 > 제공량 = Credit 잔고 감소(CPU Burst) • CPU 사용량 < 제공량 = Credit 잔고 증가 • Credit = 0 → 순차적으로 CPU 성능 저하 발생 • Credit 잔고는 최대 한도가 존재(=하루동안 얻을 수 있는 Credit)
  • 24. EC2 – T시리즈(Credit) • CPU Steel Time • 하이퍼바이저가 띄운 프로세스에서 가상CPU가 실제CPU를 기다리는 시간 • 발생한 경우엔 회피하기 위해서는 인스턴스 Stop/Start해서 물리 하드웨어를 변경 • 영구적인 회피방법으로는 Unlimit 기능 사용 • 기준 성능 • 인스턴스가 시간당 획득한 크레딧 수를 CPU 사용률의 백분율로 표시한 것 • vCPU가 2개인 t3.nano 인스턴스는 시간당 6개의 크레딧을 획득하므로 vCPU당 기준 성능이 5%(3/60분) • EBS Optimized 비활성화 • I/O 성능이 보장이 안됨 • T3에서는 활성화 가능
  • 25. EC2 – T시리즈 Unlimit • CPU Steel Time이 존재하면 안되는 인스턴스에 적용 • T3는 자동 활성화 • 쉽게 생각해서 무이자 마이너스 통장 • CPU 성능 저하 없이 CPU Credit을 빌려 쓸 수 있음 • 24시간동안 잔고가 마이너스가 아니라면 추가비용 발생X
  • 26. EC2 – T시리즈 • 사용하기 좋은 사례 • 메일 서버 • Gateway • Batch • 개발/테스트 서버 • 메모리 큐
  • 27. EC2 – Elastic IP(EIP) • 동적 클라우드 컴퓨팅을 위해 고안된 public, static IPv4 주소 • EIP는 AWS 계정과 연결 • IPv6는 지원X • 리전당 최대 5개 지원(support를 통해 추가 요청 가능) • 사용 예시 • 인스턴스 장애 시 주소를 다른 인스턴스로 다시 매핑하는 기능이 필요할 때는 EIP 주소 사용 (다른 모든 노드 간 통신에는 DNS 호스트네임을 사용) • intel meltdown 사태로 인해 전체적인 인스턴스 교체 • 메일, Gateway 서버처럼 외부에서 접근하거나 타사에 IP가 등록 되어야 할때 사용 • Domain은 없지만 다른 서비스에 OAuth 로그인 제공 • 스팸메일 방지를 위해서 kisa에 화이트 리스트 등록시 IP 필요
  • 28. EC2 – VPC(Virtual Private Cloud) • 사용자의 AWS 계정 전용 가상 네트워크 • 오리지널 버전은 EC2-Classic 플랫폼 • AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리 • IP 주소 범위, VPC 범위, 서브넷, 보안 그룹을 설정하고 라우팅 테이블을 구성 • 여기서의 서브넷(Subnet)은 VPC의 IP 주소 범위 • 각 서브넷의 AWS리소스를 보호하기 위해 보안 그룹 및 네트워크 액세스 제어 목록(ACL)을 비롯한 여러 보안 계층을 사용 • 격리된 환경 = 테넌트/Tenent
  • 29. EC2 – VPC 장점 • 인스턴스의 시작/중지에 상관 없이 유지되는 고정 IPv4 주소 할당 • IPv6 CIDR 블록을 VPC에 연결하고 IPv6 주소를 인스턴스에 할당하는 옵션 사용 • 인스턴스에 여러개의 IP 주소 할당이 가능 • 네트워크 인터페이스를 정의하고, 하나 혹은 그 이상의 네트워크 인터페이스를 VPC 인스턴스에 설치 가능합니다. • 인스턴스의 인바운드 트래픽 제어(Ingress filtering), 아웃바운드 트래픽 제어(Egress filtering) 가능 • 네트워크 액세스 제어 리스트(ACL)를 통해, 인스턴스에 대한 액세스 보안이 한단계 더 강화 • 단일 테넌트 하드웨어에서 인스턴스 실행
  • 30. EC2 – VPC Default • 기본으로 생성된 VPC • 인터넷 Gateway • Private IP • Public IP • 기본 서브넷(=Public) • 인스턴스간 통신 가능
  • 31. EC2 – VPC Custom • 직접 생성한 VPC • 인터넷 Gateway X • 기본적으로 Public IP X • 기본 서브넷(=Public) • 인스턴스간 통신 가능
  • 32. EC2 – VPC Custom 2 • 직접 생성한 인터넷 가능 VPC • 인터넷 Gateway 추가 • EC2 인스턴스에 EIP 설정 • 필요한 사례 • AWS Lambda에서 외부 Redis에 연결해야되는 경우 • 별도의 서버 모니터링 서비스에 EC2 인스턴스를 등록할때
  • 34. S3
  • 35. S3(Simple Storage Service) • 확장성과 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스 • Storage : Object – CRUD • Update = Overwrite(실제론 X) A A’ Router A A’ Router
  • 37. S3 - ACL • 객체, bucket, folder(prefix)별로 유저, 그룹, guest별로 접근 권한 부여 가능
  • 38. S3 – 활용? • EFS(Elastic File System) – EC2 Instance Store/EBS(Elastic Block Store) • Data Export/Import – DMS(Database Migration Service), CloudWatch.... • Athena, Glue, Redshift – Data Worehouse • CloudFront – Streaming, Image (CDN - Content Delivery/Distribution Network) • Static Web Page • Network Drive • Storage Manage : 압축, 생명주기, versioning
  • 39. S3 – 개인적인 활용 사례 • 문제 • 회원 가입시 학생증 사진으로 학교 인증 • 가입 인증 처리 후 삭제가 필요 • 인증 담당자의 잦은 실수 • 스토리지 비용 누적 • 해결 • 15일 뒤에 삭제되는 Life cycle을 설정한 버킷 생성(휴지통) • 인증처리가 완료되면 휴지통 버킷으로 이동
  • 40. S3 – 단점 • 버킷의 prefix당 초당 횟수 제한이 있음 • PUT/COPY/POST/DELETE = 3500개 • GET/HEAD = 5500개 • 버킷의 최대수 = 100/1000(제한 요청시 가능한 최대) • 내부적으로 성능이 Scaling되지만 수치적으로 정확히 알 수 없음 → 버킷/prefix 설계 중요
  • 41. Limit을 초과 가능성? 하나의 버킷(prefix)에 대해서 여러 서비스가 동작할 수 있기 때문에 어느정도 고려 필요 CloudFront 유저/개발자API Gateway Batch
  • 42. S3 – 설계? • prefix는 다양하게 – name limit = 1024 bytes • X – user/123_profile.jpg, 123_profile_thumbnail.jpg • O - user/[user id]/profile, thumbnails • 지연시간에 민감 • 최대한 AWS SDK를 사용 • 하나의 object, folder(prefix)에 요청이 몰리지 않게 Balancing slack/emoji
  • 43. S3 – 설계? • 재처리는 필요가 아닌 필수! • 요청이 몰리면 자동으로 Scaling되지만 Scaling 완료될 때까지 방법이 없다...... = 503 Server Error! • 클라이언트에서 재시도 처리 필수(백오프 방식) - retry interval = 1차 2초, 2차 4초, 3차 6초 - Scaling이 완료되어 성공할 때까지 재시도
  • 44. S3 – 설계? • 지연 시간이 매우 짧은(ms) 작은 요청(512KB 미만)은 적극적으로 재시도! • 멀티파트 업로드 파일(128MB 이상)의 경우, 병목이 걸린 요청들 중에서 가장 느린 일부만(1~5%) 재시도 하는 것이 좋음 • 처리량 자체가 매우 높은 경우, 병렬로 GET/PUT하는 애플리케이션을 사용 (Java SDK - S3 Transfer Manager)
  • 45. S3 – IP문제(Network) • 느린 이유가 IP 대역문제일때도 있음 • xxx.100~105에 put 요청 중 • 106~110이 새로 Scaling되어 새로운 HTTP Connection 사용 가능 • 이미 진행 중인 요청들은 새로운 커넥션을 쓰지 않아서 요청이 밀림 • 503 Server Error & 재처리의 중요성! • 주로 IP 캐싱 문제가 많음(로드 밸런싱 X, 단일 IP 사용) • S3와의 통신에 쓰이는 IP 주소를 확인할 필요가 있음(netstat)
  • 46. S3 – IP문제(Program Language) • 주로 Java, PHP에서 많이 발생하는 문제 • Java : JVM에서 DNS 조회를 영구 캐시함(InetAddress) • PHP : PHP VM이 재시작될 떄까지 DNS 조회를 캐싱(getHostByName) • Python, Node.js에서는 자주 발생하지 않는 이유? - DNS Caching X, App 수준에서 따로 제어 - 서비스가 죽어서 재시작되어 캐시가 삭제 or 갱신 - 가끔 심심할때 인스턴스를 죽여줘야하는 이유 https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/DNSConsiderations.html
  • 47. S3 – Glacier • 데이터 보관 및 백업을 목적으로 보안 기능과 함께 내구성 있는 저장 공간을 제공하는 매우 저렴한 스토리지 서비스 • 주로 Life cycle, 백업에 사용 • 장점 : 안정적이고 싸다(비용은 1/3, 안정성은 S3와 동일) • 단점 – 마음대로 사용하기 어려움(자유도=비용 청구) • 검색 비용이 매우 비싸다(GB당 0.01 USD) • 3개월 이전에 삭제시 비용발생, 이후에는 무료 • 업로드, 검색에 대한 UI 제공X • 데이터 다운로드시 3~5시간 소요