본문 바로가기

전체 글

(104)
AWS VPC FLOW LOGS AWS VPC Flow Logs는 VPC 내의 로그를 수집할 수 있게 해주는 기능 VPC 흐름 로그 - Amazon Virtual Private Cloud VPC 흐름 로그 VPC 흐름 로그는 VPC의 네트워크 인터페이스에서 전송되고 수신되는 IP 트래픽에 대한 정보를 수집할 수 있는 기능입니다. 플로우 로그 데이터를 Amazon CloudWatch Logs 및 Amazon S3로 게시할 수 있습니다. 플로우 로그를 생성한 다음 선택된 대상의 데이터를 가져와 확인할 수 있습니다. 흐름 로그는 다음과 같은 여러 작업에 도움이 될 수 있습니다. 지나치게 제한적인 보안 그룹 규칙 진단 인스턴스에 도달하는 트래픽 docs.aws.amazon.com 각 VM의 네트워크 인터페이스 별로 통신하는 로그를 확인할 수 ..
AWS WAF&Shield 소개 AWS WAF&Shield 소개(http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/ddos-overview.html) AWS는 Document 정리가 잘 되어 있어서 좋다. 너무 잘 되어 있어서 불편할 정도... 1. WAFAWS WAF는 CloudFront 및 ELB/ALB/EIP/Route 53과 연동되는 서비스(국내는 아직 불가하며 글로벌 서비스인 CF, Route 53만 가능)로 따로 WAF를 위한 팜이 빠져있는지는 모르겠지만, Apache나 Tomcat 보안 모듈이랑 비슷하다고 생각하면 좋을 듯 하다. (개인적인 의견) 가령, 그림으로 이해하자면 아래와 같은 그림으로 구성된다. (아래 그림은 Web log를 Lambda로 분석하여 실시간으로..
AWS Lambda 활용 태깅 없는 EC2 Instance 정지 Sample Code(Python boto3) import boto3 def lambda_handler(event, context): no_tag_instances = [] ec2 = boto3.client('ec2') instances = [i for i in boto3.resource('ec2', region_name='ap-northeast-2').instances.all()] # Print instance_id of instances that do not have a Tag of Key='Foo' for i in instances: if i.tags is None: no_tag_instances.append(i.instance_id); response = ec2.stop_instances( Ins..
ffmpeg 활용 영상 모니터링 ffmpeg 체크 ./ffmpeg -i $URL -codec copy -t 0 -f null /dev/null FFmpeg Converting video and audio has never been so easy. $ ffmpeg -i input.mp4 output.avi News October 5th, 2019, Bright Lights FFmpeg has added a realtime bright flash removal filter to libavfilter. Note that this filter is not FDA approved, nor are we me www.ffmpeg.org 블랙 / 화이트 영상 감지 ./ffmpeg -i $URL -vframes 1 -an -s 720*400 -f mj..
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는 직접 접근할 ..
Wowza 설정 관련 Wowza 가이드 문서http://www.wowza.cn/WowzaStreamingEngine_UsersGuide.pdf https://www.wowza.com/docs/how-to-configure-a-wowza-server-as-an-http-caching-originUI -> Edge 모드 적용 후 -> 아래 Config 설정(청크가 시퀀스하게) httpOriginMode on String Request 헤더에 따라 Response 헤더 변경(모듈을 만들지 않는 이상, 커스텀 헤더 조작은 메뉴얼하게만 가능) StreamNameAlias AddOnhttps://www.wowza.com/docs/how-to-get-the-streamnamealias-addon
AWS ElasticSearch를 이용한 CloudFront 로그 분석(Amazon Linux/ES) ElasticSearch 설치ElasticSearch: 5.4https://www.elastic.co/guide/en/beats/libbeat/current/getting-started.html EC2 Discovery Plugin(Cluster)https://www.elastic.co/guide/en/elasticsearch/plugins/current/discovery-ec2.html elasticsearch-head Plugin(5.x site plugin 지원하지 않음)https://github.com/mobz/elasticsearch-head Limitvim /etc/security/limits.confec2-user soft memlock unlimitedec2-user hard memlock..
AWS Lambda 활용 EIP 변경 방화벽 문제 등이나 기타 이유로 Elastic IP를 사용하는 서비스를 운영할 때 SPOF 발생 (과거 NAT Gateway가 생기기 전에 NAT Instance 단일 장애 지점 문제와 같은...ELB는 아직 EIP를 지원하지 않음) 1. 필요한 Policy { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1491964068000", "Effect": "Allow", "Action": [ "ec2:AssociateAddress", "ec2:DescribeAddresses" ], "Resource": [ "*" ] } ] } 2. Role 생성(Trust relationsships) { "Version": "2012-10-17", "Statement": ..
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는 쓰지말자.
AWS EC2 EIP 사용 시 HA 구성 외부 서비스와 API 통신 시에 외부 업체에서 보안을 이유상으로 고정 IP 몇 개 허용해 줄 때가 있다. 기존 IDC에서는 VIP를 통해 HA 구성을 했지만, Cloud에서 외부 API 서비스를 이용하기 위해 NAT 구성은 위험성이 있다. (NAT의 비용 및 네트워크 문제) 그 경우 보통 AWS 클라우드에서는 Elastic IP를 이용해서 사용하는데, 그 경우 해당 EC2는 SOPF(Single Of Point Failure) 상태가 된다. 그래서 나노 사이즈의 작은 EC2 Instance를 사용하여 2대의 EC2 Instance에 Health Check를 배치잡을 이용하여 Master 서버에 문제가 발생할 경우 Slave 서버로 EIP를 교체할 수 있다. 아래 간단한 샘플코드를 첨부한다. var AWS..
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 Windows2008 R2 Client NFS 설정 1. NFS Client 구성1-1. Server Manager -> Roles -> Add Roles -> File Services -> Services for Network FS1-2. Windows Firewall -> Inbound Rules -> File and Printer Sharing(모든 Name) -> Enable Rule 2. UID/GID regedit 설정2-1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default2-2. 두 DWORD 값을 추가 AnonymousUid, AnonymousGid2-3. 이 값을 공유 Linux 디렉토리의 소유자 UID/GID로 설정2-4. NFS 용 클라이언트 서비스를 ..
AWS CloudWatch 알람 생성 스크립트 전체 구성된 EC2 Instance에 CPU 70% 이상 알람 생성(사전 CloudWatch Role 필요)123456789101112131415161718192021222324252627282930313233343536373839#!/bin/bash#CREATE SNS TOPIC##name에 사용할 SNS 이름 등록$(aws sns create-topic --name xxxx-topic) #CREATE SUBSCRIBE##topic-arn에 생성한 accountID:topic이름설정 / e-mail 등록 다수 등록 시 아래 명령어 추가$(aws sns subscribe --topic-arn arn:aws:sns:ap-northeast-2:5576xxxx:xxxx-topic --protocol email..
Amazon ElasticSearch 이모저모 AWS ElasticSearch는 간단하게 ElasticSearch를 AWS 내에서 제공하는 서비스 구성은 간단히 Web Console에서 Name(Master), Data Node 구성 가능, 자동 백업이 가능사용 방법은 http://mykumi.tistory.com/entry/AWS-ElasticSearchKibanaFluentd-1-AWS-ElasticSearch-%EC%83%9D%EC%84%B1 에서 확인 가능 문제는 ElasticSearch는 VPC 내의 Private 서비스가 아닌 Public 구간의 서비스.따라서 접근 제어는 Public IP 혹은 ARN과 Signature 구성을 통해 가능. 접근 제어 변경 시 약 5분에서 길게는 20분까지 반영되는데 시간이 걸림 Signature 구성 방..
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 CodeDeploy 테스트 AWS CodeDeploy는 AWS의 배포 서비스다. 서울 리전에서 사용 가능하다. 레파지토리는 S3와 github를 사용할 수 있다. 이번에는 CodeDeploy와 github를 연동해서 배포하도록 한다. 테스트를 위해 테스트용 EC2 Instance를 생성하고 아래 사전 조건을 구성한다. 1. Agent 설치 및 실행 CodeDeploy 에이전트 설치 또는 다시 설치 - AWS CodeDeploy CodeDeploy 에이전트 설치 또는 다시 설치 CodeDeploy 에이전트가 없거나 작동하지 않는 것으로 의심되는 경우 인스턴스에서 명령을 실행하여 설치 또는 다시 설치할 수 있습니다. javascript가 브라우저에서 비활성화되거나 사용이 불가합니다. AWS 설명서를 사용하려면 Javascript가 활..
AWS CodeCommit 테스트 AWS CodeCommit은 AWS에서 Managed 해주는 git(레파지토리/코드저장소) 서비스입니다. 아래는 AWS의 서비스로 Software lifecycle을 구성하는 방법에 대한 그림입니다. 구성은 매우 간단합니다. [AWS Web Console] > [CodeCommit] > [Create new repository] 에서 레파지토리를 하나 추가합니다. 그럼 아래와 같이 HTTPS, SSH로 접근할 수 있는 URL을 확인할 수 있습니다.HTTPS로 접근할 경우 아래 그림 설명처럼 AWS CLI 설치, CodeCommit 접근 권한이 있는 Access/Secret Key나 Role이 필요합니다. AWS CLI를 통해서 git 인증을 받기 때문입니다. SSH로 접근 시에는 생성한 IAM 계정에서 ..
개발 javascript 디버깅 casperjs https://www.youtube.com/watch?v=RB-bpFEUxzo#t=1010.418172
Amazon EC2 태그 기준으로 Instance Private IP 확인 CLI aws ec2 describe-instances --filters "Name=tag:Name,Values=wisen-blog-ec2" |jq '.Reservations[].Instances[0] | select(.State.Name == "running")' |jq '.PrivateIpAddress' (jq: https://stedolan.github.io/jq/) #!/bin/bash privateIpList=$(aws ec2 describe-instances --filters "Name=tag:Name,Values=wisen-blog-ec2" |jq '.Reservations[].Instances[0] | select(.State.Name == "running")' |jq '.PrivateIpAddr..
IPv6, IPv4 통신 IPv6->IPv6 / IPv6->IPv4 / IPv4->IPv4 통신 정리https://winter.kics.or.kr/storage/paper/event/2015_winter2014/publish/14C-56.pdfhttp://www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/enterprise-ipv6-solution/white_paper_c11-676278.html 국내 ISP IPv6 관련http://blog.naver.com/nackji80/220050318467 CloudFront: IPv6 Enable 설정Route53: AAAA Record 등록(DNS64 지원 X)
AWS ELB 사용 시 Apache 408/503 error log AWS ELB와 Apache 사용 시 Apache의 Access Log에 408/50X 에러 로그가 발생되는 경우가 있다. 이 증상은 ELB의 idle timeout과 Apache의 mod_reqtimeout 모듈과의 충돌로 발생된다. ELB의 idle timeout은 Back-end EC2 Instance와 세션 유지를 위한 timeout 시간이며, mod_reqtimeout은 웹 서버 보안 모듈이다. 1. ELB Idle timeout까지 ELB는 Back-end EC2 Instance와 TCP 세션 유지 2. mod_reqtimeout은 일정 시간(default 20~40초)이 경과해도 probe를 보내지 않는 세션을 공격으로 간주하고 차단(408 에러 발생) 3. ELB Idle timeout은 ..
AWS VPC Security Group ID 포워딩 VPC Security Group의 경우 Auto Scaling 등 여러 제약으로 인해 아래와 같이 Security Group ID 포워딩 정책을 많이 사용한다. Security Group ID 포워딩의 경우 Private IP 대역에 대한 제어만 가능하다. 따라서 VPC 내의 리소스들이 Public 구간 통신을 할 경우 해당 정책은 적용되지 않는다.Test로 생각없이 공인 IP를 적었다가 Slave I/O: error connecting to master (MySQL, replica)와 같은 Connection Error 메시지가 발생되는 경우 Private 구간 통신을 하도록 하자.
MySQL Hostname 기준 VPN 접근 시 문제 MySQL Hostname 기준 계정 설정은 Client IP의 역방향 DNS 질의를 통해 Hostname과 비교 VPN 연동 시 사설 IP에 대한 역방향 DNS 질의를 통해 사설 Hostname을 가져옴, 계정 설정한 Hostname과 달라서 Connection 에러 발생 따라서 계정은 사설 IP 기준 권장, Hostname을 써야 한다면 역방향 질의된 Hostname 설정이나 Local DNS 변경을 통해 가능
네트워크 상태 확인(mtr) 예시) mtr -r -c 10 -T -P 80 www.naver.commtr -r -c 10 -T -P 80 52.79.111.111-r : report, -c : count-T옵션은 icmp echo대신 tcp syn패킷을 보내는 것이다. syn 패킷이 데이터를 포함하지 않기 때문에, 패킷사이즈는 무시된다. -P옵션은 port 넘버 mtr이 설치(1) redhat계열(redhat, centos, amazon linux): yum install mtrmtr --version 0.85버전 이하라면 아래 명령어 실행.wget ftp://fr2.rpmfind.net/linux/centos/7.2.1511/os/x86_64/Packages/mtr-0.85-7.el7.x86_64.rpmrpm -Uvh mtr-0...
AWS CloudWatch Custom Metric 생성 CloudWatch에서 EC2 Instance의 Memory 관련 metric은 지원하지 않는다. Custom Metric은 EC2 Instance의 데이터를 CloudWatch API 호출을 통해 Push 하는 형태. AWS API는 Rest API, SDK, CLI 여러 방법이 사용 가능하다. 이번 블로깅에서는 CLI를 이용한다. 먼저 AWS Custom Metric 생성 API 사용을 위해서는 CloudWatch Policy가 있는 Access&Secret 권한 혹은 Role이 필요하다. CloudWatch Full 권한을 갖고 있는 Policy를 생성한다. 해당 권한을 User(Access&Secret Key) 혹은 Role에 매핑한다. 테스트는 해당 Role을 갖춘 EC2 Instance 다. ..
AWS IAM 태그 기반 Policy 생성 잘 설명된 내용을 포워딩 http://awsdog.tistory.com/entry/IAM-Action%EB%B3%84-%EA%B6%8C%ED%95%9C-%EC%A0%9C%EC%96%B4%EC%8B%9C-Condition-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0
AWS Lambda를 이용하여 Security Group 자동 제어 이번 블로그는 AWS의 How to Automatically Update Your Security Group .. AWS Lambda 블로깅 테스트 후기?입니다. 참고 How to Automatically Update Your Security Groups for Amazon CloudFront and AWS WAF by Using AWS Lambda | Amazon Web Services Update on June 14, 2018: We removed an out-of-date code sample. Update on August 23, 2018: We revised the “Configure your Lambda function’s trigger” procedure. Amazon CloudFront c..
Amazon EC2 MySQL 5.6 설치 https://gist.github.com/dragonjet/270cf0139df45d1b7690
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 통신에 대해 설정하는 방법을..
AWS ElastiCache(Redis) AWS ElasticCache는 AWS의 in memory cache로 SaaS 형태로 제공됩니다. ElastiCache는 AWS에서 S3, EC2, RDS, CloudFront 다음으로 많이 사용하는 서비스입니다. 엔진은 Memcached와 Redis를 지원합니다. 현재 Memcached는 1.4.5, Redis는 2.8.X, 3.1까지 지원합니다. 따라서 ElastiCache Redis의 경우 Cluster가 지원되지 않습니다. 지원됩니다. Replication Cluster를 통해 HA 구성을 해야 합니다. 기존 IDC 혹은 VM 위에 Redis를 구성했을 경우와 ElastiCache(Redis)를 사용할 경우 비교 및 제약 사항 1. HA 구성- 만약 Redis 구성을 직접 수행한다면, SE는 서..