2020.12.03

IDG 블로그 | 애플리케이션 성능 튜닝과 비용 효율성

David Linthicum | InfoWorld
퍼블릭 클라우드 컴퓨팅의 탄력적인 용량은 장점과 단점이 있다. 모든 자원을 프로비저닝해 성능 문제를 해결할 수 있다. 하지만 좋든 싫든 이런 상황에 돈을 투여하는 것으로는 문제의 근본 원인을 바로 잡지 못한다. 문제는 보통 잘못된 설계나 잘못된 코딩으로 인한 것이기 때문이다.
 
ⓒ Getty Images Bank

하지만 일부 클라우드 애플리케이션 개발과 설계의 기본적인 기법만으로 많은 성능 문제를 해결하거나 최소한 완화할 수 있다. 이에 따라 클라우드 사용 요금 역시 절감할 수 있다. 애플리케이션 성능을 개선하고 비용 효율성도 높일 수 있는 세 가지 방안을 소개한다.

서버리스 컴퓨팅을 이용한다. 서버리스를 이용하면 비용이 더 많이 나온다는 보고서도 적지 않지만, 필자의 경험은 다르다. 애플리케이션 코드와 데이터베이스 구조를 파헤쳐 성능 문제를 세밀하게 조정할 것이 아니라면, 서버리스 컴퓨팅은 자원 프로비저닝을 클라우드 서비스 업체에 맡긴다. 서비스 업체는 어떻게 하면 자원을 더 최적화할 수 있는지 사용자보다 더 잘 알고 있다. 

개념적으로 서버리스 시스템은 애플리케이션의 실시간 자원 요구사항을 기반으로 하기 때문에 오버프로비저닝이나 언더프로비저닝은 일어나지 않는다. 클라우드 자원의 최적화는 서버리스 플랫폼 자체의 책임이 된다. 최적화하지 않은 애플리케이션과 데이터베이스를 서버리스 환경에 맞춰 리팩터링하면 성능이 개선되는 것을 알게 될 것이다.

기술적인 미봉책에 불과하다고 생각할 수도 있는데, 사실이다. 애플리케이션을 재설계하거나 재코딩, 재배치할 수 없지만, 서버리스 플랫폼으로 이식할 수는 있다는 가정 하에 사용하는 방법이다. 물론 첫 달에 서버리스 환경으로 이전하는 데는 비용이 들겠지만, 전후의 비용을 비교할 지표를 모아야 할 것이다.

데이터를 애플리케이션과 같은 위치에 배치하라. 데이터를 애플리케이션과 가능한 한 가까운 곳에 저장하는 것은 기본적인 아키텍처 원칙이다. 하지만 여전히 데이터베이스를 애플리케이션과 다른 리전이나 다른 클라우드, 심지어 퍼블릭 클라우드에서 구동하는 애플리케이션이 사용하는 데이터베이스를 온프레미스 환경에 두는 경우가 적지 않다. 그 결과는 더 많은 지연과 열악한 성능, 잦은 서비스 중단, 그리고 더 높은 컴퓨팅 및 네트워크 트래픽 요금이다.

이런 설계 결함의 많은 수가 보안과 컴플라이언스 때문이다. 만약 데이터가 국경을 넘을 수 없거나 온프레미스에 저장해야 한다고 해도, 애플리케이션 인스턴스를 해당 데이터와 가장 가까운 곳에 두어야 한다. 이렇게만 해도 기업은 클라우드 요금 때문에 행복하고, 사용자는 성능과 가용성 때문에 행복할 것이다.

애플리케이션 감사. 세 가지 방법 중 가장 손이 많이 가고, 그래서 비용도 많이 드는 방법이다. 

코드 스캐너, 애플리케이션 프로파일러, 애플리케이션 테스트 플랫폼은 애플리케이션 성능을 높이는 리팩터링 방법을 찾아낼 수 있다. 물론 이는 애플리케이션을 바로 재코딩해야 하고, 테스트와 배치도 다시 해야 한다는 것을 의미한다. 이 때문에 비용이 많이 들 수밖에 없다. 하지만 가장 효과적이다.

성능과 최적화 문제는 요통 같다. 살면서 한번은 겪게 된다. 그때 이 세 가지 방안에서 구원의 손길을 찾을 수 있을 것이다. editor@itworld.co.kr


2020.12.03

IDG 블로그 | 애플리케이션 성능 튜닝과 비용 효율성

David Linthicum | InfoWorld
퍼블릭 클라우드 컴퓨팅의 탄력적인 용량은 장점과 단점이 있다. 모든 자원을 프로비저닝해 성능 문제를 해결할 수 있다. 하지만 좋든 싫든 이런 상황에 돈을 투여하는 것으로는 문제의 근본 원인을 바로 잡지 못한다. 문제는 보통 잘못된 설계나 잘못된 코딩으로 인한 것이기 때문이다.
 
ⓒ Getty Images Bank

하지만 일부 클라우드 애플리케이션 개발과 설계의 기본적인 기법만으로 많은 성능 문제를 해결하거나 최소한 완화할 수 있다. 이에 따라 클라우드 사용 요금 역시 절감할 수 있다. 애플리케이션 성능을 개선하고 비용 효율성도 높일 수 있는 세 가지 방안을 소개한다.

서버리스 컴퓨팅을 이용한다. 서버리스를 이용하면 비용이 더 많이 나온다는 보고서도 적지 않지만, 필자의 경험은 다르다. 애플리케이션 코드와 데이터베이스 구조를 파헤쳐 성능 문제를 세밀하게 조정할 것이 아니라면, 서버리스 컴퓨팅은 자원 프로비저닝을 클라우드 서비스 업체에 맡긴다. 서비스 업체는 어떻게 하면 자원을 더 최적화할 수 있는지 사용자보다 더 잘 알고 있다. 

개념적으로 서버리스 시스템은 애플리케이션의 실시간 자원 요구사항을 기반으로 하기 때문에 오버프로비저닝이나 언더프로비저닝은 일어나지 않는다. 클라우드 자원의 최적화는 서버리스 플랫폼 자체의 책임이 된다. 최적화하지 않은 애플리케이션과 데이터베이스를 서버리스 환경에 맞춰 리팩터링하면 성능이 개선되는 것을 알게 될 것이다.

기술적인 미봉책에 불과하다고 생각할 수도 있는데, 사실이다. 애플리케이션을 재설계하거나 재코딩, 재배치할 수 없지만, 서버리스 플랫폼으로 이식할 수는 있다는 가정 하에 사용하는 방법이다. 물론 첫 달에 서버리스 환경으로 이전하는 데는 비용이 들겠지만, 전후의 비용을 비교할 지표를 모아야 할 것이다.

데이터를 애플리케이션과 같은 위치에 배치하라. 데이터를 애플리케이션과 가능한 한 가까운 곳에 저장하는 것은 기본적인 아키텍처 원칙이다. 하지만 여전히 데이터베이스를 애플리케이션과 다른 리전이나 다른 클라우드, 심지어 퍼블릭 클라우드에서 구동하는 애플리케이션이 사용하는 데이터베이스를 온프레미스 환경에 두는 경우가 적지 않다. 그 결과는 더 많은 지연과 열악한 성능, 잦은 서비스 중단, 그리고 더 높은 컴퓨팅 및 네트워크 트래픽 요금이다.

이런 설계 결함의 많은 수가 보안과 컴플라이언스 때문이다. 만약 데이터가 국경을 넘을 수 없거나 온프레미스에 저장해야 한다고 해도, 애플리케이션 인스턴스를 해당 데이터와 가장 가까운 곳에 두어야 한다. 이렇게만 해도 기업은 클라우드 요금 때문에 행복하고, 사용자는 성능과 가용성 때문에 행복할 것이다.

애플리케이션 감사. 세 가지 방법 중 가장 손이 많이 가고, 그래서 비용도 많이 드는 방법이다. 

코드 스캐너, 애플리케이션 프로파일러, 애플리케이션 테스트 플랫폼은 애플리케이션 성능을 높이는 리팩터링 방법을 찾아낼 수 있다. 물론 이는 애플리케이션을 바로 재코딩해야 하고, 테스트와 배치도 다시 해야 한다는 것을 의미한다. 이 때문에 비용이 많이 들 수밖에 없다. 하지만 가장 효과적이다.

성능과 최적화 문제는 요통 같다. 살면서 한번은 겪게 된다. 그때 이 세 가지 방안에서 구원의 손길을 찾을 수 있을 것이다. editor@itworld.co.kr


X