<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Terraform on KSC</title>
		<link>https://sckwon.dev/tags/terraform/</link>
		<description>Recent content in Terraform on KSC</description>
		<generator>Hugo</generator>
		<language>ko-KR</language>
		
		
		
		
			<lastBuildDate>Tue, 18 Aug 2026 13:21:10 +0900</lastBuildDate>
		
			<atom:link href="https://sckwon.dev/tags/terraform/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Terraform 반복문, Lifecycle, Import, CI/CD 자동화 — 심화 패턴</title>
				<link>https://sckwon.dev/posts/terraform-advanced/</link>
				<pubDate>Tue, 18 Aug 2026 13:21:10 +0900</pubDate>
				<guid>https://sckwon.dev/posts/terraform-advanced/</guid>
				<description>&lt;h2 id=&#34;개요&#34;&gt;개요&lt;/h2&gt;&#xA;&lt;p&gt;Terraform 기본 글에서 HCL 문법, Resource, State, Module을 다뤘습니다. 심화에서는 반복문, lifecycle, import, CI/CD 연동을 정리합니다.&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;비슷한 리소스 10개를 어떻게 만들지?&amp;rdquo;, &amp;ldquo;이미 콘솔에서 만든 인프라를 Terraform으로 옮기려면?&amp;rdquo;, &amp;ldquo;팀에서 안전하게 apply 하려면?&amp;rdquo; 같은 질문에 대한 답입니다.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-반복문-count-for_each&#34;&gt;1. 반복문 (count, for_each)&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&lt;details class=&#34;interview-answer&#34; open&gt;&#xA;  &lt;summary&gt;정리 보기&lt;/summary&gt;&#xA;  &lt;div class=&#34;interview-answer-body&#34;&gt;&#xA;    &lt;p&gt;&lt;strong&gt;count&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;같은 리소스를 여러 개 만들 때 사용합니다. 단순히 개수만 다를 때 적합합니다.&lt;/p&gt;&#xA;&lt;div class=&#34;code-block&#34;&gt;&#xA;    &lt;button class=&#34;code-copy&#34; type=&#34;button&#34; hidden aria-label=&#34;Copy code to clipboard&#34;&gt;&#xA;      &lt;span class=&#34;code-copy-label&#34; aria-hidden=&#34;true&#34;&gt;Copy&lt;/span&gt;&#xA;    &lt;/button&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-hcl&#34; data-lang=&#34;hcl&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;resource&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;aws_instance&amp;#34; &amp;#34;web&amp;#34;&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  count         &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ami           &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ami-0abcdef1234567890&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  instance_type &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;t3.micro&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  tags &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;web-${count.index}&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;  # web-0, web-1, web-2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;count.index&lt;/code&gt;로 현재 인덱스 참조 (0부터 시작)&lt;/li&gt;&#xA;&lt;li&gt;중간 인스턴스를 삭제하면 인덱스가 밀려서 의도치 않은 재생성 발생&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;for_each&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Terraform으로 AWS 인프라 관리하기 — HCL 문법부터 Module까지</title>
				<link>https://sckwon.dev/posts/terraform-basics/</link>
				<pubDate>Fri, 14 Aug 2026 14:37:14 +0900</pubDate>
				<guid>https://sckwon.dev/posts/terraform-basics/</guid>
				<description>&lt;h2 id=&#34;개요&#34;&gt;개요&lt;/h2&gt;&#xA;&lt;p&gt;Terraform은 인프라를 코드로 정의하고 관리하는 도구입니다. AWS 콘솔에서 클릭으로 EC2를 만드는 대신, 코드를 작성하면 Terraform이 API를 호출해서 리소스를 생성합니다.&lt;/p&gt;&#xA;&lt;p&gt;콘솔 작업은 변경 내용이 코드로 남지 않습니다. 코드로 관리하면 Git에 변경 이력이 남고, 같은 정의로 동일한 인프라를 반복해서 만들 수 있습니다.&lt;/p&gt;&#xA;&lt;p&gt;이 글은 Terraform을 처음 접하는 사람 기준으로 핵심 개념을 정리했습니다.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-iac-infrastructure-as-code&#34;&gt;1. IaC (Infrastructure as Code)&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&lt;details class=&#34;interview-answer&#34; open&gt;&#xA;  &lt;summary&gt;정리 보기&lt;/summary&gt;&#xA;  &lt;div class=&#34;interview-answer-body&#34;&gt;&#xA;    &lt;p&gt;&lt;strong&gt;IaC란&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;인프라(서버, 네트워크, DB 등)를 코드 파일로 정의하는 방식입니다. 수동 작업 대신 선언적으로 &amp;ldquo;이런 상태가 되어야 한다&amp;quot;고 적으면, 도구가 알아서 맞춰줍니다.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
