본문 바로가기

Storage&CDN

(24)
AWS WAF 로그 수집 방법 AWS WAF 란 무엇인가? AWS WAF(Web Application Firewall)는 Application 가용성에 영향을 미치거나 보안을 손상시키거나 과도한 리소스를 사용할 수 있는 일반적인 웹 악용으로부터 웹 응용 프로그램을 보호하는 데 도움이 되는 보안 서비스입니다. AWS WAF는 SQL 주입, 사이트 간 스크립팅(XSS) 및 요청 위조(CSRF)와 같은 가장 일반적인 웹 취약성에 대한 보호 기능을 제공합니다. AWS WAF를 사용하여 Amazon CloudFront 배포, Amazon API Gateway API 또는 애플리케이션 로드 밸런서로 전달되는 HTTP 및 HTTPS 요청을 모니터링할 수 있습니다. 헤더, 쿼리 문자열 및 기타 요청 매개 변수의 값과 같은 지정된 조건에 따라 요청을..
Amazon CloudFront 글로벌 서비스 활용 국가별 서비스 시 CDN을 사용하는 여러 방법이 존재할 수 있다. 뭐 GeoIP를 활용할 수도 있고, DNS 분기를 이용할 수도 있고.... 그러나 가장 간단하게 사용할 수 있는 방법은 CloudFront의 Viewer-Country 헤더를 사용하는 것이다. 참고로 레이턴시가 중요하지 않은 서비스는 한국/북미/유럽에서 App 서버 구성 + CDN정도로 원활히 운영할 수 있다. https://aws.amazon.com/ko/about-aws/whats-new/2020/07/cloudfront-geolocation-headers/ Amazon CloudFront, 세분화된 지리 기반 타겟팅을 위한 추가 지리적 위치 헤더 추가 Amazon CloudFront에서 새 캐시 및 원본 요청 정책에 사용할 수 있는 ..
AWS Global Accelerator 성능 테스트 일단 AWS Global Accelerator 설명은 아래 Docuemnt와 영상 참고 AWS Global Accelerator FAQ – Amazon Web Services aws.amazon.com https://youtu.be/2Dk-HHDV8f4 바쁜 사람은 아래 장표만 보면 된다. 영상에서는 성능 테스트 시나이로는 US-EAST-1 리전의 원본에서 5MB 파일을 다운로드 받는 것이다. 일단 캐싱모드는 당연히 빠를테고, CF 프록시 구성과 GA 모두 Origin 에서 바로 다운로드 받는 거보다 빠른 결과를 보여줬다. 비슷한 구성으로 성능 측정을 진행해봤다. 원본은 송도 IDC에 존재하는 서버, 테스트 파일은 약 2MB, 타겟은 북미(LA) / 캐치포인트 사용 GA의 엔드포인트는 서울 리전 구성은 ..
Amazon S3 임시 자격 증명(assume_role), Bucket Prefix 별 오브젝트 사이즈 체크 import boto3 from boto3.session import Session def assume_role(): client = boto3.client('sts') account_id = client.get_caller_identity()["Account"] IAM_ROLE_ARN = 'arn:aws:iam::58xxx119:role/xxRole' IAM_ROLE_SESSION_NAME = 'xxRole' REGION_NAME = 'ap-northeast-1' response = client.assume_role( RoleArn=IAM_ROLE_ARN, RoleSessionName=IAM_ROLE_SESSION_NAME ) session = Session(aws_access_key_id=respon..
Amazon S3 Intelligent-Tiering 30초 정리 S3 Intelligent-Tiering 기능은 2년 전 2018년 12월에 출시되었다. Amazon S3 지능적 티어 출시 – 자동 비용 최적화 스토리지 클래스 (서울 리전 포함) | Amazon Web Service Amazon Simple Storage Service(S3)는 약 12년 6개월 동안 사용되면서 수조에 달하는 객체를 저장하고 이러한 객체에 대한 초당 수백만 건의 요청을 처리하고 있습니다. AWS 고객은 S3를 통해 백업 및 복구, aws.amazon.com 이제 와서 포스팅을 하는 이유는 한 달 전 출시된 아카이브 액세스 기능 때문이다. Amazon S3 Intelligent-Tiering, 아카이브 액세스 계층 추가 | Amazon Web Services AWS는 2년 전에 S3 I..
S3 sync shell(IDC -> S3 데이터 실시간 복제) AWS CLI를 통해 기존 IDC 원본 데이터를 S3로 이관한다. (CLI 설치는 아래 참고) https://aws.amazon.com/ko/cli/ AWS에는 DataSync, Snowball 등 데이터 마이그레이션 서비스들도 있다. 그러나 DataSync의 경우 기존 IDC가 VM 환경이라는 제약이 있고, Snowball은 흠좀무... 수 TB 정도의 데이터 이관을 위해서 언제 또 쓸 지도 모르는 AWS 서비스를 학습할 시간도 아깝고... 무식하지만 심플하게 AWS S3 sync로도 충분하다고 생각한다. 그러나 AWS CLI에는 Rsync가 없기 때문에, 프로세스 확인 후 aws s3 sync를 연속적으로 실행해주는 방식으로 진행했다. [Linux(CentOS 6.X)] sync 프로세스가 쓰레드를 ..
AWS S3 Events(SNS) or CloudWatch Event Trigger(S3 -> SNS) S3에 오브젝트 업로드 시 SNS로 받은 후 HTTP(S) 트리거 시에 "Permissions on the destination topic do not allow S3 to publish notifications from this bucket" 같은 에러 발생. 이는 SNS의 Policy 문제로 SNS의 Access policy - optional에 아래와 같은 Policy를 넣어줘야 함. CloudWatch Event Trigger에서도 S3가 Source일 경우 동일하게 동작하지 않음. { "Version": "2008-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Princi..
AWS WAF Rate-based Rules 사용하기(Brute force) WAF Rate Rules은 공격자의 악의적인 요청(Reqeust)에 대해 일정 임계치(Threshold)를 통해 공격자의 요청을 블록킹(Blocking)하는 기능이다. (e.g 5분 간 100개가 넘는 요청들이 왔을 때, 공격자의 IP를 차단) 설정 방법은 매우 간단하다. 먼저 AWS 웹 콘솔(Web Console)에서 WAF 구성 항목으로 들어간다. 그리고 Rules 페이지에서 Craete Rule을 선택한다. (AWS WebConsole -> WAF -> Rules) 위 그림과 같이 각 항목을 입력한다. Rate limit의 경우 현재 최소 100개의 요청까지 임계치 구성을 할 수 있다. 그리고 WAF ACLs 페이지에서 Create web ACL을 선택한다. 위 그림과 같이 각 항목들을 채워준다...
Amazon CloudFront 장애 발생 시 필요 정보 https://github.com/leedoing/cdn_checker GitHub - leedoing/cdn_checker Contribute to leedoing/cdn_checker development by creating an account on GitHub. github.com 1. CF Resolver DNS Query 2. curl 등 다운로드 테스트 3. Traceroute 정보 log 확인 명령어 aws s3 cp s3://'path'/ . --recursive --exclude "*" --include "EXXXXX.2018-07-11*.gz" zcat * |awk '{ if ( $9 != 200 && $9 != 301 && $9 != 302 && $9 != 303 && $9 != 3..
AWS CloudFront Apache 원본 연동(mod_security2) SecRule &REQUEST_HEADERS_NAMES:origin-token "@eq 0" \ "id:52,log,deny,status:403,t:lowercase,msg:'CloudFront Auth failed origin-token'" cf origin-token 값을 통한 apache 원본 제어(헤더 Key 기준)
AWS Storage Gateway(File gateway) 성능 AWS Storage Gateway는 IDC 혹은 AWS EC2 간 스토리지(EBS)를 S3와 연동하여 하이브리드 형태로 사용할 수 있는 서비스입니다. 지원되는 프로토콜은 NFS(파일게이트웨이), iSCSI(볼륨 게이트웨이), VTL(테이프 게이트웨이)가 있습니다. 데이터 백업 및 데이터 S3 이전 용도로 사용합니다. 구성은 document에 설명이 잘 되어있습니다. Web Console을 통해 Cache 디스크 및 권한 관리 등을 설정할 수 있습니다. (Document - https://d0.awsstatic.com/whitepapers/aws-storage-gateway-file-gateway-for-hybrid-architectures.pdf)File Gateway(EC2) 내 OS는 직접 접근할 ..
AWS CloudFront RTMP 재생 URL rtmp://'CF주소'/cfx/st/'확장자':'컨텐츠명'rtmp://s10jz6xbjmb33x.cloudfront.net/cfx/st/mp4:toystory.mp4 https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Streaming_CrossDomain.htmlRTMP의 경우 crossdomain.xml 을 제한할 수 없다. RTMP는 쓰지말자.
Amazon S3-CloudFront Redirect(IDC Content S3로 이관 시) [리소스] AWS S3 원본: leedoing2.s3-website-ap-northeast-1.amazonaws.com IDC 원본(가정): leedoing.s3-website.ap-northeast-2.amazonaws.com CF: d1e5lqevy0hhfg.cloudfront.net 사용자 Request: d1e5lqevy0hhfg.cloudfront.net/test.jpg S3 원본에는 test.jpg 파일 없음 IDC 원본에는 test.jpg 파일 존재 [시나리오] 사용자 요청 -> CloudFront -> S3(원본) S3(원본)에서는 404/403에 대해 IDC 원본으로 Redirect 302 Response CF에서는 S3(원본)의 302 Redirect Reponse를 사용자에게 bypa..
AWS CloudFront SignedURL/Cookie 사용 AWS CloudFront로 비공개 컨텐츠 혹은 유료 컨텐츠를 서빙할 때는 Signed URL/Cookie 라는 토큰 기반의 인증 옵션을 사용한다. 1. 구성은 뭐 인증 API 서버가 필요할테고 일반적인 인증 구성 2. CloudFront Signed URL/Cookie를 위한 Key Pair 생성 [Root 계정 로그인] > [우측 계정명] > [My Security Credentials] > [CloudFront Key Pairs] > [Create New Key Pair] Private, Public Key 그리고 Key Pair ID를 저장 3. CloudFront Signed URL/Cookie 미리 준비된 정책 vs 사용자 정책 서명된 URL 사용 - Amazon CloudFront 서명된 U..
AWS CloudFront 및 기타 CDN 성능 측정 솔루션(Keynote) AWS 서비스는 아니지만, CDN 및 기타 글로벌 성능 측정을 위해 사용되는 Keynote 솔루션을 소개한다. Keynote는 각국 ISP 서버를 통해 HTTP 및 기타 프로토콜에 대한 성능을 측정한다. (현재 Dynatrace가 Keynote를 매수) Customer experience analytics | Dynatrace Optimize digital experience with customer experience analytics from Dynatrace. Proactively resolve issues to improve performance and availabilty. Get a free trial. www.dynatrace.com 회원가입은 패스하고, HTTP 통신에 대해 설정하는 방법을..
Amazon CloudFront SSL 인증서 설정하기 HTTPS 통신은 이제 필수다. 간단한 SSL 관소개 웹툰: [웹툰03] SSL이란 무엇인가? 1/2 이 웹툰은 원래 통신사 비판으로 기획되었습니다. 프롤로그 격으로 한국의 보안 현실을 간단히 훑고 가려고 했으나..... 보안 관계자 여러분들의 열화와 같은 성원에 힘입어 본격 보안 만화로 탈바꿈하게 되었습니.. minix.tistory.com [웹툰04] SSL이란 무엇인가? 2/2 이 페이지에 있던 보안 웹툰은 사정에 의해서 가리게 되었습니다. 그 이유가 궁금하신 분은 에서 확인하실 수 있습니다. 김인성. minix.tistory.com 경험상 HTTPS는 HTTP 대비 약 1/3~1/5 수준의 성능을 보입니다. 가령 1Gbps HTTP 통신이 가능한 인프라가 HTTPS를 사용할 경우 200Mbps~5..
AWS EFS(Elastic File System) 간략한 소개 및 성능 테스트 결과 안녕하세요.금일은 AWS의 NAS 서비스인 EFS에 대해 간략하게 블로깅 하도록 하겠습니다. - EFS(Elastic File System)란 AWS 네트워크 스토리지- Disk Size 관리가 필요 없음- Disk Size에 따라 Throughput 및 IOPS가 자동 증가/감소(http://docs.aws.amazon.com/ja_jp/efs/latest/ug/limits-throughput.html)- 페타바이트 규모의 파일 시스템- NFSv4 파일 시스템 지원(Windows 불가, NFSv4 Client Service 지원하지 않음)- AZ 간 데이터 복제- 가격은 EBS보다 약 3배 비쌈- 수천개의 Connection 보장 현재 Oregon 리전에서 Preview 형태로 제공됩니다. VPC 기준..
Amazon S3FS vs EBS Performance 금일은 EBS(not Optimized) vs S3FS 성능 테스트 결과 공유드립니다. EBS Size는 100GB로 IOPS 300입니다. 버스트 포함 최대 3000까지 가능합니다.AWS EBS는 I/O Block 기준이 256KiB입니다.(참고 EBS I/O 특성 - http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ebs-io-characteristics.html)(참고 EBS 볼륨 유형 - http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
Amazon CloudFront 동적 컨텐츠 캐싱 및 주요 기능 AWS CDN 서비스인 CloudFront의 동적 컨텐츠 및 주요 기능에 대해서 설명하도록 한다. 주요 기능과 Best Practice 정보 소개한다. 해당 내용은 AWS SA분의 "CloudFront로 동적 컨텐츠를 전송하는 네 가지 이유" Korea Region 발표 내용을 참고 했다. 대부분 CDN은 보통 정적/동적 컨텐츠를 분리해서 사용하고 있었다. 동적 컨텐츠는 App Server에서 구동되고, 그 안에 정적 컨텐츠는 CDN Server를 통해 End-Point를 구분지어 컨텐츠를 전달한다. 사실 CDN 플랫폼의 경우 HTTP GET 요청뿐만 아니라 POST, PUT, OPTION 등 HTTP Method를 전부 지원한다. 또한 Header, Cookie, QueryString도 원본에 바이패스..
Amazon Seoul Region CloudFront 성능 점검 금일은 CloudFront(CF) 성능 향상에 대한 결과가 있었습니다. 국내 CF 성능 이슈가 꽤 있었습니다. 국내 edge 가용성이 떨어지는 문제로 생각됩니다. 예를 들어 서비스 Peak 시간 20:00 ~ 02:00 사이에 CF의 급격한 성능 저하가 발생 됐었습니다. 국내 CF Bandwidth가 모자를 경우, 근처 도쿄나 혹은 싱가폴쪽으로 라우팅 되는 이슈가 있었습니다. 서비스 도메인 trace 확인 -> 도쿄로 라우팅 되며 지연 시간 발생 서비스 도메인 IP 확인 -> 역방향 조회 -> NRT12(도쿄 리전 CF Codes), 국내 CF Codes는 ICN50 Amazon Web Services CloudFront Edge Locations Codes Following the thread open..
Amazon S3 Region 간 데이터 복제 금일은 S3 리전 간 데이터 복제에 관해서 포스팅 하도록 하겠습니다. 1. Overview해당 내용은 2016년 1월 7일 발표된 김상필 솔루션 아키텍트의 발표 자료에서 발췌한 내용(Tokyo -> Sydney)으로발표 자료를 기반으로 Tokyo에서 Seoul로 테스트를 진행해보겠습니다.(참조 - https://aws.amazon.com/ko/events/aws-cloud-ondemand) 2. Getting Started기본적으로 S3 리전 간 혹은 IDC에서 S3 간 데이터 복제는 CLI를 이용하면 됩니다. 예시 : Source 버킷 : leedoing-tokyo, 지역 : Tokyo, 크기 : 9GB, 갯수 : 90Target 버킷 : leedoing-seoul, 지역: Seoul$aws s3 sy..
Amazon S3 Upload Tool 3rd party solution(CloudBerryExplorer) S3 업로드 솔루션, CloudBerry 사용법에 관해 알아본다. 1. OverView CloudBerry는 S3 Upload Tool입니다. 기존 FileZillar와 같은 Upload Tool과 UI와 사용법이 유사하다 차이점은 FTP가 아닌 HTTP/S 프로토콜을 사용한다. CloudBerry는 Freeware 버전과 상용 버전이 있다. Freeware의 경우 기본적인 업로드/다운로드 기능만 지원한다. 상용 버전과 가장 큰 차이점은 Multi-part upload 불가와 최대 객체가 5GB 라는 점이다. (사용 버전의 경우 5TB) 상용 버전의 경우 1copy 당 $40 정도 합니다. Amazon S3 Browser for Windows | MSP360 (CloudBerry Lab) Download..
Amazon S3 I/O 성능 S3는 여러 파티션으로 분할된 Storage S3는 파티션 별로 객체의 키 값(prefix)를 토대로 인덱싱 사용할 수 있는 HTTP Method는 PUT/LIST/DELETE 그리고 GET 보편적으로 각 파티션 I/O는 PUT/LIST/DELETE Method의 경우 초당 100 / GET Method의 경우 초당 300 정도입니다. 업로드의 경우 현재 성능이 매우 개선되어 고려할 필요가 없을 정도가 되었음. 아래 명령어 수행 후 cp 혹은 sync 수행(CPU/Bandwidth가 중요하며, Path 별 구분을 통해 Parallel하게 수행 권장 aws configure set default.s3.max_concurrent_requests 20(default 10) aws configure set de..
Amazon S3 Client Tool 및 CLI 정리 1. Client에서 S3 사용 정리 Client에서 S3를 이용하는 방법은 두 가지가 있다. AWS CLI 혹은 3rd party solution, 기본적으로 AWS API를 기반으로 HTTP/S 통신한다. 3rd party solution은 다음과 같은 상황의 경우 사용한다. FileZilla와 같은 Client Tool을 사용하길 원하시면, CloudBerry 사의 Explorer를 사용하면 된다. (Freeware) 파일 서버와 같이 S3를 사용하길 원하시면, CloudBerry 사의 Drive 혹은 TntDrive를 사용하면 된다. (Free trial 30/21 day이며 1copy에 Drive $29.99 / TntDrive $59.95) 가성비는 CloudBerry 2. CLI 정리 돈이 ..