<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>서버더살까 Archives -</title>
	<atom:link href="https://blog.kwt.co.kr/tag/%ec%84%9c%eb%b2%84%eb%8d%94%ec%82%b4%ea%b9%8c/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.kwt.co.kr/tag/서버더살까/</link>
	<description>여러분의 돈과 시간을 낭비하지마세요.</description>
	<lastBuildDate>Sun, 08 Sep 2024 04:44:25 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>

<image>
	<url>https://blog.kwt.co.kr/wp-content/uploads/2022/07/cropped-logo_bg-32x32.jpg</url>
	<title>서버더살까 Archives -</title>
	<link>https://blog.kwt.co.kr/tag/서버더살까/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>고가용성 (High Availability, HA)</title>
		<link>https://blog.kwt.co.kr/%ea%b3%a0%ea%b0%80%ec%9a%a9%ec%84%b1/</link>
					<comments>https://blog.kwt.co.kr/%ea%b3%a0%ea%b0%80%ec%9a%a9%ec%84%b1/#respond</comments>
		
		<dc:creator><![CDATA[시간 조절자]]></dc:creator>
		<pubDate>Sun, 08 Sep 2024 04:43:21 +0000</pubDate>
				<category><![CDATA[기술]]></category>
		<category><![CDATA[고가용성]]></category>
		<category><![CDATA[서버더살까]]></category>
		<category><![CDATA[쿠버네티스]]></category>
		<category><![CDATA[혼날듯]]></category>
		<guid isPermaLink="false">https://kwt.co.kr/?p=792</guid>

					<description><![CDATA[<p>고가용성 (High Availability, HA) ? 고가용성은 시스템, 애플리케이션, 데이터베이스, 네트워크 등이 지속적으로 운영될 수 있도록 보장하는 것을 말한다. 장애나 오류가 발생해도 서비스가 중단되지 않고 최대한 연속성을 유지하는 시스템을 구축하는 것이 고가용성의 핵심이다. 일반적으로 가용성을 99.9% (3 9s, 99.999% : 5 9s)이상 유지하는 것을 목표로 하며, 이는 1년 중 약 8.77시간 이하의 다운타임을 허용하는 수준이다. 하지만 [&#8230;]</p>
<p>The post <a href="https://blog.kwt.co.kr/%ea%b3%a0%ea%b0%80%ec%9a%a9%ec%84%b1/">고가용성 (High Availability, HA)</a> appeared first on <a href="https://blog.kwt.co.kr"></a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><strong>고가용성 (High Availability, HA) ?</strong></h2>



<p>고가용성은 시스템, 애플리케이션, 데이터베이스, 네트워크 등이 <strong>지속적으로 운영될 수 있도록 보장</strong>하는 것을 말한다. <strong>장애나 오류가 발생해도 서비스가 중단되지 않고</strong> 최대한 연속성을 유지하는 시스템을 구축하는 것이 고가용성의 핵심이다. 일반적으로 <strong>가용성을 99.9% (3 9s, 99.999% : 5 9s)이상</strong> 유지하는 것을 목표로 하며, 이는 <strong>1년 중 약 8.77시간 이하</strong>의 다운타임을 허용하는 수준이다.</p>



<p>하지만 얻는 것이 있다면 잃는 것도 있는 법. 대체적으로 세상 많은 것이 완벽과 안전을 추구하면 그에 상응하는 비용이 든다(대표적 Trade-off 관계). 이번에 쿠버네티스 클러스터를 구축하며 어디까지 구현할 것인지 고민을 하게 된 순간이 많기에 겸사겸사 포스팅으로 내용을 남긴다.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" width="724" height="1200" src="https://blog.kwt.co.kr/wp-content/uploads/2024/09/밸런스.jpg" alt="" class="wp-image-795" style="width:426px;height:auto"/><figcaption class="wp-element-caption">뭘 고르던 개발자는 죽잔아</figcaption></figure></div>




<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>고가용성 구축 방법</strong></h2>



<p>고가용성 시스템을 구축하는 데에는 몇 가지 일반적인 방법이 있다.</p>



<h3 class="wp-block-heading"><strong>중복성 (Redundancy)</strong></h3>



<p><strong>서버, 네트워크 장비, 데이터 저장소</strong> 등을 다중화하여 하나의 요소에 장애가 발생해도 다른 요소가 대신 처리할 수 있도록 한다.</p>



<h3 class="wp-block-heading"><strong>장애 조치 (Failover)</strong></h3>



<p>한 시스템에 장애가 발생하면 자동으로 대체 시스템으로 전환하는 기능이다. 로드밸런서를 통해 다수의 서버로 트래픽을 분산시켜 특정 서버에 장애가 생겨도 트래픽을 다른 서버로 자동으로 전환할 수 있다.</p>



<h3 class="wp-block-heading"><strong>무중단 유지보수 (Rolling Updates)</strong></h3>



<p>시스템이 가동 중인 상태에서도 소프트웨어 업데이트, 패치 등을 적용할 수 있게 하여 서비스 중단 없이 유지보수를 가능하게 한다.</p>



<h3 class="wp-block-heading"><strong>데이터 복제 및 백업</strong></h3>



<p>중요한 데이터는 여러 곳에 복제하거나 정기적으로 백업하여, 데이터 손실이나 장애에 대비한다. 예를 들어, 데이터베이스는 <strong>Master-Slave 구조</strong>로 복제(Replication)하거나, <strong>분산 파일 시스템</strong>을 사용하여 고가용성을 높일 수 있다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>고려해야 할 요소</strong></h2>



<p>고가용성을 추구할 때는 <strong>프로젝트의 규모</strong>와 <strong>필요성</strong>을 잘 판단하는 것이 중요하다. 모든 시스템에서 고가용성을 최대로 추구할 필요는 없기 때문이다.</p>



<h3 class="wp-block-heading"><strong>프로젝트의 중요성</strong></h3>



<ul class="wp-block-list">
<li>만약 서비스의 장애로 인한 <strong>금전적 손실</strong>이나 <strong>사용자 이탈</strong>이 심각한 경우 고가용성은 매우 중요하다. 예를 들어, <strong>금융 서비스</strong>나 <strong>대규모 전자상거래 사이트</strong>는 몇 분의 다운타임도 큰 손실로 이어질 수 있다. &#8216;다운 타임으로 발생하는 비용이 고가용성을 추구하는데 드는 비용보다 큰가?&#8217; 를 잘 따져봐야 할 것.</li>



<li>반대로 <strong>개발 환경</strong>이나 <strong>내부 시스템</strong>에서는 잠깐의 다운타임이 큰 문제가 되지 않기 때문에 고가용성을 위한 추가 비용과 노력을 들일 필요가 없다.</li>
</ul>



<h3 class="wp-block-heading"><strong>규모에 따른 고려</strong></h3>



<ul class="wp-block-list">
<li>작은 프로젝트나 스타트업 단계에서는 모든 시스템을 고가용성으로 구축하는 것이 <strong>오버스펙</strong>이 될 수 있다. 초기에는 <strong>싱글 서버</strong>나 <strong>단순한 클라우드 인프라</strong>만으로도 충분히 운영 가능하다. 이런 상황에서 고가용성을 과도하게 추구하면 불필요한 <strong>비용과 시간</strong>이 소모된다.</li>



<li>반면 규모가 커지면서 서비스의 <strong>트래픽이 증가</strong>하거나 <strong>사용자가 많아지는 시점</strong>에서는 고가용성을 점진적으로 도입하는 것이 바람직하다. 이때 <strong>로드밸런서, 이중화된 서버, 분산 스토리지</strong> 등의 도입을 고려해야 한다.</li>
</ul>



<p>내가 구축하려는 시스템은 포트폴리오와 지극히 개인적으로 사용할 웹 서비스이다보니 이 부분에 대한 고민이 많아졌다. 고려 지점을 토대로 추구 정도를 결정하게 됐다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>고가용성 추구 정도</strong></h2>



<p>고가용성을 구축할 때는 당연히 <strong>추가적인 시간과 비용</strong>이 들어간다. 내가 진행하는 프로젝트의 규모에 따라 시간과 비용을 어느정도까지 소모 할 것인지 잘 따져봐야 한다.</p>



<h3 class="wp-block-heading"><strong>복잡한 인프</strong>라</h3>



<ul class="wp-block-list">
<li>고가용성을 위해 시스템을 이중화하거나 다중화하면, 인프라 관리가 더 복잡해진다. <strong>Failover 설정, 데이터 복제, 네트워크 구성</strong> 등 다양한 부분을 신경 써야 하기 때문에, 시스템 운영 비용이 증가한다.</li>



<li>특히 다중 노드, 클러스터, 로드밸런서를 관리하려면 <strong>전문 지식</strong>이 필요하고 인프라 설정의 복잡성이 커진다.</li>
</ul>



<h3 class="wp-block-heading"><strong>비용 증가</strong></h3>



<ul class="wp-block-list">
<li>고가용성 시스템을 구축하려면 <strong>추가적인 하드웨어, 클라우드 리소스, 소프트웨어 라이선스</strong>가 필요하다. 예를 들어 여러 대의 서버, 이중화된 네트워크 장비, 스토리지 공간 등을 확보해야 하기 때문에 비용이 크게 증가할 수 있다.</li>



<li>클라우드 환경에서는 <strong>자동 스케일링, 로드밸런서, 데이터 복제 서비스</strong> 등이 추가 비용을 발생시킨다. 규모가 클수록 비용 부담이 커진다.</li>
</ul>



<h3 class="wp-block-heading"><strong>개발 및 배포 속도 저하</strong></h3>



<ul class="wp-block-list">
<li>고가용성 시스템을 유지하면서 새로운 기능을 개발하고 배포하려면 <strong>무중단 배포</strong>를 해야 하고, 이를 위해서는 별도의 배포 전략과 테스트 절차가 필요하다. 이는 개발 속도에 영향을 미치고, 배포 주기가 길어질 수 있다.</li>



<li>또한 시스템 변경 사항을 테스트하기 위해 고가용성 환경에서 테스트 인프라를 추가적으로 구성해야 할 수도 있다. (결국 또 돈)</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>결론</strong></h2>



<p>개인적으로 고민 됐던 것은 이후 노드를 늘리게 되면 다중 마스터노드 구성을 해야할 것 같은데, 처음부터 구성하고 시작할까? 그렇다면 앞단에 로드밸런서가 필요한데? 로드밸런서를 노드 중 1대에 할당한다면 결국 그 노드가 단일 장애 지점(Single Point of Failure, SPOF)이 아닌가? 나중에 추가하려면 일이 더 피곤해지는데? 클라우드에 로드밸런서를 이용할까? 돈 아까운데? 같은 고민의 연속이었다.<br>다녔던 회사에선 비용보단 고가용성에 큰 비중을 뒀기 때문에 너무 큰 비용과 시간 손실이 나지 않는다면 고가용성을 추구했으며 이에 대해 논의 할 사람들이 있었지만 지금은 혼자 모든 결정을 하기 때문에 더 답을 내리기 어려운 것 같다.</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="500" height="500" src="https://blog.kwt.co.kr/wp-content/uploads/2024/09/계획이있구나.jpeg" alt="" class="wp-image-793" style="width:265px;height:auto"/></figure>



<p>결국 내가 내린 결론은 고가용성은 시스템의 안정성과 신뢰성을 보장하지만, 모든 프로젝트에 적용할 필요는 없다. 작은 규모의 프로젝트에서는 고가용성을 과도하게 추구하면 <strong>시간과 비용적인 손해</strong>가 클 수 있으며, 필요 이상으로 복잡해진 인프라를 관리하는 데 어려움이 발생할 수 있다. 따라서 단일 마스터 노드로 구성하고 나중에 생각하는 것으로 결론을 내렸다.</p>
		<div class="wpulike wpulike-robeen " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="Like Button"
					data-ulike-id="792"
					data-ulike-nonce="1c0f6955a2"
					data-ulike-type="post"
					data-ulike-template="wpulike-robeen"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_792"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	<p>The post <a href="https://blog.kwt.co.kr/%ea%b3%a0%ea%b0%80%ec%9a%a9%ec%84%b1/">고가용성 (High Availability, HA)</a> appeared first on <a href="https://blog.kwt.co.kr"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.kwt.co.kr/%ea%b3%a0%ea%b0%80%ec%9a%a9%ec%84%b1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
