본문 바로가기

Amazon Web Service

(98)
ES6, 7, 8 정리 [1] Variables 1. Var - var는 더이상 쓰지마라. - const를 써라. 대신 const의 하위 오브젝트 제어는 가능. - let도 지양 하지만 오브젝트를 변경해야 할 일이 있을 변수에는 사용. 그래도 웬만하면 const. 2. Hoisting / Block Scope - 지겨운 호이스팅 - const, let 사용 시 호이스팅에 트랩에서 빠져 나올 수 있음 3. Block Scope - f a{ f b{}} a에서 b의 object로 접근할 수 없고, b에서 a는 가능 - 당연히 if, for 등 {} 버블 내에서는 모두 적용 4. 정리 - const, let, hoisting, block scope를 기억해라. [2] Functions 1. Arrow Functions const n..
AWS EC2 User data script sample(node.js) AWS EC2의 User data에서 yarn install/run 명령어 수행이 되지 않음.. 초기 EC2 생성 시의 User data 아래와 같이 구성하면 되고, (https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/user-data.html) #!/bin/bash yum update -y amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2 yum install -y httpd mariadb-server systemctl start httpd systemctl enable httpd usermod -a -G apache ec2-user chown -R ec2-user:apache /var/w..
Babel 6/7 후아 이틀 삽질한 내용.... 1. Error: only one instance of babel-polyfill is allowed babel을 전역변수로 단 한 번의 정의만 가능하므로, 어딘가에 너는 babel-polyfill을 import 하고 있을 것이야.. 2. ReferenceError: regeneratorRuntime is not defined async function myFunc(){} -> const myFunc = async function(){} 3. Runtime Error 문제(.babelrc) @babel/transform-runtime 플러그인 추가 { "presets": [["@babel/preset-env"]], "plugins": [["@babel/transform-ru..
AWS MediaStore 오랜만에 업데이트... 요새 딴 일을 하느라...🙏 아무툰... AWS MediaStore는 Live 스트리밍 전용으로 메모리 기반의 S3로 이해하면 된다. 그러니까 실시간 레이턴시가 중요한 Live 미디어 서비스의 MediaStore 사용을 권장한다. S3만큼 여러 기능도 없다. 그냥 easy easy... 보편적인 Live Streaming 구성 [Encoder Appliance] -> [MediaLive] -> [MediaStore] -> [CloudFront] MediaStore를 사용 시에는 MediaLive에서 endpoint에 mediastore(ssl)://mediastoreEndpoint/'path' chunk: '/path' 혹은 'path' 로 구성하면 되는데, /path로 구성했을 ..
s3 sync shell S3 cli 쓰레드 늘리는 설정(10 -> 50~80) aws configure set default.s3.max_concurrent_requests 20 (default 10) aws configure set default.s3.max_queue_size 10000 4 core / 16 Mem 기준 1 core에서 90% 이상 sync 명령어가 점유 평균 50~80MB/s Throughput 까지 성능이 나옴, 하루 5~7TB 업로드 가능 Path 별로 병렬처리 시 더 나은 성능을 뽑을 수는 있음(bandwidth 고려) #!/bin/bash while true do psCount=$(ps -ef |grep /usr/local/bin/aws) if [ "$psCount" = 2 ] then echo "..
Amazon API Gateway Signature v4(Authorization) API Gateway는 AWS의 Managed HTTP(S) Proxy 서비스로 HTTP(S) / Websocket 프로토콜을 지원하며, EC2 / Lambda / DynamoDB / 외부 HTTP(S) 통신 등 다양한 Application과 Integration 되어있다. API Gateway는 기본적으로 AWS에서 관리하는 VPC 내에 존재하기 때문에 Public 서비스로 WAF와 연동도 가능하다. 또한 End-Point(Private Link)도 지원하기 때문에 사용자의 VPC 내에서 Security Group을 통해서도 네트워크 제어가 가능하다. 그 외 Caching, Header, QueryString 조작, 요청 Threshold 관리 등 매우 다양한 기능이 있음. 이번 블로깅은 API Gat..
AWS Key Management Service(KMS) KMS는 말그대로 키 관리 시스템이다. 전반은 이해가 안 가나, 간략히 주요 기능을 추려보면 아래와 같다. 1. 양방향 암호화 지원(대칭키) 2. 별도의 물리적인 공간에 ecryption/decryption을 위한 key를 저장 3. AWS SDK 등을 사용하여, 겁나 쉽게 데이터 ecryption/decryption이 가능함 암호화 방식은 아래 링크에 잘 설명되어 있음. (https://medium.com/chequer/sqlgate-teams-%EA%B0%9C%EB%B0%9C%EA%B8%B0-1%ED%8E%B8-%EB%B6%80%EC%A0%9C-%EC%95%88%EC%A0%84%ED%95%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%95%94%ED%98%B8%ED%99%94-aws-..
OpenVPN, OpenLDAP OpenVPN / OpenLDAP 둘 다 AWS AMI 사용 OpenVPN LDAP 설정(OpenLDAP uid / ADDS sAMAccountName) Organisational Unit -> Posix Group -> User Account 기본적으로 APP -> LDAP 구성 AWS 계정 연동을 위해서는 AD Connector 필요(Microsoft / OpenLDAP) Directory Service를 이용하여 Directory 관리 가능하나, LDAP Query를 지원하는 ADFS 등은 필요