Amazon ElastiCache(Redis)를 이용한 채팅 애플리케이션 구성 방법

2018-08-16 KENNETH 0

Amazon ElastiCache(Redis)를 이용한 채팅 애플리케이션 구성 방법 이 글에서는 Redis를 활용하는 채팅 애플리케이션에 대한 개념 및 아키텍처를 살펴 볼 예정입니다. 또한, 채팅 클라이언트와 서버에 대한 자세한 구성방법 그리고 사용자 AWS에 채팅 예제 애플리케이션을 배포하는 방법에 대해서 이야기를 나누어 보겠습니다. 사전 지식 채팅 애플리케이션을 작성하기 위해서는, 클라이언트가 채팅방 안에 속해있는 다른 참여자들에게 메시지를 전달하기 위한 통신 채널이 필요합니다. 이러한 통신 방법은 Publish-Suscribe 패턴(일명, PubSub)으로 보통 구성하게 됩니다. 이 경우, 메시지는 중앙에 있는 토픽 채널로 전달되게 됩니다. 해당 토픽에 관심이 있는 참여자는 채널에 사전 등록을 하고, 갱신되는 내용에 대해서 알림을 받게 됩니다. 이 패턴을 통하여, 메시지 계시자와 메시지 수신자 사이를 분리할 수 있어, 계시자에 대한 정보 없이, 메시지 수신자의 크기는 늘어나거나 줄어들 수 있게 됩니다. PubSub은 백엔드 서버에 구성되어 있으며, 클라이언트는 WebSockets을 통하여, 연결합니다. WebSocket은 영속적인 TCP 연결로, 클라이언트와 서버간에 양방향 데이터 스트림 전송을 지원하는 채널을 제공합니다. 한개의 서버로 구성된 단일 서버 [ more… ]

AWS Glue를 이용한 파티션 데이터 처리

2018-08-16 KENNETH 0

AWS Glue를 이용한 파티션 데이터 처리 AWS Glue는 Hive 스타일 파티션으로 구성된 데이터 세트 처리에 향상된 기능을 제공합니다. AWS Glue 크롤러는 Amazon S3에 저장된 데이터의 파티션을 자동으로 구별합니다. AWS Glue ETL(추출, 변환, 로드) 라이브러리는 DynamicFrames로 작업할 때 기본적으로 파티션을 지원하며, DynamicFrames는 스키마를 지정하지 않더라도 분산된 데이터 콜렉션을 나타냅니다. DynamicFrames를 생성할 때 S3를 호출하지 않더라도 서술자를 통해 파티션을 필터링할 수 있습니다. 또한 DynamicFrames를 Aparche Spark DataFrames로 변환하지 않고 파티셔닝 된 디렉토리에 직접 쓰는 기능이 추가되었습니다. 파티셔닝은 다양한 빅데이터 시스템에서 효율적으로 쿼리가 가능하도록 데이터 세트를 구성하는데 중요한 기술입니다. 데이터는 하나 이상 컬럼의 고유값에 기반하여 계층적인(hierarchical) 디렉토리 구조로 구성됩니다. 예를 들어, Amazon S3에 애플리케이션 로그를 날짜(연, 월, 일) 기준으로 파티션을 나눌 수 있습니다. 이 경우 하루 동안의 로그 데이터는 s3://my_bucket/logs/year=2018/month=01/day=23/ 과 같은 프리픽스 아래에 저장 됩니다. Amazon Athena, Amazon Redshift Spectrum, AWS Glue와 같은 서비스들은 이렇게 파티션 된 데이터를 이용하여 S3에 불필요한 호출을 [ more… ]

Amazon DynamoDB 데이터 암호화 및 서명 방법

2018-08-16 KENNETH 0

Amazon DynamoDB 데이터 암호화 및 서명 방법 민감한 데이터나 기밀 데이터를 Amazon DynamoDB에 저장하는 경우, 해당 데이터를 암호화하여 데이터 수명 주기동안 보호할 수 있습니다. DynamoDB Encryption Client를 사용하여 DynamoDB로 전송하기 전에 테이블 데이터를 보호할 수 있습니다. 민감한 데이터를 전송 중(In Transit) 및 유휴 시(At Rest) 암호화하면 AWS를 포함하여 제 3자는 평문 데이터의 사용이 불가능 합니다. DynamoDB Encryption Client를 사용하려면, 여러분이 암호 전문가일 필요는 없습니다. 암호화 및 서명 요건들은 기존 DynamoDB 어플리케이션과 함께 동작하도록 설계되어 있습니다. 필요한 컴포넌트들을 생성하고 구성을 적용한 뒤, DynamoDB Encryption Client는 PutItem을 호출시 테이블 항목을 투명하게 암호화하고 서명하며, GetItem을 호출할때 검증하고 복호화 합니다. 고유한 사용자 정의 컴포턴트(Component)를 생성하거나 라이브러리에 포함된 기본 구현을 사용할 수도 있습니다.  AWS에서 제공하는 클래스는 강력하고 안전한 암호화를 구현할 수 있도록 되어 있습니다. DynamoDB Encryption Client는 AWS Key Management Service (Aws KMS) 또는 AWS CloudHSM과 함께 사용이 가능하지만, 라이브러리가 AWS 또는 다른 AWS 서비스를 [ more… ]

애플리케이션 로드 밸런서(ALB)에 고정 IP 주소 설정 및 사용하기

2018-08-16 KENNETH 0

애플리케이션 로드 밸런서(ALB)에 고정 IP 주소 설정 및 사용하기 2016년에 Elastic Load Balancing는 애플리케이션 로드 밸런서(Application Load Balancer, ALB)를 출시하였고, HTTP 통신의 7계층의 많은 기능들을 지원하게 되었습니다. 클라이언트는 DNS 주소를 해석하여 ALB를 이용하여 문제없이 연결할 수 있습니다. 하지만, ALB의 IP 주소목록은 추가되거나 변경될 수 있기 때문에 클라이언트가 인터넷 상에서 항상 ALB의 동일한 모든 IP주소로 연결할 수 있지 않고, 이 때문에 오래된 디바이스를 쓰고 있거나 보안에 엄격한 네트워크 관리자에겐 ALB가 까다롭게 여겨질 수 있습니다. 고정 IP는 이런 문제를 해결해 줄 수 있으며 클라이언트가 임시 해결적으로서 현재 IP 주소들을 업데이트하거나 방화벽에 넣어주는 스크립트를 실행할 필요가 없어집니다. 2017년에 4계층 TCP 로드 밸런서인 네트워크 로드 밸런서(Network Load Balancer, NLB)가 런칭되었습니다. NLB는 각 가용영역에 고정 IP주소들을 두고 쓸 수 있습니다. 이러한 고정  IP주소들은 변하지 않기 때문에 방화벽의 화이트리스트에 추가될 수 있습니다. 하지만 NLB는 TCP 통신만 허용하기 때문에 HTTPS를 처리하지 않으며, ALB의 7계층 관련 기능들이 없습니다. [ more… ]

No Image

RHBA-2018:2437-1: Updated openvswitch selinux policy package that fixes several reported bugs.

2018-08-16 KENNETH 0

RHBA-2018:2437-1: Updated openvswitch selinux policy package that fixes several reported bugs. Red Hat Enterprise Linux: The Open vSwitch suite provides standard network bridging functions and support for the OpenFlow protocol for remote per-flow control of traffic. The openvswitch-selinux-extra-policy package adds an SELinux policy that enables the Open vSwitch suite of utilities to function with SELinux in enforcing mode. Source: RHBA-2018:2437-1: Updated openvswitch selinux policy package that fixes several reported bugs.