<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>CloudOps Archive</title>
    <link>https://psj0514.tistory.com/</link>
    <description>클라우드 인프라를 직접 설계하고 구축하며 배운 것들을 기록하는 블로그</description>
    <language>ko</language>
    <pubDate>Thu, 7 May 2026 23:32:26 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>PARK SEJIN</managingEditor>
    <image>
      <title>CloudOps Archive</title>
      <url>https://tistory1.daumcdn.net/tistory/8430309/attach/92d28a5241b842d4922437a222d74dfd</url>
      <link>https://psj0514.tistory.com</link>
    </image>
    <item>
      <title>CKA (Certified Kubernetes Administrator) 자격증 취득 후기</title>
      <link>https://psj0514.tistory.com/7</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CKA (Certified Kubernetes Administrator) 자격증 취득 후기&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;Kubernetes&lt;/code&gt; &lt;code&gt;CKA&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;취득 배경&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시간이 좀 지났지만 CKA 자격증 후기를 한 번 작성해보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;부트캠프를 다니면서 Kubernetes에 관심을 많이 가지게 됐는데 프로젝트에서 EKS와 GKE를 사용하다 보니 면접에서도 Kubernetes 관련 기술 질문이 꽤 나왔습니다. 솔직히 제대로 답을 못한 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그래서 강의만 보고 넘어가는게 아니라 자격증까지 노려서 확실히 공부하자는 마음으로 시작했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;자격증을 알아보니 CKAD, CKA, CKS가 대표적인데 CKS는 CKA가 있어야 지원 자격이 주어지기 때문에 CKA를 먼저 준비하게 됐습니다.&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;취득 과정&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;공부 방법은 크게 네 가지였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 유데미 강의&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;유데미에서 뭄샤드(Mumshad Mannambeth)의 CKA 강의를 들었습니다. CKA 준비할 때 가장 많이 추천되는 강사라서 선택했고 기본적인 내용을 잘 담고 있어서 열심히 봤습니다.&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778156032615&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Certified Kubernetes Administrator (CKA) with Practice Tests&quot; data-og-description=&quot;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;CKA Certification Course &amp;ndash; Certified Kubernetes Administrator&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Kubernetes is one of the highest trending technology in Cloud Computing as of today. Kubernetes had the fastest growth in job searches, over 173% from a year before, &quot; data-og-host=&quot;www.udemy.com&quot; data-og-source-url=&quot;https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/&quot; data-og-url=&quot;https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bACGXB/dJMb9llbggB/GeO3QeN2T6eAjADvb7jJK0/img.jpg?width=480&amp;amp;height=270&amp;amp;face=299_92_400_202,https://scrap.kakaocdn.net/dn/cN3AqJ/dJMb9dHshvt/pHfSZmEpPwulCh9rKPht11/img.jpg?width=480&amp;amp;height=270&amp;amp;face=299_92_400_202,https://scrap.kakaocdn.net/dn/mXHoh/dJMb8T93Gwm/LnF2KNVeuYSM85RkOzSPF1/img.jpg?width=480&amp;amp;height=270&amp;amp;face=299_92_400_202&quot;&gt;&lt;a href=&quot;https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bACGXB/dJMb9llbggB/GeO3QeN2T6eAjADvb7jJK0/img.jpg?width=480&amp;amp;height=270&amp;amp;face=299_92_400_202,https://scrap.kakaocdn.net/dn/cN3AqJ/dJMb9dHshvt/pHfSZmEpPwulCh9rKPht11/img.jpg?width=480&amp;amp;height=270&amp;amp;face=299_92_400_202,https://scrap.kakaocdn.net/dn/mXHoh/dJMb8T93Gwm/LnF2KNVeuYSM85RkOzSPF1/img.jpg?width=480&amp;amp;height=270&amp;amp;face=299_92_400_202');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Certified Kubernetes Administrator (CKA) with Practice Tests&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;CKA Certification Course &amp;ndash; Certified Kubernetes Administrator&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Kubernetes is one of the highest trending technology in Cloud Computing as of today. Kubernetes had the fastest growth in job searches, over 173% from a year before,&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.udemy.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다만 한글 자막이 가끔 이상하게 번역되어 있는 부분이 있으니 참고하시는 게 좋을 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. Reddit 활용&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Reddit의 CKA 관련 커뮤니티에서 최근 어떤 유형의 문제가 나오는지 동향을 살펴봤습니다. 시험 트렌드를 파악하기 좋아서 틈틈이 참고했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778156598389&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Reddit의 CKAExam 커뮤니티&quot; data-og-description=&quot;CKAExam 커뮤니티에서 이 게시물을 비롯한 다양한 콘텐츠를 살펴보세요&quot; data-og-host=&quot;www.reddit.com&quot; data-og-source-url=&quot;https://www.reddit.com/r/CKAExam/comments/1of3f8o/cka_it_kiddie_questions_killercode_lab_setup/&quot; data-og-url=&quot;https://www.reddit.com/r/CKAExam/comments/1of3f8o/cka_it_kiddie_questions_killercode_lab_setup/?seeker-session=true&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bUwmEQ/dJMb8WeDPTO/RyGEAhBu3OWUZRxHtSqpS0/img.jpg?width=1120&amp;amp;height=584&amp;amp;face=0_0_1120_584,https://scrap.kakaocdn.net/dn/bAGbDj/dJMb8UHTi6r/bI1WwYseDSIf0nrhdrGOcK/img.jpg?width=1120&amp;amp;height=584&amp;amp;face=0_0_1120_584&quot;&gt;&lt;a href=&quot;https://www.reddit.com/r/CKAExam/comments/1of3f8o/cka_it_kiddie_questions_killercode_lab_setup/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.reddit.com/r/CKAExam/comments/1of3f8o/cka_it_kiddie_questions_killercode_lab_setup/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bUwmEQ/dJMb8WeDPTO/RyGEAhBu3OWUZRxHtSqpS0/img.jpg?width=1120&amp;amp;height=584&amp;amp;face=0_0_1120_584,https://scrap.kakaocdn.net/dn/bAGbDj/dJMb8UHTi6r/bI1WwYseDSIf0nrhdrGOcK/img.jpg?width=1120&amp;amp;height=584&amp;amp;face=0_0_1120_584');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Reddit의 CKAExam 커뮤니티&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;CKAExam 커뮤니티에서 이 게시물을 비롯한 다양한 콘텐츠를 살펴보세요&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.reddit.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. KillerCoda 실습&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Killercoda에 CKAD, CKA, CKS 문제 시나리오들이 올라와 있습니다. 이걸 토대로 공부하고 Playground에 가서 CKA 문제를 &lt;code&gt;git clone&lt;/code&gt;해서 직접 풀어봤습니다.&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778156165130&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;CKA Certified Kubernetes Administrator | Killercoda&quot; data-og-description=&quot;Scenarios for CKA Certified Kubernetes Administrator&quot; data-og-host=&quot;killercoda.com&quot; data-og-source-url=&quot;https://killercoda.com/cka&quot; data-og-url=&quot;https://killercoda.com/cka&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/yndsQ/dJMb9c9B0Gn/fnU9XBnLGPWT4RRlItkSw0/img.png?width=1000&amp;amp;height=500&amp;amp;face=0_0_1000_500,https://scrap.kakaocdn.net/dn/klzfE/dJMb9hC5mXJ/0iJxGkXB7MGJ3UmQ1ttmb1/img.png?width=1000&amp;amp;height=500&amp;amp;face=0_0_1000_500&quot;&gt;&lt;a href=&quot;https://killercoda.com/cka&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://killercoda.com/cka&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/yndsQ/dJMb9c9B0Gn/fnU9XBnLGPWT4RRlItkSw0/img.png?width=1000&amp;amp;height=500&amp;amp;face=0_0_1000_500,https://scrap.kakaocdn.net/dn/klzfE/dJMb9hC5mXJ/0iJxGkXB7MGJ3UmQ1ttmb1/img.png?width=1000&amp;amp;height=500&amp;amp;face=0_0_1000_500');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;CKA Certified Kubernetes Administrator | Killercoda&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Scenarios for CKA Certified Kubernetes Administrator&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;killercoda.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;실제 시험 환경과 비슷하게 터미널에서 직접 작업하는 연습이 되니까 꼭 해보시는 걸 추천합니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4. 유튜브 강의&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;외국 유튜브 강의도 참고했습니다. 저는 &lt;b&gt;Jaydemy&lt;/b&gt;와 &lt;b&gt;IT&lt;/b&gt; &lt;b&gt;Kiddie&lt;/b&gt; 채널을 봤는데 문제 풀이 영상이 실전 감각을 잡는 데 도움이 됐습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;공부하는 데 총 1달 정도 걸린 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778156929295&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;IT Kiddie&quot; data-og-description=&quot;Welcome to IT Kiddie, Your DevOps Hub!  Dive into the world of modern DevOps with in-depth tutorials, hands-on demos, and real-world insights on tools and technologies like Kubernetes, AWS, Linux, GCP, and more. Whether you're just starting your DevOps &quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/@ITKiddie&quot; data-og-url=&quot;https://www.youtube.com/channel/UC9dz0OwF6MAO0XNkjQlmo9w&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/emKhR5/dJMb8Rj5733/hh0dKqxkkzjlc6FjqAG2Q1/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/bzUgOp/dJMb8TCdOXl/FV8e1fWGHKTlcDdKuBQ7XK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/oKb8q/dJMb8SpL6vq/KsSIAq8phTxik3IjMfCKyK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/@ITKiddie&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/@ITKiddie&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/emKhR5/dJMb8Rj5733/hh0dKqxkkzjlc6FjqAG2Q1/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/bzUgOp/dJMb8TCdOXl/FV8e1fWGHKTlcDdKuBQ7XK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/oKb8q/dJMb8SpL6vq/KsSIAq8phTxik3IjMfCKyK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;IT Kiddie&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Welcome to IT Kiddie, Your DevOps Hub!  Dive into the world of modern DevOps with in-depth tutorials, hands-on demos, and real-world insights on tools and technologies like Kubernetes, AWS, Linux, GCP, and more. Whether you're just starting your DevOps&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1778156899391&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;JayDemy&quot; data-og-description=&quot;E-learning platform on Linux, AWS Cloud with DevOps and Real CKA exam questions series&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/@jaydemytech&quot; data-og-url=&quot;https://www.youtube.com/channel/UCmL2MCSnpw2YXY04co2w4iw&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/3u0ke/dJMb8957Lt0/Yk84pp0EV5I2IWwkjIhnNK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/dkeupx/dJMb8Rj573r/wPbHMahO3vK9NcMw97kLK0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/uDbfo/dJMb85vS8Ji/cIYNQuoKkce9EyRYkKEZQ1/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/@jaydemytech&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/@jaydemytech&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/3u0ke/dJMb8957Lt0/Yk84pp0EV5I2IWwkjIhnNK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/dkeupx/dJMb8Rj573r/wPbHMahO3vK9NcMw97kLK0/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/uDbfo/dJMb85vS8Ji/cIYNQuoKkce9EyRYkKEZQ1/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;JayDemy&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;E-learning platform on Linux, AWS Cloud with DevOps and Real CKA exam questions series&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;덤프만 풀어도 합격 자체는 가능할 수 있지만 저의 최종 목표는 Kubernetes를 어느 정도 이해하는 데 초점이 맞춰져 있었기 때문에 강의를 전부 다 들었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시험 후기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시험은 온라인으로 봤고 여권으로 본인 인증을 했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;주변을 웹캠으로 전부 보여줘야 해서 시간이 좀 걸렸습니다. 시험 전에 미리 책상 정리하고 모니터 뒤쪽까지 깔끔하게 해두시는 걸 추천합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;문제 형식 자체는 유튜브에 나오는 것과 거의 동일하니까 조금만 투자하면 충분히 취득할만 한 것 같습니다. 그런데도 불구하고 2시간을 꽉 채워서 시험을 봤으니 &lt;b&gt;시간 분배를 잘하시는 게 중요&lt;/b&gt;합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그리고 시험이 전부 영어로 진행됩니다. 문제 자체가 어려운 영어는 아니지만 헷갈릴 수 있으니 기본적인 영어 독해는 준비하고 가시는 게 좋을 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시험 문제&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;총 &lt;b&gt;16문제&lt;/b&gt;로 진행됐습니다. 제가 봤던 문제 유형을 정리하면 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;height: 515px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;height: 25px;&quot;&gt;
&lt;th style=&quot;height: 25px; width: 67px;&quot;&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;No.&lt;/span&gt;&lt;/p&gt;
&lt;/th&gt;
&lt;th style=&quot;height: 25px; width: 789px;&quot;&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;문제 유형&lt;/span&gt;&lt;/p&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Helm을 사용하여 ArgoCD 설치 / &lt;code&gt;helm template&lt;/code&gt;으로 특정 위치에 파일 생성 및 저장&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기존 Deployment에 sidecar 컨테이너를 추가하여 로그 남기기&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Service에 맞춰서 Ingress 생성&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기존 Ingress를 Gateway와 HTTPRoute로 마이그레이션&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Deployment의 replicas 3개 상태에서 각 Pod에 memory, cpu 리소스 분배&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;StorageClass 생성 후 Deployment에 연결&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;PriorityClass를 사용하여 Deployment에 연결&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;front-end와 back-end Pod가 있는 상태에서, 생성되어 있는 NetworkPolicy 3개 중 하나를 골라 적용&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HPA 생성 후 Deployment와 연결&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 43px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 43px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;10&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 43px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;조건에 맞는 CNI를 골라 &lt;code&gt;kubectl create -f&lt;/code&gt;로 생성&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 43px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 43px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;11&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 43px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;cri-docker 생성 후 conf 파일 설정&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 43px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 43px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;12&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 43px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특정 Pod를 &lt;code&gt;kubectl expose&lt;/code&gt;하여 Service와 연결&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 43px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 43px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;13&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 43px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Secret 파일 수정 후 TLS v1.2 추가&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 43px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 43px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;14&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 43px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;/etc/kubernetes/manifests&lt;/code&gt; 내 &lt;code&gt;kube-apiserver.yaml&lt;/code&gt; 파일에서 잘못된 부분을 찾아 트러블슈팅&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 43px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 43px; width: 67px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;15&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 43px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;kubectl get crd -A&lt;/code&gt;로 특정 이름이 포함된 항목을 추출하여 파일 저장 / &lt;code&gt;kubectl explain&lt;/code&gt;으로 특정 필드를 확인하여 파일 저장&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 43px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 43px; width: 67px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;16&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 43px; width: 789px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;PVC 생성 후 Deployment에 claimName 설정&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시험 결과&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;합격했습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시험 치고 딱 24시간 정도 걸려서 결과가 나왔습니다. 메일로 뱃지와 PDF 파일이 함께 날아옵니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;867&quot; data-origin-height=&quot;729&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3V3bP/dJMcagSYd6Z/EjbxVwTLDMZKfQ6l5cLWXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3V3bP/dJMcagSYd6Z/EjbxVwTLDMZKfQ6l5cLWXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3V3bP/dJMcagSYd6Z/EjbxVwTLDMZKfQ6l5cLWXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3V3bP%2FdJMcagSYd6Z%2FEjbxVwTLDMZKfQ6l5cLWXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;605&quot; data-origin-width=&quot;867&quot; data-origin-height=&quot;729&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;  PDF 파일은 회사 제출용으로 쓸 수 있으니 꼭 저장해두세요.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;앞으로의 계획&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;회사 입사일이 코앞이라 &lt;b&gt;CKAD&lt;/b&gt;까지만 따고 &lt;b&gt;SAP(Solutions Architect - Professional)&lt;/b&gt;로 넘어갈 예정입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CKS&lt;/b&gt;는 입사 후 여유가 생기면 도전할 계획이고, 개인적으로는 &lt;b&gt;Kubestronaut&lt;/b&gt; 칭호를 따는 게 최종 목표입니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Study</category>
      <category>cka</category>
      <category>Kubernetes</category>
      <category>시험</category>
      <category>자격증</category>
      <category>쿠버네티스</category>
      <category>후기</category>
      <author>PARK SEJIN</author>
      <guid isPermaLink="true">https://psj0514.tistory.com/7</guid>
      <comments>https://psj0514.tistory.com/7#entry7comment</comments>
      <pubDate>Thu, 7 May 2026 21:34:06 +0900</pubDate>
    </item>
    <item>
      <title>AWS Solution Architect - Associate (SAA-C03) 취득 후기</title>
      <link>https://psj0514.tistory.com/6</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;AWS Solutions Architect - Associate (SAA-C03)&amp;nbsp;자격증 취득 후기&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;AWS&lt;/code&gt; &lt;code&gt;SAA-C03&lt;/code&gt;&amp;nbsp;&lt;code&gt;Solutions Architect&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;취득 배경&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이번에 AWS Solutions Architect - Associate 자격증을 따게 됐습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클라우드 엔지니어 부트캠프에서 SAA 시험비를 지원해줘서 도전하게 됐고 추후 클라우드 엔지니어로 취업하려면 기본적인 자격증은 있어야 한다고 생각했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;근데 제일 큰 이유는 따로 있었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;프로젝트를 할 때 리딩할 사람이 필요했는데 AWS 서비스에 대한 이해도가 높은 사람이 필요했습니다. 비전공자 팀원도 있다 보니 그냥 제가 먼저 따서 정리한 내용을 팀원들과 공유하자는 마음으로 시작하게 됐습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;부트캠프의 단점이라고 하면 본인이 직접 설계하고 구축했다고 해도 기본적인 서비스 이해도가 없으면 발표 때 Q&amp;amp;A에서 제대로 대답을 못한다고 생각했습니다. 그리고 나중에 포트폴리오를 만들어서 면접에 간다고 해도 제대로 설명을 못할 게 뻔했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;솔직히 신입이 부트캠프에서 배운 걸로 얼마나 잘할까요.. 이 정도 자격증이라도 있어야 &quot;그래도 놀진 않았구나&quot; 하면서 서류 통과가 될 거라고 생각했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;취득 과정&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;공부 방법은 크게 두 가지였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 유데미 강의&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;유데미에서 유명한 Stephane Maarek의 SAA 강의를 들었습니다. 자주 할인하길래 2만원 정도에 사서 봤는데 강의 시간이 길긴 하지만 내용이 알차서 돈이 아깝지 않았습니다.&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778137326546&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;【한글자막】 AWS Certified Solutions Architect Associate시험합격! 2025&quot; data-og-description=&quot;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;[2023년 3월]: &amp;lt;/strong&amp;gt;AWS UI 변경 및 시험 내용 변경에 맞춰 강의 내용이 업데이트 되었습니다! (&amp;lt;strong&amp;gt;SAA-C03)&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;AWS 초보도 &amp;lt;/strong&amp;gt;학습할 수 있는 친절한 강의!&amp;lt;&quot; data-og-host=&quot;www.udemy.com&quot; data-og-source-url=&quot;https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/&quot; data-og-url=&quot;https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bFjGVa/dJMb8Xkjt8y/trtr0lklldpmSpoVM3cNuK/img.jpg?width=480&amp;amp;height=270&amp;amp;face=267_60_341_141,https://scrap.kakaocdn.net/dn/c8OKdH/dJMb8VNzAAI/l8qop9TsyMtitKjH5KMDfk/img.jpg?width=480&amp;amp;height=270&amp;amp;face=267_60_341_141,https://scrap.kakaocdn.net/dn/bO8FHt/dJMb84qcKxb/WZnTzyZxjj2tiNeYZMuuz0/img.jpg?width=480&amp;amp;height=270&amp;amp;face=267_60_341_141&quot;&gt;&lt;a href=&quot;https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bFjGVa/dJMb8Xkjt8y/trtr0lklldpmSpoVM3cNuK/img.jpg?width=480&amp;amp;height=270&amp;amp;face=267_60_341_141,https://scrap.kakaocdn.net/dn/c8OKdH/dJMb8VNzAAI/l8qop9TsyMtitKjH5KMDfk/img.jpg?width=480&amp;amp;height=270&amp;amp;face=267_60_341_141,https://scrap.kakaocdn.net/dn/bO8FHt/dJMb84qcKxb/WZnTzyZxjj2tiNeYZMuuz0/img.jpg?width=480&amp;amp;height=270&amp;amp;face=267_60_341_141');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;【한글자막】 AWS Certified Solutions Architect Associate시험합격! 2025&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;[2023년 3월]: &amp;lt;/strong&amp;gt;AWS UI 변경 및 시험 내용 변경에 맞춰 강의 내용이 업데이트 되었습니다! (&amp;lt;strong&amp;gt;SAA-C03)&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;AWS 초보도 &amp;lt;/strong&amp;gt;학습할 수 있는 친절한 강의!&amp;lt;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.udemy.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;강의에서 나온 내용은 노션에 정리해서 주기적으로 복습했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 덤프 문제 풀기&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;덤프 문제는 같이 부트캠프를 하시는 분이 가지고 있는 자료를 사용했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그리고 따로 찾아본 블로그가 하나 있는데 매주 문제를 몇 개씩 올려주셔서 풀어봤습니다. 밑에 해설도 있어서 도움이 많이 됐습니다.&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778137351557&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;N(e)xtCloud&quot; data-og-description=&quot;Cloud/Msp/AWS 및 Big Data에 빠져삽니다.&quot; data-og-host=&quot;pacloud.tistory.com&quot; data-og-source-url=&quot;https://pacloud.tistory.com/&quot; data-og-url=&quot;https://pacloud.tistory.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ekZlFH/dJMb8T93DYM/F0Koz66iKI9OW7VCA2dsDK/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/ecAQfb/dJMb87N0EmM/FxCg6jbxUH0oM4c3KugjVk/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/dHpBGF/dJMb87N0EmL/sE9Pip4OAGYxDjT36QOywk/img.png?width=230&amp;amp;height=300&amp;amp;face=0_0_230_300&quot;&gt;&lt;a href=&quot;https://pacloud.tistory.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pacloud.tistory.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ekZlFH/dJMb8T93DYM/F0Koz66iKI9OW7VCA2dsDK/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/ecAQfb/dJMb87N0EmM/FxCg6jbxUH0oM4c3KugjVk/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/dHpBGF/dJMb87N0EmL/sE9Pip4OAGYxDjT36QOywk/img.png?width=230&amp;amp;height=300&amp;amp;face=0_0_230_300');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;N(e)xtCloud&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Cloud/Msp/AWS 및 Big Data에 빠져삽니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pacloud.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;부트캠프 다니면서 저녁에 공부한 거라 총 1달 정도 걸린 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시험 후기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시험은 오프라인으로 봤습니다. 온라인으로 보면 애로사항이 많을 것 같아서 직접 가는 쪽을 선택했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;구로에서 시험을 봤고 시험 시간이 2시간이 넘다 보니 &lt;b&gt;화장실은 미리 가시는 걸 추천&lt;/b&gt;합니다. 준비물은 여권만 들고 갔고 따로 필요한 건 없었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시험 문제는 덤프와 비슷한 유형이었지만 &lt;b&gt;아예 똑같은 문제는 20~30%도 안 됐습니다.&lt;/b&gt; 그러니까 이론적인 부분을 잘 숙지해서 가실 필요가 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;물론 덤프만 계속 풀어도 합격 자체는 가능할 수 있지만 나중에 면접에서 제대로 알지 못해서 헛소리하는 것보다는 차라리 강의를 끝까지 보고 확실히 이해하고 있는 게 편합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그리고 지금 Solutions Architect - Professional을 공부 중인데 SAA에서 다뤘던 내용이 더 고도화돼서 나옵니다. 덤프만 주구장창 풀어서 합격한다고 한들 이론을 모르면 SAP 문제를 제대로 풀 수가 없을 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시험 결과&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;합격했습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시험 치고 다음날 오후 8시 넘어서 합격 문자가 날아왔습니다. 합격하면 메일로 뱃지와 PDF 파일이 함께 옵니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yUN5i/dJMb990DjWx/tY84gKxQ8O58y3JXIWi6h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yUN5i/dJMb990DjWx/tY84gKxQ8O58y3JXIWi6h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yUN5i/dJMb990DjWx/tY84gKxQ8O58y3JXIWi6h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyUN5i%2FdJMb990DjWx%2FtY84gKxQ8O58y3JXIWi6h1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;323&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;412&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;  PDF 파일은 나중에 회사에 제출할 일이 있으니 잘 저장해두세요.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;앞으로의 계획&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;현재 Solutions Architect - Professional을 공부 중에 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;지금 MSP 회사로 입사 예정인데 회사에서 AWS 자격증 시험 비용을 지원해줘서 &lt;b&gt;SAP&lt;/b&gt;과 &lt;b&gt;DOP&lt;/b&gt; 자격증도 딸 계획입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그리고 최근 &lt;b&gt;CKAD&lt;/b&gt; 자격증 시험을 봤는데 그 후기와 함께 &lt;b&gt;CKA&lt;/b&gt; 자격증도 미리 따놔서 관련 블로그 글도 작성할 예정입니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Study</category>
      <category>Amazon</category>
      <category>associate</category>
      <category>AWS</category>
      <category>SAA</category>
      <category>saa-co3</category>
      <category>Solution Architect</category>
      <category>시험</category>
      <category>자격증</category>
      <category>취득</category>
      <category>후기</category>
      <author>PARK SEJIN</author>
      <guid isPermaLink="true">https://psj0514.tistory.com/6</guid>
      <comments>https://psj0514.tistory.com/6#entry6comment</comments>
      <pubDate>Thu, 7 May 2026 15:51:17 +0900</pubDate>
    </item>
    <item>
      <title>AWS CUR 기반 비용 시각화 파이프라인 구현</title>
      <link>https://psj0514.tistory.com/5</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;AWS CUR 기반 비용 시각화 파이프라인 구현&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;리소스 사용 증가나 예상치 못한 비용 폭증을 빠르게 감지하기 위해&lt;br /&gt;AWS CUR &amp;rarr; S3 &amp;rarr; Glue &amp;rarr; Athena &amp;rarr; Grafana로 이어지는 비용 시각화 파이프라인을 구축한 과정을 정리&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;AWS CUR&lt;/code&gt; &lt;code&gt;S3&lt;/code&gt; &lt;code&gt;Glue Crawler&lt;/code&gt; &lt;code&gt;Athena&lt;/code&gt; &lt;code&gt;Grafana&lt;/code&gt; &lt;code&gt;IAM Role&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 왜 비용 시각화 파이프라인이 필요한가?&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;AWS 콘솔의 Billing Dashboard나 Cost Explorer도 비용 확인에 쓸 수 있지만 몇 가지 한계가 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;갱신 지연&lt;/b&gt; &amp;mdash; Cost Explorer는 최대 24~48시간 지연이 발생할 수 있어 당일 비용 급증을 즉시 파악하기 어렵습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;커스텀 대시보드 한계&lt;/b&gt; &amp;mdash; 리소스별 비용 분포, 일별 누적 추이 등을 원하는 형태로 조합하려면 별도 시각화 도구가 필요합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;운영 대시보드와의 통합&lt;/b&gt; &amp;mdash; 인프라 모니터링(Prometheus + Grafana)과 비용 모니터링을 하나의 Grafana에서 함께 보면 운영 판단이 훨씬 빨라집니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이런 이유로 AWS CUR(Cost and Usage Report)을 데이터 소스로 활용하고 Glue + Athena로 쿼리 가능한 상태를 만든 뒤 Grafana로 시각화하는 파이프라인을 설계했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 파이프라인 아키텍처&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;전체 데이터 흐름은 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o5FCm/dJMcaayqrhQ/k2wPX2gAx5aw1iLKWJsRGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o5FCm/dJMcaayqrhQ/k2wPX2gAx5aw1iLKWJsRGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o5FCm/dJMcaayqrhQ/k2wPX2gAx5aw1iLKWJsRGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo5FCm%2FdJMcaayqrhQ%2Fk2wPX2gAx5aw1iLKWJsRGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;150&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;구성 요소&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;역할&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;AWS CUR&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;매일 00:00에 계정의 전체 비용&amp;middot;사용량 데이터를 CSV/Parquet 형식으로 생성&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;S3&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CUR 리포트 원본 파일을 저장하는 데이터 레이크 역할&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Glue Crawler&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;S3에 저장된 CUR 파일을 크롤링하여 테이블 스키마를 자동으로 추출&amp;middot;갱신&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Athena&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Glue 카탈로그 기반으로 S3 데이터를 SQL로 쿼리 (서버리스)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Grafana&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Athena를 데이터소스로 연결하여 비용 대시보드 시각화&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. 구축 과정&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3-1. CUR(Cost and Usage Report) 설정&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;AWS Billing 콘솔에서 CUR을 생성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Report name&lt;/b&gt; &amp;mdash; 식별 가능한 이름 지정 (예: &lt;code&gt;daily-cost-report&lt;/code&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Time granularity&lt;/b&gt; &amp;mdash; &lt;code&gt;Daily&lt;/code&gt; (일별 비용 추이 확인 목적)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Report data integration&lt;/b&gt; &amp;mdash; &lt;code&gt;Amazon Athena&lt;/code&gt; 선택 (Parquet 포맷 + Athena 통합 자동 구성)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;S3 bucket&lt;/b&gt; &amp;mdash; 리포트가 저장될 전용 버킷 지정&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  Athena 통합을 선택하면&lt;br /&gt;CUR이 Parquet 포맷으로 생성되고 S3 경로에 Athena용 CloudFormation 템플릿(crawler-cfn.yml)이 함께 제공됩니다. 이 템플릿을 활용하면 Glue Crawler와 데이터베이스를 자동으로 구성할 수 있습니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CUR은 설정 후 첫 리포트가 생성되기까지 최대 24시간이 소요될 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이후부터는 매일 00:00(KST)에 자동으로 S3에 새 데이터가 적재됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3-2. S3 버킷 구조&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CUR이 S3에 저장되면 아래와 같은 경로 구조가 만들어집니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;s3://&amp;lt;BUCKET_NAME&amp;gt;/&amp;lt;PREFIX&amp;gt;/&amp;lt;REPORT_NAME&amp;gt;/
  ├── &amp;lt;REPORT_NAME&amp;gt;-00001.snappy.parquet
  ├── &amp;lt;REPORT_NAME&amp;gt;-00002.snappy.parquet
  ├── ...
  └── crawler-cfn.yml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Parquet 포맷은 CSV 대비 파일 크기가 작고 Athena 쿼리 성능이 훨씬 빠릅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;비용 데이터가 누적되면 스캔량 차이가 곧 Athena 비용 차이로 이어지므로 Parquet 선택을 권장합니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3-3. Glue Crawler 설정&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Glue Crawler가 S3의 CUR 데이터를 크롤링하여 Athena에서 쿼리 가능한 테이블을 생성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Data source&lt;/b&gt; &amp;mdash; CUR이 저장된 S3 경로 지정&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Database&lt;/b&gt; &amp;mdash; Athena에서 사용할 데이터베이스 이름 지정 (예: &lt;code&gt;cur_database&lt;/code&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Schedule&lt;/b&gt; &amp;mdash; CUR 갱신 주기에 맞춰 일 1회 실행 (예: 매일 01:00 KST, CUR 생성 후 1시간 여유)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Crawler가 실행되면 S3의 Parquet 파일 구조를 분석해서 컬럼명, 데이터 타입 등의 스키마를 자동으로 Glue Data Catalog에 등록합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이후 CUR 구조가 변경되더라도 Crawler가 재실행되면 스키마가 자동으로 갱신됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3-4. Athena 쿼리 확인&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Glue Crawler가 정상 실행되면 Athena 콘솔에서 바로 SQL 쿼리를 실행할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;-- 일별 총 비용 확인
SELECT
  DATE(line_item_usage_start_date) AS usage_date,
  ROUND(SUM(line_item_unblended_cost), 2) AS daily_cost
FROM cur_database.cost_report
WHERE line_item_line_item_type = 'Usage'
GROUP BY DATE(line_item_usage_start_date)
ORDER BY usage_date DESC
LIMIT 30;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;-- 리소스(서비스)별 비용 분포
SELECT
  line_item_product_code AS service,
  ROUND(SUM(line_item_unblended_cost), 2) AS total_cost
FROM cur_database.cost_report
WHERE line_item_line_item_type = 'Usage'
  AND DATE(line_item_usage_start_date) = CURRENT_DATE - INTERVAL '1' DAY
GROUP BY line_item_product_code
ORDER BY total_cost DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;✅ Athena 비용 팁&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Athena는 스캔한 데이터량 기준으로 과금됩니다(1TB당 $5)&lt;br /&gt;Parquet 포맷을 사용하면 필요한 컬럼만 읽어 스캔량을 대폭 줄일 수 있고 WHERE 절로 날짜 범위를 제한하면 추가로 비용을 절감할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3-5. IAM Role 생성 및 Grafana 연동&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Grafana에서 Athena 데이터소스에 접근하려면 적절한 권한을 가진 IAM Role이 필요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;IAM Policy 주요 권한:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;json&quot;&gt;&lt;code&gt;{
  &quot;Version&quot;: &quot;2012-10-17&quot;,
  &quot;Statement&quot;: [
    {
      &quot;Effect&quot;: &quot;Allow&quot;,
      &quot;Action&quot;: [
        &quot;athena:GetQueryExecution&quot;,
        &quot;athena:GetQueryResults&quot;,
        &quot;athena:StartQueryExecution&quot;,
        &quot;athena:StopQueryExecution&quot;
      ],
      &quot;Resource&quot;: &quot;*&quot;
    },
    {
      &quot;Effect&quot;: &quot;Allow&quot;,
      &quot;Action&quot;: [
        &quot;glue:GetTable&quot;,
        &quot;glue:GetDatabase&quot;,
        &quot;glue:GetPartitions&quot;
      ],
      &quot;Resource&quot;: &quot;*&quot;
    },
    {
      &quot;Effect&quot;: &quot;Allow&quot;,
      &quot;Action&quot;: [
        &quot;s3:GetObject&quot;,
        &quot;s3:ListBucket&quot;,
        &quot;s3:GetBucketLocation&quot;,
        &quot;s3:PutObject&quot;
      ],
      &quot;Resource&quot;: [
        &quot;arn:aws:s3:::&amp;lt;CUR_BUCKET_NAME&amp;gt;&quot;,
        &quot;arn:aws:s3:::&amp;lt;CUR_BUCKET_NAME&amp;gt;/*&quot;,
        &quot;arn:aws:s3:::&amp;lt;ATHENA_RESULTS_BUCKET&amp;gt;&quot;,
        &quot;arn:aws:s3:::&amp;lt;ATHENA_RESULTS_BUCKET&amp;gt;/*&quot;
      ]
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;IAM Role을 생성한 뒤 Grafana의 Athena 데이터소스 설정에서 &lt;b&gt;Assume Role ARN&lt;/b&gt;에 해당 Role의 ARN을 입력합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;S3 권한에는 CUR 원본 버킷뿐 아니라 Athena 쿼리 결과가 저장되는 버킷(보통 &lt;code&gt;aws-athena-query-results-*&lt;/code&gt;)도 포함해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3-6. Grafana 대시보드 구성&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Athena 데이터소스가 연결되면 SQL 쿼리를 기반으로 세 가지 핵심 패널을 구성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;① Daily Cost (일별 비용 추이)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일별 총 비용을 Time Series 패널로 표시합니다. 비용이 갑자기 튀는 날이 있으면 한눈에 파악할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;SELECT
  DATE(line_item_usage_start_date) AS time,
  ROUND(SUM(line_item_unblended_cost), 2) AS daily_cost
FROM cur_database.cost_report
WHERE line_item_line_item_type = 'Usage'
GROUP BY DATE(line_item_usage_start_date)
ORDER BY time&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;② Cumulative Cost (월 누적 비용)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;해당 월의 누적 비용을 표시하여 월 예산 대비 현재 소진율을 확인합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
  DATE(line_item_usage_start_date) AS time,
  ROUND(SUM(SUM(line_item_unblended_cost)) OVER (ORDER BY DATE(line_item_usage_start_date)), 2) AS cumulative_cost
FROM cur_database.cost_report
WHERE line_item_line_item_type = 'Usage'
  AND YEAR(line_item_usage_start_date) = YEAR(CURRENT_DATE)
  AND MONTH(line_item_usage_start_date) = MONTH(CURRENT_DATE)
GROUP BY DATE(line_item_usage_start_date)
ORDER BY time&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;③ Resource별 비용 분포 (Pie Chart)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;EC2, EBS, RDS, S3, ELB 등 서비스별 비용 비중을 Pie Chart로 시각화하여 어느 서비스에 비용이 집중되는지 파악합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
  line_item_product_code AS service,
  ROUND(SUM(line_item_unblended_cost), 2) AS total_cost
FROM cur_database.cost_report
WHERE line_item_line_item_type = 'Usage'
  AND DATE(line_item_usage_start_date) &amp;gt;= CURRENT_DATE - INTERVAL '7' DAY
GROUP BY line_item_product_code
HAVING SUM(line_item_unblended_cost) &amp;gt; 0
ORDER BY total_cost DESC&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image (1).png&quot; data-origin-width=&quot;1513&quot; data-origin-height=&quot;589&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbyO1n/dJMcadokKvv/Tkt1swal5ImdSGBVHGGlX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbyO1n/dJMcadokKvv/Tkt1swal5ImdSGBVHGGlX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbyO1n/dJMcadokKvv/Tkt1swal5ImdSGBVHGGlX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbyO1n%2FdJMcadokKvv%2FTkt1swal5ImdSGBVHGGlX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;280&quot; data-filename=&quot;image (1).png&quot; data-origin-width=&quot;1513&quot; data-origin-height=&quot;589&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4. 전체 파이프라인 동작 흐름&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;파이프라인이 구축되면 매일 자동으로 다음 순서로 동작합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;00:00 KST&lt;/b&gt;&amp;nbsp;&amp;mdash; AWS CUR이 전일 비용 데이터를 Parquet 포맷으로 S3에 적재&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;01:00 KST&lt;/b&gt;&amp;nbsp;&amp;mdash; Glue Crawler가 S3를 크롤링하여 Data Catalog 스키마 갱신&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;이후&lt;/b&gt; &amp;mdash; Grafana 대시보드 접속 시 Athena가 최신 데이터를 쿼리하여 시각화&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사람이 개입할 필요 없이 전 과정이 자동으로 돌아갑니다. CUR 데이터가 S3에 쌓이기만 하면 Glue &amp;rarr; Athena &amp;rarr; Grafana 순서로 자동 반영됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5. 성과 정리&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;항목&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;도입 전&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;도입 후&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;비용 확인 방식&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;AWS 콘솔 수동 접속&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Grafana 대시보드 자동 시각화&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;확인 주기&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;필요할 때 수동 확인&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;매일 자동 갱신&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;리소스별 분석&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Cost Explorer에서 수동 필터링&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Pie Chart로 즉시 확인 (EC2, EBS, RDS, S3, ELB 등)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;비용 이상 탐지&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사후 인지&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일별 추이 그래프로 폭증 조기 감지&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;운영 통합&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;비용/인프라 모니터링 분리&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하나의 Grafana에서 통합 관리&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;마무리&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;AWS CUR &amp;rarr; S3 &amp;rarr; Glue &amp;rarr; Athena &amp;rarr; Grafana 파이프라인은 한 번 구축하면 추가 운영 비용 없이(Athena 쿼리 비용 제외) 지속적으로 비용 데이터를 시각화할 수 있는 구조입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특히 이미 인프라 모니터링용 Grafana가 운영 중이라면 Athena 데이터소스만 추가하면 비용 대시보드를 바로 붙일 수 있어서 구축 비용 대비 효과가 큽니다. 일별 비용 추이와 리소스별 분포를 한눈에 확인할 수 있게 되면 예상치 못한 비용 폭증을 조기에 감지하고 빠르게 대응할 수 있습니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Project</category>
      <category>Athena</category>
      <category>AWS</category>
      <category>CUR</category>
      <category>Glue</category>
      <category>Grafana</category>
      <category>Prometheus</category>
      <category>S3</category>
      <category>모니터링</category>
      <category>비용</category>
      <author>PARK SEJIN</author>
      <guid isPermaLink="true">https://psj0514.tistory.com/5</guid>
      <comments>https://psj0514.tistory.com/5#entry5comment</comments>
      <pubDate>Mon, 4 May 2026 21:53:05 +0900</pubDate>
    </item>
    <item>
      <title>Prometheus + Grafana 모니터링 &amp;amp; Slack 알람 구축</title>
      <link>https://psj0514.tistory.com/3</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;AWS 환경에 Prometheus + Grafana 모니터링 &amp;amp; Slack 알람 구축&lt;/span&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CloudWatch 기본 지표만으로는 부족했던 모니터링을 Prometheus&amp;middot;Grafana로 강화&lt;br /&gt;Slack 알람과 메트릭 필터링까지 적용한 과정 정리&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;Prometheus&lt;/code&gt; &lt;code&gt;Node Exporter&lt;/code&gt; &lt;code&gt;Grafana Cloud&lt;/code&gt; &lt;code&gt;Slack Webhook&lt;/code&gt; &lt;code&gt;AWS EC2&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 왜 Prometheus + Grafana인가?&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;AWS CloudWatch는 기본적인 인스턴스 지표(CPU Utilization, NetworkIn/Out 등)를 제공하지만 메모리 사용률이나 파일시스템 용량 같은 OS 레벨의 상세 지표는 기본 제공하지 않습니다. CloudWatch Agent를 추가 설치하면 수집 자체는 가능하지만 커스텀 대시보드 구성의 유연성이나 PromQL 같은 강력한 쿼리 언어를 활용한 분석에는 한계가 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 프로젝트에서는 CPU&amp;middot;메모리&amp;middot;파일시스템&amp;middot;네트워크 등 세밀한 지표를 초 단위로 수집하고 유연한 대시보드로 시각화하기 위해 Prometheus + Grafana 조합을 선택했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 모니터링 아키텍처&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;전체 데이터 흐름은 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;309&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ep1Gvb/dJMcafmbZDL/1Zl18zdLVdVZkMfpLBFo1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ep1Gvb/dJMcafmbZDL/1Zl18zdLVdVZkMfpLBFo1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ep1Gvb/dJMcafmbZDL/1Zl18zdLVdVZkMfpLBFo1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fep1Gvb%2FdJMcafmbZDL%2F1Zl18zdLVdVZkMfpLBFo1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;316&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;309&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;height: 86px;&quot; data-ke-align=&quot;alignCenter&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;height: 23px;&quot;&gt;
&lt;th style=&quot;height: 23px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;구성 요소&lt;/span&gt;&lt;/th&gt;
&lt;th style=&quot;height: 23px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;역할&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Node Exporter&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;각 EC2에서 OS 레벨 메트릭(CPU, 메모리, 디스크, 네트워크)을 HTTP 엔드포인트로 노출&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Prometheus&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Node Exporter의 &lt;code&gt;/metrics&lt;/code&gt; 엔드포인트를 주기적으로 scrape하여 시계열 데이터로 저장&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Grafana&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Prometheus를 데이터소스로 연결해 대시보드 패널로 시각화&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;3. 구축 과정&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3-1. Node Exporter 설치&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모니터링이 필요한 모든 EC2 인스턴스에 Node Exporter를 설치합니다. 기본 포트는 &lt;code&gt;9100&lt;/code&gt;이며 systemd 서비스로 등록하여 인스턴스 재시작 시에도 자동 실행되도록 구성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;# Node Exporter 다운로드 및 설치
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz
tar xvfz node_exporter-1.8.1.linux-amd64.tar.gz
sudo mv node_exporter-1.8.1.linux-amd64/node_exporter /usr/local/bin/

# systemd 서비스 등록
sudo tee /etc/systemd/system/node_exporter.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정상 동작 확인은 &lt;code&gt;curl http://localhost:9100/metrics&lt;/code&gt;로 메트릭이 출력되는지 확인하면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3-2. Prometheus 설치 및 설정&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Prometheus 서버에서 각 Node Exporter를 scrape 대상으로 등록합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;haml&quot;&gt;&lt;code&gt;# prometheus.yml
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets:
          - '&amp;lt;WEB_SERVER_1_IP&amp;gt;:9100'
          - '&amp;lt;WEB_SERVER_2_IP&amp;gt;:9100'
          - '&amp;lt;WAS_SERVER_1_IP&amp;gt;:9100'
          - '&amp;lt;WAS_SERVER_2_IP&amp;gt;:9100'&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;  CloudWatch와의 차이&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;scrape_interval: 15s로 설정하면 15초마다 각 타겟의 메트릭을 수집합니다. CloudWatch 기본 5분 간격과 비교하면 훨씬 세밀한 모니터링이 가능합니다.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3-3. Grafana 대시보드 구성&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Grafana에서 Prometheus를 데이터소스로 추가한 뒤 &lt;b&gt;Node Exporter Full 대시보드(Dashboard ID: 1860)&lt;/b&gt;를 import하면 CPU, 메모리, 디스크 I/O, 네트워크 트래픽 등을 한눈에 확인할 수 있는 대시보드가 바로 구성됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image (1).png&quot; data-origin-width=&quot;688&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oQe2Y/dJMcahYAH6s/WtcnX7pe6oQpceK54xGv91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oQe2Y/dJMcahYAH6s/WtcnX7pe6oQpceK54xGv91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oQe2Y/dJMcahYAH6s/WtcnX7pe6oQpceK54xGv91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoQe2Y%2FdJMcahYAH6s%2FWtcnX7pe6oQpceK54xGv91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;424&quot; data-filename=&quot;image (1).png&quot; data-origin-width=&quot;688&quot; data-origin-height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image (2).png&quot; data-origin-width=&quot;1483&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VIpyM/dJMcaiiTbFq/7QPbbfKdbR8rioLlSpxRmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VIpyM/dJMcaiiTbFq/7QPbbfKdbR8rioLlSpxRmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VIpyM/dJMcaiiTbFq/7QPbbfKdbR8rioLlSpxRmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVIpyM%2FdJMcaiiTbFq%2F7QPbbfKdbR8rioLlSpxRmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;282&quot; data-filename=&quot;image (2).png&quot; data-origin-width=&quot;1483&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;4. Slack 실시간 알람 체계 구축&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모니터링 지표가 확보되었으니 다음 단계는 이상 징후 발생 시 즉각 알림을 받는 것입니다. 도입 전에는 장애를 인지하기까지 평균 10분 정도 걸렸는데 이를 개선하기 위해 Grafana Alert Rules와 Slack Webhook을 연동했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4-1. Alert Rule 설정&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CPU 사용률이 50%를 초과하면 알람이 발생하도록 PromQL 기반 Alert Rule을 작성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;basic&quot;&gt;&lt;code&gt;100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=&quot;idle&quot;}[5m])) * 100)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 쿼리는 최근 5분간 idle 상태로 보낸 CPU 시간의 초당 변화율을 구한 뒤 100에서 빼서 실제 CPU 사용률(%)을 계산합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;node_cpu_seconds_total{mode=&quot;idle&quot;}&lt;/code&gt; &amp;mdash; CPU가 idle 상태로 소비한 누적 시간(초)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;rate(...[5m])&lt;/code&gt; &amp;mdash; 최근 5분간 초당 변화율 (0~1 사이 값)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;avg by (instance)&lt;/code&gt; &amp;mdash; 멀티코어 환경에서 인스턴스별 평균&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;100 - (... * 100)&lt;/code&gt; &amp;mdash; idle 비율을 사용률로 변환&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4-2. Notification Template&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;알람 메시지가 한눈에 들어오도록 커스텀 Go Template을 작성했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;coq&quot;&gt;&lt;code&gt;{{ define &quot;cpu_alert&quot; }}
{{ if gt (len .Alerts.Firing) 0 }}

{{ range .Alerts.Firing }}
*Server :* {{ .Labels.instance | reReplaceAll &quot;:.*&quot; &quot;&quot; }}
*Usage :* {{ index .Values &quot;A&quot; | printf &quot;%.1f&quot; }}%
*Threshold :* 50%
*Time :* {{ .StartsAt.Add 32400000000000 | date &quot;2006-01-02 15:04:05&quot; }} KST
{{ end }}
{{ end }}
{{ end }}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;템플릿 주요 포인트:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;code&gt;reReplaceAll &quot;:.*&quot; &quot;&quot;&lt;/code&gt;&lt;/b&gt; &amp;mdash; 인스턴스 주소에서 포트 번호(&lt;code&gt;:9100&lt;/code&gt;)를 제거하여 IP만 표시합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;code&gt;index .Values &quot;A&quot;&lt;/code&gt;&lt;/b&gt; &amp;mdash; Alert Rule에서 정의한 쿼리(A)의 현재 값을 가져옵니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;code&gt;.StartsAt.Add 32400000000000&lt;/code&gt;&lt;/b&gt; &amp;mdash; UTC 시간에 9시간(나노초 단위)을 더해 KST로 변환합니다. Grafana Alert 시간은 기본 UTC이므로 이 처리가 필요합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4-3. Slack 알람 결과&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Alert Rule의 Threshold 조건이 충족되면 Slack 채널에 아래와 같은 메시지가 즉시 전송됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image (3).png&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;523&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b70Abr/dJMcajou0Ob/AxAAf1L8yIjOArtSYABhz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b70Abr/dJMcajou0Ob/AxAAf1L8yIjOArtSYABhz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b70Abr/dJMcajou0Ob/AxAAf1L8yIjOArtSYABhz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb70Abr%2FdJMcajou0Ob%2FAxAAf1L8yIjOArtSYABhz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;357&quot; height=&quot;523&quot; data-filename=&quot;image (3).png&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;523&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;5. 성과 정리&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;table style=&quot;height: 128px;&quot; data-ke-align=&quot;alignCenter&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;height: 23px;&quot;&gt;
&lt;th style=&quot;height: 23px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;항목&lt;/span&gt;&lt;/th&gt;
&lt;th style=&quot;height: 23px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;도입 전&lt;/span&gt;&lt;/th&gt;
&lt;th style=&quot;height: 23px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;도입 후&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;수집 가능 지표&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CloudWatch 기본 (CPU Utilization 등)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CPU, 메모리, 파일시스템, 네트워크 상세 메트릭&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;수집 간격&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5분 (CloudWatch 기본)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;15초 (Prometheus scrape_interval)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대시보드&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CloudWatch 콘솔&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Grafana 커스텀 대시보드&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;장애 감지&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;평균 약 10분&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5분 이내&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;알림 체계&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;없음 (수동 확인)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Slack 실시간 알람 자동 발송&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;6. Grafana Cloud 메트릭 필터링으로 비용 최적화&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Prometheus를 로컬에서 운영하면 스토리지 비용만 고려하면 되지만 Grafana Cloud로 Remote Write하는 경우 무료 티어의 Active Series 제한(10,000 시리즈)을 의식해야 합니다. Node Exporter는 기본적으로 수백 개의 메트릭을 노출하는데, 인스턴스 수가 늘어나면 시리즈 수가 금방 한계에 도달합니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6-1. 문제 상황&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;  Rate Limit 초과&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;EC2 인스턴스 4대에 Node Exporter를 설치하고 모든 메트릭을 Grafana Cloud로 전송하니 무료 티어의 rate limit에 걸려 데이터가 누락되기 시작했습니다. 실제로 대시보드와 알림에 사용하는 메트릭은 전체의 일부에 불과한데, 불필요한 메트릭까지 전부 전송하고 있었던 것이 원인이었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6-2. 필터링 전략&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Prometheus에서 메트릭을 필터링할 수 있는 단계는 크게 세 가지입니다.&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;code&gt;relabel_configs&lt;/code&gt;&lt;/b&gt; &amp;mdash; scrape 전 타겟 자체를 선택/제외하는 단계&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;code&gt;metric_relabel_configs&lt;/code&gt;&lt;/b&gt; &amp;mdash; scrape 후 로컬 저장 전 메트릭을 필터링하는 단계&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;code&gt;write_relabel_configs&lt;/code&gt; &amp;larr; 이번에 사용&lt;/b&gt; &amp;mdash; Remote Write 전 외부 전송 대상 메트릭을 필터링하는 단계. 로컬에는 전체 데이터를 유지하면서 비용이 발생하는 구간에서만 필터링합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6-3. 실제 적용 설정&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대시보드(Node Exporter Dashboard EN 20201010-StarsL)와 Alert Rule에서 실제로 참조하는 메트릭만 allowlist 방식으로 유지했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;gherkin&quot;&gt;&lt;code&gt;# prometheus.yml &amp;mdash; remote_write
remote_write:
  - url: '&amp;lt;GRAFANA_CLOUD_REMOTE_WRITE_URL&amp;gt;'
    basic_auth:
      username: '&amp;lt;USER_ID&amp;gt;'
      password: '&amp;lt;API_KEY&amp;gt;'

    write_relabel_configs:
      - source_labels: [__name__]
        regex: '(node_load.*|node_cpu_seconds_total
                |node_memory_.*|node_filesystem_.*
                |node_disk_.*|node_network_.*_bytes_total
                |node_network_.*_packets_total
                |node_netstat_.*|node_sockstat_.*
                |node_filefd_.*|node_context_switches_total
                |node_boot_time_seconds|node_time_seconds
                |node_uname_info|up)'
        action: keep&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;✅ allowlist vs denylist&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;action: keep은 regex에 매칭되는 메트릭만 남기고 나머지를 모두 버리는 allowlist 방식입니다. 반대로 특정 메트릭만 제거하는 action: drop(denylist)도 있지만, 불필요한 메트릭이 추가될 때마다 규칙을 추가해야 하므로 allowlist가 더 안전합니다.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6-4. 타겟 관리 최적화: 단일 Job 통합&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;필터링과 함께 타겟 관리 방식도 정리했습니다. 처음에는 Web, WAS, Bastion을 별도 job으로 분리했는데 job이 늘어날수록 설정 파일 관리가 복잡해졌습니다. 이를 단일 job으로 통합하고 EC2 태그 기반의 &lt;code&gt;server_type&lt;/code&gt; 라벨로 구분하는 방식으로 변경했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;yaml&quot;&gt;&lt;code&gt;# prometheus.yml &amp;mdash; scrape_configs
scrape_configs:
  - job_name: 'Project-Server'
    scrape_interval: 60s

    ec2_sd_configs:
      - region: ap-northeast-2
        port: 9100

    relabel_configs:
      - source_labels: [__meta_ec2_instance_state]
        regex: running
        action: keep
      - source_labels: [__meta_ec2_tag_Environment]
        regex: production
        action: keep
      - source_labels: [__meta_ec2_tag_type]
        regex: (web|was|bastion)
        action: keep
      - source_labels: [__meta_ec2_tag_type]
        target_label: server_type&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;code&gt;ec2_sd_configs&lt;/code&gt;를 사용하면 Auto Scaling으로 인스턴스가 추가/제거될 때 &lt;code&gt;static_configs&lt;/code&gt;를 수동으로 수정할 필요 없이 자동으로 타겟이 갱신됩니다. &lt;code&gt;relabel_configs&lt;/code&gt;로 실행 중인 Production 인스턴스만 scrape 대상에 포함시키고, EC2 태그의 &lt;code&gt;type&lt;/code&gt; 값을 &lt;code&gt;server_type&lt;/code&gt; 라벨로 변환하여 Grafana에서 서버 유형별 필터링이 가능하도록 구성했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6-5. 필터링 성과&lt;/span&gt;&lt;/h4&gt;
&lt;table data-ke-align=&quot;alignCenter&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;항목&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;필터링 전&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;필터링 후&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;전송 메트릭&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Node Exporter 전체 (수백 개)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대시보드&amp;middot;알림 필수 메트릭만&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;감소율&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;mdash;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;약 85% 감소&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Rate Limit&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;초과 &amp;rarr; 데이터 누락&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;무료 티어 내 안정 운영&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;로컬 Prometheus&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;전체 메트릭 유지&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;전체 메트릭 유지 (영향 없음)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;마무리&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Prometheus + Grafana 조합은 AWS 환경에서 CloudWatch를 보완하는 강력한 모니터링 스택입니다. Node Exporter를 통해 OS 레벨의 상세 지표를 확보하고 Grafana의 Alert Rules + Slack Webhook으로 실시간 알림까지 구성하면 운영 가시성과 장애 대응 속도를 크게 끌어올릴 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다만 Grafana Cloud 같은 SaaS 기반 백엔드를 사용할 때는 비용과 rate limit을 반드시 고려해야 합니다. &lt;code&gt;write_relabel_configs&lt;/code&gt;로 전송 메트릭을 선별하고 &lt;code&gt;ec2_sd_configs&lt;/code&gt;로 타겟 관리를 자동화하면 비용을 통제하면서도 필요한 가시성은 유지할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Project</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>eks</category>
      <category>Grafana</category>
      <category>Prometheus</category>
      <category>slack</category>
      <category>모니터링</category>
      <author>PARK SEJIN</author>
      <guid isPermaLink="true">https://psj0514.tistory.com/3</guid>
      <comments>https://psj0514.tistory.com/3#entry3comment</comments>
      <pubDate>Mon, 4 May 2026 16:54:28 +0900</pubDate>
    </item>
  </channel>
</rss>