분류 전체보기 1274

Auto scaling out

클라우드 컴퓨팅 서비스에서 서비스의 부하량과 사용량에 맞게 탄력적으로 컴퓨팅 자원을 늘렸다가 줄였다 하는 auto scaling 기능은 기존의 인프라가 가지지 못한 큰 장점 중의 하나이다. 아마존 클라우드 서비스는 이 auto scaling 기능을 서비스로 제공하고 있다. Auto scaling의 기본 개념 아마존에서 제공하는 auto scaling의 기본 개념은 다음과 같다. 여러 개의 EC 인스턴스들을 auto scaling group이라는 하나의 그룹으로 묶어 놓는다. 그리고 각 인스턴스들은 ELB 로드 밸런서를 통해서 로드가 분산된다. 이 그룹을 Cloud Watch라는 아마존의 클라우드 모니터링 솔루션을 통해서 자동으로 감지하게 되는데, 사용자가 정의 해놓은 일정한 조건 (예를 들어 평균 CPU..

Amazon의 CDN 서비스 Cloud Front

Cloud Front조대협Cloud Front는 CDN (Contents Delivery Network) 서비스 이다. 이미지나 동영상 같은 정적인 컨텐츠들을 서비스하는데, 서버가 있는 데이타 센터에서 서비스를 하게 되면, 네트워크 latency 때문에 성능이 저하가 되기 때문에, 전세계의 여러 개의 데이타 센터에 서버(이를 edge node 또는 edge server라고 함) 를 넣고, 클라이언트와 가까운 데이타 센터로 부터 컨텐츠를 제공하는 서비스 이다.얼마나 많은 지역별 데이타 센터에 edge node를 설치하고 서비스를 제공하느냐, 각 edge node의 네트워크 대역폭이나 용량은 충분하느냐가 서비스의 품질을 결정하는데, 세계적으로 Akamai와 Limelight 등의 업체가 유명하다.아마존의 경..

Amazon Route 53 DNS 서비스

Amazon Route 53 DNS 서비스조대협Route53은 아마존에서 제공하는 DNS 서비스 이다. 일반 DNS와 다르게 몇 가지 아마존에 특성화된 몇 가지 기능을 가지고 있는데, 특화 기능에 앞서서 DNS 의 일반 개념을 먼저 정리해 보자.DNS는 domain name (www.example.com)을 ip 주소로 바꿔 주는 일종의 dictionary 서비스 이다.이러한 맵핑 정보를 저장해 놓는 파일을 DNS Zone file이라고 한다. 이 서비스는 DNS 서버에 저장해놓은 파일을 기반으로 주소를 변환하는데, 여기에 정의되는 레코드들 중에서 대표적은 레코드는 다음과 같다. ① SOA 레코드 : 해당 DNS 서버 자체의 설정 정보를 정의 한다.Ÿ DNS 서버는 Primary/Secondary 구조로..

Amazon Elastic Load Balancer

Elastic Load Balancer 조대협ELB는 아마존에서 제공하는 일종의 L4와 같은 로드 밸런서이다. 내부적으로 VM위에서 동작하는 소프트웨어 로드밸런서이고, 아마존 환경에 맞춰서 최적화 되어 있다. Multiple zone supportELB는 기본적으로 multiple zone을 지원한다. ELB 생성시, ELB를 배포할 Amazon Availability Zone을 지정할 수 있다. 여러 개의 zone에 multiple ELB instance가 배포 되기 때문에 ELB 인스턴스는 기본적으로 ip 주소를 가지지 않는다. 대신 DNS 주소를 가지는데, 테스트를 해보면 알겠지만, ELB의 DNS 주소는 경우에 따라서 1개 이상의 주소를 리턴하게 된다.이는 multiple zone을 지원하기 위해..

Amazon Direct connect

AWS Direct Connect Memo 1G,10G 지원. 802.1Q를 이용하여 AWS 주요 거점과 VLAN으로 전용망으로 연결. VPC 간의 연결에도 유용하게 사용할 수 있음.주요 거점과 VLAN 연결이 어려운 경우 APN 사업자망을 통해서 VLAN 연결이 가능함 Direct Connect가 VPN보다 빠르다탄력성 – AWS Direct Connect를 사용하면 요구 사항에 맞게 연결 용량을 쉽게 확장할 수 있습니다. AWS Direct Connect는 1Gbps, 10Gbps로 연결하므로, 용량이 더 필요한 경우 쉽게 여러 개의 연결을 프로비저닝할 수 있습니다. 또한 인터넷을 통해 Amazon VPC에 대한 VPN 연결을 설정하는 대신 AWS Direct Connect를 사용하면 4Gbps 이상..

maven nexus 설치

Nexus 설치 및 Maven 연동조대협 Nexus는 maven에서 사용할 수 있는 가장 널리 사용되는 무료 repository 중의 하나이다. www.sonatype.com 에서 다운로드 받아서 설치할 수 있다. Local에 nexus를 설치하게 되면, 외부로 부터 dependency를 끌어 오는 수고를 덜고, local nexus를 proxy (cache)로 사용함으로써 빠르게 라이브러리들을 끌어 올 수 도 있고, 반대로 개발팀내에서 사용하는 공통 라이브러리들을 local nexus에 배포해서 팀간에 공유할 수 있다. 또한 사용자 계정 지정을 통해서 repository에 대한 접근 정책을 정의할 수 도 있다. Nexus는 repository의 용도와 목적에 따라서 몇 가지로 나눌 수 있는데, 대표적으..

VisualVM을 이용한 JVM 모니터링

JVM Monitoring조대협 JVM 1.4 버전대에만 해도 GUI 기반으로 JVM을 모니터링 하는 도구는 거의 없었다. 콘솔로 접속해서 Thread dump나 GC 로그등을 분석하거나 필요할 경우 JMX 기반의 모니터링 명령어등을 만들어야 했는데, 근래에는 좋은 모니터링 도구들이 많이 나와서, 쉽게 JVM의 상태를 모니터링 할 수 있고, 메모리,CPU 사용률, Thread 현황들을 매우 쉽게 분석할 수 있다.여기에, 여러개의 VM을 동시에 중앙에서 매우 세세하게 모니터링이 가능하게 되었다.여기서는 몇가지 자주 사용되는 JVM 모니터링 툴을 소개하고자 한다. VisualVM대표적인 도구로는 오픈소스 기반의 Visual VM이라는 도구가 있다. http://visualvm.java.net/에서 다운로드 ..

Apache Tomcat Tuning (아파치 톰캣 튜닝 가이드)

톰캣 튜닝조대협 이번에는 톰캣 서버에 대한 튜닝 옵션에 대해서 한번 알아보자.애플리케이션 관점에서의 튜닝도 중요하지만, 각 솔루션에 대한 특성을 업무 시나리오에 맞춰서 튜닝하는 것도 못지 않게 중요하다. 여기서 톰캣 튜닝을 설명하는 것은 톰캣 자체에 대한 튜닝 옵션을 소개하는 것도 목적이 있지만, 그보다 업무형태에 따라서 어떠한 접근을 해서 톰캣을 튜닝하는지를 소개하기 위함이다. 가정여기서 튜닝 하는 톰캣은 HTTP/JSON형태의 REST 형태로 서비스를 제공하는 API 서버의 형태이다. 여러대의 톰캣을 이용하여 REST 서비스를 제공하며, 앞단에는 L4 스위치를 둬서 부하를 분산하며, 서비스는 stateless 서비스로 공유되는 상태 정보가 없다. server.xml 튜닝톰캣의 대부분 튜닝 패러미터는 ..

성능 엔지니어링 대한 접근 방법 (Performance tuning)

성능 엔지니어링에 대한 접근 방법조대협 성능 개선, Performance Tuning, 용량 선정 과 같은 튜닝 관련 용어들은 모든 개발자나 엔지니어에게 모두 흥미가 가는 주제일 것이다. 그 만큼 소프트웨어에서 고성능을 내는 시스템은 만들기도 힘들뿐더러, 고성능 시스템이란 즉 잘 설계되고 구현된 소프트웨어를 뜻하는 것이니 관심을 가지는 것이 당연하지 않을까 싶다.필자의 경우, 엔터프라이즈 시스템에 대한 약 6년간 장애 해결, 장애 회피 설계, 성능 개선, 고성능 시스템 설계 및 구현에 관련된 일을 해왔다. 특히 장애 해결과 성능 개선 작업은 하고 나면 뿌듯하기는 하지만, 특정한 기술이 필요하기 보다는 문제를 정의하고 접근하는 능력과 끝까지 목표를 달성할 때까지 지루한 작업을 반복적으로 할 수 있는 인내심..

성능과 튜닝 2013.09.04

RabbitMQ 공부 노트

http://www.rabbitmq.com/tutorials/amqp-concepts.html Rabbit MQ 기본 컨셉 AMQP (Advanced Message Queuing Protocol)Broker : 메세지 Queue 시스템을 broker라고 하낟.Queue Queue의 주요 속성Ÿ name Ÿ durable 속성 : 메세지를 디스크에 저장. memory에 저장하는 것은 transient라고 한다.Ÿ auto-delete : 모든 consumer가 unsubscribe하면, 해당 queue는 자동으로 없어진다.* Queue를 만드는 것을 declare라고 하며, 애플리케이션 코드에서도 쉽게 만들 수 있다. 만약 해당 큐가 이미 존재하고 있다면, 다시 queue를 만들지 않고, queue가 없을..