<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>ISFJ 개발자의 이야기</title>
    <link>https://jinseung0327.tistory.com/</link>
    <description>☁️ Cloud &amp;amp; DevOps에 대해 공부하며 끊임없이 성장하고 있습니다.</description>
    <language>ko</language>
    <pubDate>Tue, 14 Apr 2026 13:20:32 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ISFJ 개발자의 이야기</managingEditor>
    <image>
      <title>ISFJ 개발자의 이야기</title>
      <url>https://tistory1.daumcdn.net/tistory/6760696/attach/9a5096b832f04adfaa3f9d6dcb6efdaf</url>
      <link>https://jinseung0327.tistory.com</link>
    </image>
    <item>
      <title>AWS EC2 비밀번호로 접속하기</title>
      <link>https://jinseung0327.tistory.com/39</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 블로그에서는 AWS EC2를 키페어로 접속하는게 아닌 비밀번호를 설정하여 접속하는 방법에 대한 글을 작성해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구축방안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 EC2의 접속해 아래의 명령어를 이용해 &lt;span&gt; SSH 서버 설정 파일인 /etc/ssh/sshd_config 파일을 편집해서 비밀번호 인증을 허용하게 설정해줘야합니다.&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;sudo 권한 즉 관리자의 권한에 있다는 기반으로 설명합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1771132534494&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비밀번호 인증을 허용하게 설정을 하였다면 아래의 명령어로 SSH를 재시작 해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771132701167&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;systemctl restart sshd&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 아래의 명령어를 이용해 비밀번호로 사용할 비밀번호를 설정해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771132773638&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;echo '&amp;lt;비밀번호&amp;gt;' | passwd --stdin ec2-user&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Result&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 명령어를 이용해 EC2의 접속을 시도한다면 비밀번호를 입력하라고 하며 성공적으로 입력 시 접속이 되게 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771132895115&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh ec2-user@&amp;lt;EC2PublicIP&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;199&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cA7G1k/dJMcachK9GK/uLgsJhIBzKRrrBsLEo4ynK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cA7G1k/dJMcachK9GK/uLgsJhIBzKRrrBsLEo4ynK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cA7G1k/dJMcachK9GK/uLgsJhIBzKRrrBsLEo4ynK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcA7G1k%2FdJMcachK9GK%2FuLgsJhIBzKRrrBsLEo4ynK%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;408&quot; height=&quot;199&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;199&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 AWS EC2 비밀번호로 접속하는 설정 글을 마치겠습니다. 감사합니다!&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>password</category>
      <category>ssh</category>
      <author>ISFJ 개발자의 이야기</author>
      <guid isPermaLink="true">https://jinseung0327.tistory.com/39</guid>
      <comments>https://jinseung0327.tistory.com/39#entry39comment</comments>
      <pubDate>Sun, 15 Feb 2026 14:25:17 +0900</pubDate>
    </item>
    <item>
      <title>RDS IAM Authentication</title>
      <link>https://jinseung0327.tistory.com/38</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 블로그에서는 RDS IAM Authentication을 구성하는 방법에 대해서 작성해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;IAM Authentication을 사용하는 이유&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VLtuF/dJMcabXreeD/XQdoBDiBajTKAuCk69CHk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VLtuF/dJMcabXreeD/XQdoBDiBajTKAuCk69CHk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VLtuF/dJMcabXreeD/XQdoBDiBajTKAuCk69CHk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVLtuF%2FdJMcabXreeD%2FXQdoBDiBajTKAuCk69CHk1%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;826&quot; height=&quot;272&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RDS Database에 접속할 때 암호를 사용해도 되지만, IAM 인증을 사용하기도 됩니다. IAM 인증에서는 RDS가 생성하는 인증 토큰을 사용하며 각 토큰의 수명은 15분입니다. SSL 또는 TLS를 사용하여 DB 인스턴스에 대한 연결을 암호화합니다. 즉 비밀번호 관리 필요성을 없애 보안을 강화하고, IAM 기반의 중앙집중식 권한 관리를 통해 운영 효율성을 높이며, 15분마다 만료되는 토큰을 사용하여 해킹 위협을 줄이기 위해 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구축 방안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 EC2에서 사용할 역할을 생성 및 권한을 부여해줘야합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1325&quot; data-origin-height=&quot;473&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pyLH6/dJMcag5xcua/50KX0yaF7UyhPTbMOUbeQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pyLH6/dJMcag5xcua/50KX0yaF7UyhPTbMOUbeQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pyLH6/dJMcag5xcua/50KX0yaF7UyhPTbMOUbeQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpyLH6%2FdJMcag5xcua%2F50KX0yaF7UyhPTbMOUbeQK%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;1325&quot; height=&quot;473&quot; data-origin-width=&quot;1325&quot; data-origin-height=&quot;473&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;권한은 아래의 사진과 JSON을 참고하여 구성하면 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771096404977&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&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;rds-db:connect&quot;
            ],
            &quot;Resource&quot;: [
                &quot;arn:aws:rds-db:ap-northeast-2:&amp;lt;ACCOUNT_ID&amp;gt;:dbuser:*/*&quot;
            ]
        }
    ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;745&quot; data-origin-height=&quot;334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/naOnh/dJMcadATm4p/9FnHROiGKDPnBqvmO5RkH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/naOnh/dJMcadATm4p/9FnHROiGKDPnBqvmO5RkH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/naOnh/dJMcadATm4p/9FnHROiGKDPnBqvmO5RkH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnaOnh%2FdJMcadATm4p%2F9FnHROiGKDPnBqvmO5RkH1%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;745&quot; height=&quot;334&quot; data-origin-width=&quot;745&quot; data-origin-height=&quot;334&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 사진과 같이 정책의 이름을 부여해주고 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1669&quot; data-origin-height=&quot;472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O1GuR/dJMcafMkMPr/Ki1iCxDivKMiZXxjGiQ5JK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O1GuR/dJMcafMkMPr/Ki1iCxDivKMiZXxjGiQ5JK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O1GuR/dJMcafMkMPr/Ki1iCxDivKMiZXxjGiQ5JK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO1GuR%2FdJMcafMkMPr%2FKi1iCxDivKMiZXxjGiQ5JK%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;1669&quot; height=&quot;472&quot; data-origin-width=&quot;1669&quot; data-origin-height=&quot;472&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EC2가 Bastion Server의 역할을 하기에 Admin 권한도 부여해주겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1317&quot; data-origin-height=&quot;495&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vUZ0X/dJMcagxFeht/hXM8cOMMqlOxPYfcBFJKK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vUZ0X/dJMcagxFeht/hXM8cOMMqlOxPYfcBFJKK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vUZ0X/dJMcagxFeht/hXM8cOMMqlOxPYfcBFJKK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvUZ0X%2FdJMcagxFeht%2FhXM8cOMMqlOxPYfcBFJKK1%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;1317&quot; height=&quot;495&quot; data-origin-width=&quot;1317&quot; data-origin-height=&quot;495&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 RDS에서 사용할 보안그룹을 아래의 사진을 참고하여 구성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;758&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cD3DQq/dJMcaadaWZq/pq8hUPvui1KtwI83Gij5f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cD3DQq/dJMcaadaWZq/pq8hUPvui1KtwI83Gij5f1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cD3DQq/dJMcaadaWZq/pq8hUPvui1KtwI83Gij5f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcD3DQq%2FdJMcaadaWZq%2Fpq8hUPvui1KtwI83Gij5f1%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;1282&quot; height=&quot;758&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;758&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 RDS의 서브넷 그룹을 생성해줍니다. 보안을 위해 Protected (I&lt;span&gt;solated) 서브넷을 선택해주겠습니다.&lt;/span&gt;&lt;span&gt;&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;1094&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bK9niN/dJMcajunkWf/VNRQj4uXkQQs3EAJn7HXUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bK9niN/dJMcajunkWf/VNRQj4uXkQQs3EAJn7HXUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bK9niN/dJMcajunkWf/VNRQj4uXkQQs3EAJn7HXUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbK9niN%2FdJMcajunkWf%2FVNRQj4uXkQQs3EAJn7HXUk%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;1094&quot; height=&quot;732&quot; data-origin-width=&quot;1094&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 RDS 생성 메뉴로 들어가 Standard create를 선택해주고 Aurora MySQL을 선택해주겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1318&quot; data-origin-height=&quot;726&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QtRoJ/dJMcacvi8kZ/Ox9LW5ZUiWzSiAOu5owAN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QtRoJ/dJMcacvi8kZ/Ox9LW5ZUiWzSiAOu5owAN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QtRoJ/dJMcacvi8kZ/Ox9LW5ZUiWzSiAOu5owAN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQtRoJ%2FdJMcacvi8kZ%2FOx9LW5ZUiWzSiAOu5owAN0%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;1318&quot; height=&quot;726&quot; data-origin-width=&quot;1318&quot; data-origin-height=&quot;726&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운영을 할 목적이 아니기에 Dev/Test를 선택해주고 Cluster의 이름 및 설정을 아래의 사진을 참고하여 구성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1316&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/81yl9/dJMcadHGj4q/KngtdxNFoI1I3WQJdx8bK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/81yl9/dJMcadHGj4q/KngtdxNFoI1I3WQJdx8bK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/81yl9/dJMcadHGj4q/KngtdxNFoI1I3WQJdx8bK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F81yl9%2FdJMcadHGj4q%2FKngtdxNFoI1I3WQJdx8bK1%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;1316&quot; height=&quot;712&quot; data-origin-width=&quot;1316&quot; data-origin-height=&quot;712&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스 타입은 t3.medium을 선택 해주겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1307&quot; data-origin-height=&quot;643&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9x52y/dJMcaibdmrQ/JWEV6INZ3Xa2ny5N2iw871/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9x52y/dJMcaibdmrQ/JWEV6INZ3Xa2ny5N2iw871/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9x52y/dJMcaibdmrQ/JWEV6INZ3Xa2ny5N2iw871/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9x52y%2FdJMcaibdmrQ%2FJWEV6INZ3Xa2ny5N2iw871%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;1307&quot; height=&quot;643&quot; data-origin-width=&quot;1307&quot; data-origin-height=&quot;643&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 VPC를 선택해주고 생성했던 서브넷 그룹과 보안그룹을 선택해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1068&quot; data-origin-height=&quot;690&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcDMxc/dJMcabQFgxT/Kpzsv2a136K9D9KiMALDHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcDMxc/dJMcabQFgxT/Kpzsv2a136K9D9KiMALDHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcDMxc/dJMcabQFgxT/Kpzsv2a136K9D9KiMALDHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcDMxc%2FdJMcabQFgxT%2FKpzsv2a136K9D9KiMALDHK%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;1068&quot; height=&quot;690&quot; data-origin-width=&quot;1068&quot; data-origin-height=&quot;690&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 오늘의 주제인 IAM Authentication을 활성화 해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U6iGC/dJMcafevMSh/yjqNh50ZYWKeYRpzRmWjL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U6iGC/dJMcafevMSh/yjqNh50ZYWKeYRpzRmWjL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U6iGC/dJMcafevMSh/yjqNh50ZYWKeYRpzRmWjL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU6iGC%2FdJMcafevMSh%2FyjqNh50ZYWKeYRpzRmWjL0%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;1092&quot; height=&quot;147&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;147&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 초기 데이터베이스 이름을 지정 및 RDS를 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lJYHH/dJMcacIPWUE/kJB6ygvx4s9kASTaVa26Z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lJYHH/dJMcacIPWUE/kJB6ygvx4s9kASTaVa26Z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lJYHH/dJMcacIPWUE/kJB6ygvx4s9kASTaVa26Z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlJYHH%2FdJMcacIPWUE%2FkJB6ygvx4s9kASTaVa26Z1%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;729&quot; height=&quot;123&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 EC2 생성 메뉴에서 IAM Instanc Profile을 생성해줬던 역할을 선택 및 인스턴스를 생성해줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCkjoq/dJMcad1YApZ/c6lLaRB9bB2uOzAEGR0Sr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCkjoq/dJMcad1YApZ/c6lLaRB9bB2uOzAEGR0Sr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCkjoq/dJMcad1YApZ/c6lLaRB9bB2uOzAEGR0Sr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCkjoq%2FdJMcad1YApZ%2Fc6lLaRB9bB2uOzAEGR0Sr1%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;626&quot; height=&quot;137&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;137&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 생성한 EC2에 접속해 아래의 명령어를 이용해 MySQL을 설치해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771097145480&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo dnf update -y
sudo dnf install -y mariadb105&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 MySQL 설치를 완료 하였다면 아래의 명령어를 이용해 RDS의 Endpoint를 불러옵니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771097195356&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;RDS_EP=$(aws rds describe-db-cluster-endpoints --query &quot;DBClusterEndpoints[?EndpointType=='WRITER'].Endpoint&quot; --output text)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 아래의 명령어로 RDS의 접근 해줍니다. (비밀번호에 맞게 작성이 필요합니다.)&lt;/p&gt;
&lt;pre id=&quot;code_1771097235390&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql -h $RDS_EP -u admin -P 3306 -pSkill53##&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 아래의 사진과 같이 SSL 접속 허용 및 IAM 인증 접속을 허용하는 'rds_iam'이라는 이름의 User를 생성해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771097283757&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE USER rds_iam IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
ALTER USER 'rds_iam'@'%' REQUIRE SSL;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1288&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eHhWrk/dJMcabpDwD8/6JbDGOOMuRL7b4ALdahe91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eHhWrk/dJMcabpDwD8/6JbDGOOMuRL7b4ALdahe91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eHhWrk/dJMcabpDwD8/6JbDGOOMuRL7b4ALdahe91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeHhWrk%2FdJMcabpDwD8%2F6JbDGOOMuRL7b4ALdahe91%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;1288&quot; height=&quot;290&quot; data-origin-width=&quot;1288&quot; data-origin-height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 exit를 통해 RDS에서 빠져 나온 뒤 아래의 명령어를 이용해 인증토큰을 발급해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771097420526&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;RDSHOST=$(aws rds describe-db-instances --query &quot;DBInstances[?DBInstanceStatus=='available'].Endpoint.Address&quot; --output text)
TOKEN=&quot;$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --username rds_iam)&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 아래의 명령어를 이용해 SSL 접속을 위해 모든 리전에서 작동하는 루트 인증서를 다운로드해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771097467755&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Result&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 사진과 같이 IAM 인증을 사용해 RDS에 접속해본다면 정상적으로 접근되는 모습을 확인 할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771097550923&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql --host=$RDSHOST --ssl-ca=./global-bundle.pem --enable-cleartext-plugin --user=rds_iam --password=$TOKEN&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2068&quot; data-origin-height=&quot;404&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HKX6t/dJMcaadaXa9/kO0UpxTOJSKtoKdzZIukYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HKX6t/dJMcaadaXa9/kO0UpxTOJSKtoKdzZIukYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HKX6t/dJMcaadaXa9/kO0UpxTOJSKtoKdzZIukYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHKX6t%2FdJMcaadaXa9%2FkO0UpxTOJSKtoKdzZIukYK%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;2068&quot; height=&quot;404&quot; data-origin-width=&quot;2068&quot; data-origin-height=&quot;404&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 RDS IAM Authentication 구축 글을 마치겠습니다. 감사합니다!&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>EC2</category>
      <category>IAM</category>
      <category>IAM Authentication</category>
      <category>MySQL</category>
      <category>RDS</category>
      <author>ISFJ 개발자의 이야기</author>
      <guid isPermaLink="true">https://jinseung0327.tistory.com/38</guid>
      <comments>https://jinseung0327.tistory.com/38#entry38comment</comments>
      <pubDate>Sun, 15 Feb 2026 04:33:45 +0900</pubDate>
    </item>
    <item>
      <title>RDS Healthcheck Disaster Recovery</title>
      <link>https://jinseung0327.tistory.com/37</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 블로그에서는 AWS RDS를 Multi-Region 구조로 구성하여 고가용성을 확보하는 방법에 대해 정리해보겠습니다.&lt;br /&gt;&lt;br /&gt;단일&amp;nbsp;리전에&amp;nbsp;RDS를&amp;nbsp;구성할&amp;nbsp;경우,&amp;nbsp;해당&amp;nbsp;리전에&amp;nbsp;장애가&amp;nbsp;발생하면&amp;nbsp;데이터베이스에&amp;nbsp;접근할&amp;nbsp;수&amp;nbsp;없게&amp;nbsp;되는&amp;nbsp;치명적인&amp;nbsp;문제가&amp;nbsp;발생할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이러한&amp;nbsp;리전&amp;nbsp;단위&amp;nbsp;장애(Region&amp;nbsp;Failure)에&amp;nbsp;대비하기&amp;nbsp;위해,&amp;nbsp;RDS를&amp;nbsp;서로&amp;nbsp;다른&amp;nbsp;리전에&amp;nbsp;구성하고&amp;nbsp;장애&amp;nbsp;발생&amp;nbsp;시&amp;nbsp;자동으로&amp;nbsp;다른&amp;nbsp;리전의&amp;nbsp;RDS로&amp;nbsp;트래픽을&amp;nbsp;전환하는&amp;nbsp;Disaster&amp;nbsp;Recovery(재해&amp;nbsp;복구)&amp;nbsp;아키텍처를&amp;nbsp;설계해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1317&quot; data-origin-height=&quot;743&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BTg5W/dJMcaac9BSq/U5b6qfSu6lR4Ms6LeWaXtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BTg5W/dJMcaac9BSq/U5b6qfSu6lR4Ms6LeWaXtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BTg5W/dJMcaac9BSq/U5b6qfSu6lR4Ms6LeWaXtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBTg5W%2FdJMcaac9BSq%2FU5b6qfSu6lR4Ms6LeWaXtK%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;1317&quot; height=&quot;743&quot; data-origin-width=&quot;1317&quot; data-origin-height=&quot;743&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구축 방안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 아래의 Github 링크를 통해 인프라를 테라폼을 이용해 구성해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/learning-wlstmd/db-health&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/learning-wlstmd/db-health&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1770819408430&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - learning-wlstmd/db-health&quot; data-og-description=&quot;Contribute to learning-wlstmd/db-health development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/learning-wlstmd/db-health&quot; data-og-url=&quot;https://github.com/learning-wlstmd/db-health&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bHhVbp/dJMb8WevAiu/T5cqsXT2QohHupcL6w4Pk1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/exj7b/dJMb8WMlyr3/D5QMtKYctKByIb6XpgxSsk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/learning-wlstmd/db-health&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/learning-wlstmd/db-health&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bHhVbp/dJMb8WevAiu/T5cqsXT2QohHupcL6w4Pk1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/exj7b/dJMb8WMlyr3/D5QMtKYctKByIb6XpgxSsk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&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;GitHub - learning-wlstmd/db-health&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to learning-wlstmd/db-health development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인프라를 모두 구성 완료 했다면 다음으로 서로 다른 리전에 있는 VPC를 Peering으로 연결해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2191&quot; data-origin-height=&quot;1098&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djHgJY/dJMcaaqGr0C/hK2bQ8HVnIk3LEhKreZqkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djHgJY/dJMcaaqGr0C/hK2bQ8HVnIk3LEhKreZqkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djHgJY/dJMcaaqGr0C/hK2bQ8HVnIk3LEhKreZqkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjHgJY%2FdJMcaaqGr0C%2FhK2bQ8HVnIk3LEhKreZqkk%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;2191&quot; height=&quot;1098&quot; data-origin-width=&quot;2191&quot; data-origin-height=&quot;1098&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 Accept를 해주어 Peering을 해줍니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 리전의 public, private 모든 라우팅 테이블에 피어링 규칙 생성을 해줘야 합니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ap-northeast-2 VPC CIDR : 10.101.0.0/16&lt;/li&gt;
&lt;li&gt;us-east-1 VPC CIDR : 10.100.0.0/16&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sCNul/dJMcai3f7JU/OG7nhZNHWZUIxBqjdz6sKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sCNul/dJMcai3f7JU/OG7nhZNHWZUIxBqjdz6sKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sCNul/dJMcai3f7JU/OG7nhZNHWZUIxBqjdz6sKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsCNul%2FdJMcai3f7JU%2FOG7nhZNHWZUIxBqjdz6sKk%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;2048&quot; height=&quot;270&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;270&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 us-esat-1 리전에 있는 EC2 서버에 접근해 아래의 명령어를 실행해줍니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Terraform으로 인프라 구성 시 db-health.py 파일이 자동으로 서버에 생성이 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1770819662734&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;AP_ENDPOINT=$(aws rds describe-db-cluster-endpoints --query &quot;DBClusterEndpoints[?EndpointType=='WRITER'].Endpoint&quot; --region ap-northeast-2 --output text)
US_ENDPOINT=$(aws rds describe-db-cluster-endpoints --query &quot;DBClusterEndpoints[?EndpointType=='WRITER'].Endpoint&quot; --region us-east-1 --output text)&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1770819673571&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sed -i &quot;s|AP_ENDPOINT|$AP_ENDPOINT|g&quot; db-health.py
sed -i &quot;s|US_ENDPOINT|$US_ENDPOINT|g&quot; db-health.py&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1770819680130&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum install python-pip -y
pip3 install flask pymysql
nohup python3 db-health.py &amp;amp;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 Route53 Healthcheck를 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;327&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8NlFa/dJMcafS3WEc/Yv41K4UPwxA6ZgRzYYJoTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8NlFa/dJMcafS3WEc/Yv41K4UPwxA6ZgRzYYJoTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8NlFa/dJMcafS3WEc/Yv41K4UPwxA6ZgRzYYJoTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8NlFa%2FdJMcafS3WEc%2FYv41K4UPwxA6ZgRzYYJoTK%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;2048&quot; height=&quot;327&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;327&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;us-esat-1 rds check (IP address 부분은 EC2의 Public IP:5000을 사용하면 됩니다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2278&quot; data-origin-height=&quot;747&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjUwDs/dJMcaaYvsOM/O3NldOUs4HrAZTkcUygGF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjUwDs/dJMcaaYvsOM/O3NldOUs4HrAZTkcUygGF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjUwDs/dJMcaaYvsOM/O3NldOUs4HrAZTkcUygGF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjUwDs%2FdJMcaaYvsOM%2FO3NldOUs4HrAZTkcUygGF1%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;2278&quot; height=&quot;747&quot; data-origin-width=&quot;2278&quot; data-origin-height=&quot;747&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ap-northeast-2 rds check (IP address 부분은 EC2의 Public IP:5000을 사용하면 됩니다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2279&quot; data-origin-height=&quot;1205&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2T6GZ/dJMcaaqGr2Z/Wpk9nYHeFMSG9hPA6kM87K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2T6GZ/dJMcaaqGr2Z/Wpk9nYHeFMSG9hPA6kM87K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2T6GZ/dJMcaaqGr2Z/Wpk9nYHeFMSG9hPA6kM87K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2T6GZ%2FdJMcaaqGr2Z%2FWpk9nYHeFMSG9hPA6kM87K%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;2279&quot; height=&quot;1205&quot; data-origin-width=&quot;2279&quot; data-origin-height=&quot;1205&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 Route53 Private Hosted Zone을 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2186&quot; data-origin-height=&quot;1144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRnrqw/dJMcagYI1N8/JEITbiiFvUco8ka8ewTAAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRnrqw/dJMcagYI1N8/JEITbiiFvUco8ka8ewTAAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRnrqw/dJMcagYI1N8/JEITbiiFvUco8ka8ewTAAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRnrqw%2FdJMcagYI1N8%2FJEITbiiFvUco8ka8ewTAAk%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;2186&quot; height=&quot;1144&quot; data-origin-width=&quot;2186&quot; data-origin-height=&quot;1144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 생성한 Hosted Zone에 레코드를 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1927&quot; data-origin-height=&quot;644&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFxr7q/dJMcafeuvXa/aDUJukKK7ZjY40jeUoSPNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFxr7q/dJMcafeuvXa/aDUJukKK7ZjY40jeUoSPNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFxr7q/dJMcafeuvXa/aDUJukKK7ZjY40jeUoSPNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFxr7q%2FdJMcafeuvXa%2FaDUJukKK7ZjY40jeUoSPNK%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;1927&quot; height=&quot;644&quot; data-origin-width=&quot;1927&quot; data-origin-height=&quot;644&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 사진과 같이 US 리전에 있는 RDS DNS를 입력 해주고 생성한 US Healthcheck를 선택해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;1033&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xzhie/dJMcahpOf1O/GZOBhxrY2ttIssKlDeZpi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xzhie/dJMcahpOf1O/GZOBhxrY2ttIssKlDeZpi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xzhie/dJMcahpOf1O/GZOBhxrY2ttIssKlDeZpi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxzhie%2FdJMcahpOf1O%2FGZOBhxrY2ttIssKlDeZpi0%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;779&quot; height=&quot;1033&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;1033&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마찬가지로 아래의 사진과 같이 AP 리전에 있는 RDS DNS를 입력 해주고 생성한 AP Healthcheck를 선택해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;1029&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzfzJR/dJMb99SPNrx/zfieRpNkDkXsLrZBruBIlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzfzJR/dJMb99SPNrx/zfieRpNkDkXsLrZBruBIlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzfzJR/dJMb99SPNrx/zfieRpNkDkXsLrZBruBIlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdzfzJR%2FdJMb99SPNrx%2FzfieRpNkDkXsLrZBruBIlk%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;776&quot; height=&quot;1029&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;1029&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 아래의 사진과 같이 Failover Records가 Primary, Secondary로 올바르게 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1812&quot; data-origin-height=&quot;1071&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJXPDS/dJMcadnmHbA/tBXxWBl9fmuAmqj4qKJ2tK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJXPDS/dJMcadnmHbA/tBXxWBl9fmuAmqj4qKJ2tK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJXPDS/dJMcadnmHbA/tBXxWBl9fmuAmqj4qKJ2tK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJXPDS%2FdJMcadnmHbA%2FtBXxWBl9fmuAmqj4qKJ2tK%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;1812&quot; height=&quot;1071&quot; data-origin-width=&quot;1812&quot; data-origin-height=&quot;1071&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Result&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트를 위해 Cluster를 Stop 상태로 전환해보겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2454&quot; data-origin-height=&quot;836&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lvvNM/dJMcaaKYHVg/VERps4XULUGAk8FY8K9k91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lvvNM/dJMcaaKYHVg/VERps4XULUGAk8FY8K9k91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lvvNM/dJMcaaKYHVg/VERps4XULUGAk8FY8K9k91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlvvNM%2FdJMcaaKYHVg%2FVERps4XULUGAk8FY8K9k91%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;2454&quot; height=&quot;836&quot; data-origin-width=&quot;2454&quot; data-origin-height=&quot;836&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;US 리전에 있는 DB Cluster를 Stop 해보겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;781&quot; data-origin-height=&quot;598&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b19E0F/dJMcaaYvsQc/qx0zGfjNowJKyQuCnWlZWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b19E0F/dJMcaaYvsQc/qx0zGfjNowJKyQuCnWlZWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b19E0F/dJMcaaYvsQc/qx0zGfjNowJKyQuCnWlZWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb19E0F%2FdJMcaaYvsQc%2Fqx0zGfjNowJKyQuCnWlZWK%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;781&quot; height=&quot;598&quot; data-origin-width=&quot;781&quot; data-origin-height=&quot;598&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 명령어로 MySQL에 접속 및 상태를 확인해보겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1770820387911&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql -h db.demo.local -uadmin -pSkill53##&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1770820500880&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT SERVER_ID FROM information_schema.replica_host_status;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 사진과 같이 Primary RDS인 US 리전에 있는 RDS는 Unhealthy 상태이지만 RDS의 접속이 잘되는 모습을 확인 할 수 있으며 접속한 RDS를 정보를 확인 해보면 Secondary RDS인 AP 리전에 있는 RDS로 전환된 모습을 확인 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1603&quot; data-origin-height=&quot;999&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpbPrd/dJMcaaEemBt/1Bmjv2AYUV0ElDHnqxlmN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpbPrd/dJMcaaEemBt/1Bmjv2AYUV0ElDHnqxlmN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpbPrd/dJMcaaEemBt/1Bmjv2AYUV0ElDHnqxlmN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpbPrd%2FdJMcaaEemBt%2F1Bmjv2AYUV0ElDHnqxlmN1%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;1603&quot; height=&quot;999&quot; data-origin-width=&quot;1603&quot; data-origin-height=&quot;999&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 RDS Healthcheck Disaster Recovery 아키텍처 구성글을 마치겠습니다. 감사합니다!&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>AWS</category>
      <category>Disaster Recovery</category>
      <category>EC2</category>
      <category>FAILOVER</category>
      <category>healthcheck</category>
      <category>Multi Region</category>
      <category>RDS</category>
      <category>Route53</category>
      <category>재해복구</category>
      <author>ISFJ 개발자의 이야기</author>
      <guid isPermaLink="true">https://jinseung0327.tistory.com/37</guid>
      <comments>https://jinseung0327.tistory.com/37#entry37comment</comments>
      <pubDate>Wed, 11 Feb 2026 23:39:27 +0900</pubDate>
    </item>
    <item>
      <title>AWS EC2 Fail2ban</title>
      <link>https://jinseung0327.tistory.com/36</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 블로그에서는 리눅스에서 주로 보안을 강화하기 위해 사용되는 도구인 Fail2ban을 AWS EC2에 적용하는 글을 작성해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Fail2ban 개념&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;309&quot; data-origin-height=&quot;156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b90qoP/dJMcabb2m5N/LumrFlnDAYP5TdMZXfoF6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b90qoP/dJMcabb2m5N/LumrFlnDAYP5TdMZXfoF6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b90qoP/dJMcabb2m5N/LumrFlnDAYP5TdMZXfoF6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb90qoP%2FdJMcabb2m5N%2FLumrFlnDAYP5TdMZXfoF6k%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;309&quot; height=&quot;156&quot; data-origin-width=&quot;309&quot; data-origin-height=&quot;156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Fail2ban은 리눅스에서 주로 보안을 강화하기 위해 사용되는 도구입니다. 서버에 대한 무차별 공격을 방어하기 위해 개발된 이 도구는 주로 SSH와 같은 네트워크 서비스에 적용됩니다. 로그 파일을 모니터링하여 특정 IP에서 지속적으로 실패한 로그인 시도를 감지하고, 일정한 규칙에 따라 해당 IP를 자동으로 차단하는 역할을 합니다. 또한 Fail2ban은 iptables와 연동하여 IP를 차단하고, 차단된 IP는 일정 시간이 지나면 자동으로 해제될 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구축 방안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 AWS EC2에 SSH로 접속해 아래의 명령어로 필요한 패키지들을 설치 및 활성화 해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1770795971285&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo dnf install rsyslog -y
sudo systemctl enable rsyslog --now
sudo cat /var/log/secure&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 yum 명령어를 이용해 fail2ban을 설치 및 활성화 해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1770796000167&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum install fail2ban -y
sudo systemctl enable fail2ban.service&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 vim 을 이용해 파일을 열어 준 뒤 아래의 내용을 작성해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1770796035498&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vim /etc/fail2ban/jail.local&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;jail.local&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1770796045483&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/secure
maxretry = 5
findtime = 300
bantime = 120&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 fail2ban을 재시작 및 상태를 확인 해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1770796093319&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo systemctl restart fail2ban.service
sudo systemctl status fail2ban.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZBViZ/dJMcaaEeb7j/EQESyAe7ik07NX61bkklB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZBViZ/dJMcaaEeb7j/EQESyAe7ik07NX61bkklB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZBViZ/dJMcaaEeb7j/EQESyAe7ik07NX61bkklB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZBViZ%2FdJMcaaEeb7j%2FEQESyAe7ik07NX61bkklB0%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;1153&quot; height=&quot;288&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;288&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Result&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5번 정도 접속에 실패한 다음 모습을 확인해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;895&quot; data-origin-height=&quot;668&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjKCUP/dJMcab4a9AV/gv7KccdnKnyyPDtNng5XxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjKCUP/dJMcab4a9AV/gv7KccdnKnyyPDtNng5XxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjKCUP/dJMcab4a9AV/gv7KccdnKnyyPDtNng5XxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjKCUP%2FdJMcab4a9AV%2Fgv7KccdnKnyyPDtNng5XxK%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;895&quot; height=&quot;668&quot; data-origin-width=&quot;895&quot; data-origin-height=&quot;668&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 사진과 같이 정상적으로 막힌 모습을 확인 가능합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vwjp0/dJMcaac9sXJ/vLli2b2fXu7Ep2zWAZbKEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vwjp0/dJMcaac9sXJ/vLli2b2fXu7Ep2zWAZbKEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vwjp0/dJMcaac9sXJ/vLli2b2fXu7Ep2zWAZbKEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvwjp0%2FdJMcaac9sXJ%2FvLli2b2fXu7Ep2zWAZbKEK%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;577&quot; height=&quot;123&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 Fail2ban을 이용해 SSH 접속을 차단하는 아키텍처를 구성하는 글을 마치겠습니다. 감사합니다!&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>fail2ban</category>
      <category>security</category>
      <category>ssh</category>
      <author>ISFJ 개발자의 이야기</author>
      <guid isPermaLink="true">https://jinseung0327.tistory.com/36</guid>
      <comments>https://jinseung0327.tistory.com/36#entry36comment</comments>
      <pubDate>Wed, 11 Feb 2026 16:52:34 +0900</pubDate>
    </item>
    <item>
      <title>Route53 DNSSEC</title>
      <link>https://jinseung0327.tistory.com/35</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 블로그에서는 &lt;span&gt;DNS 스푸핑 등 여러가지 DNS공격을 막기위한 장치인 Route53 DNSSEC에 대한 글을 작성해보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;skip-link&quot; data-testid=&quot;guide-header&quot; data-ke-size=&quot;size26&quot;&gt;DNSSEC의 필요성&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0hiVk/dJMcahQDbW9/EInJhroyLVhUeX1RxzXVo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0hiVk/dJMcahQDbW9/EInJhroyLVhUeX1RxzXVo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0hiVk/dJMcahQDbW9/EInJhroyLVhUeX1RxzXVo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0hiVk%2FdJMcahQDbW9%2FEInJhroyLVhUeX1RxzXVo1%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;405&quot; height=&quot;207&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공격자는 DNS 쿼리를 가로채고 인터넷 엔드포인트의 실제 IP 주소 대신 자신의 IP 주소를 DNS 해석기로 반환하여 웹 서버와 같은 인터넷 엔드포인트로 전송되는 트래픽을 가로챕니다. 그러면 사용자는 공격자가 웹 사이트를 위조하기 위해 스푸핑한 응답의 IP 주소로 라우팅됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DNS 트래픽을 보호하는 프로토콜인 DNSSEC(Domain Name System Security Extensions)를 구성하여 DNS 스푸핑 또는 메시지 가로채기(man-in-the-middle) 공격으로 알려진 이러한 유형의 공격으로부터 도메인을 보호할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;구축 방안&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DNS 설정은 가비아를 기준으로 설명합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 구매한 도메인에 대한 Public Hosted Zone을 생성 후 네임서버를 아래의 사진과 같이 등록해줘야합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1144&quot; data-origin-height=&quot;545&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/suWZD/dJMcagqDWD1/KU9remxFIXG18ZNFc1ACkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/suWZD/dJMcagqDWD1/KU9remxFIXG18ZNFc1ACkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/suWZD/dJMcagqDWD1/KU9remxFIXG18ZNFc1ACkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsuWZD%2FdJMcagqDWD1%2FKU9remxFIXG18ZNFc1ACkk%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;1144&quot; height=&quot;545&quot; data-origin-width=&quot;1144&quot; data-origin-height=&quot;545&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 표시된 정보를 복사 후 입력해주면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1426&quot; data-origin-height=&quot;353&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfCw2W/dJMcacV47pi/5r2k3yq0ATDPl9mFf7zQ80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfCw2W/dJMcacV47pi/5r2k3yq0ATDPl9mFf7zQ80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfCw2W/dJMcacV47pi/5r2k3yq0ATDPl9mFf7zQ80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfCw2W%2FdJMcacV47pi%2F5r2k3yq0ATDPl9mFf7zQ80%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;1426&quot; height=&quot;353&quot; data-origin-width=&quot;1426&quot; data-origin-height=&quot;353&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 사진과 같이 가비아에서 등록해주면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1675&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nVqIl/dJMcacofn6i/XoqCixsaMSro8qIP8B03QK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nVqIl/dJMcacofn6i/XoqCixsaMSro8qIP8B03QK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nVqIl/dJMcacofn6i/XoqCixsaMSro8qIP8B03QK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnVqIl%2FdJMcacofn6i%2FXoqCixsaMSro8qIP8B03QK%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;1675&quot; height=&quot;420&quot; data-origin-width=&quot;1675&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 us-east-1 리전에서 KMS 키를 생성해줘야 합니다. 아래의 사진처럼 비대칭키 &amp;gt; 서명 및 확인 &amp;gt; ECC_NIST_P256를 선택합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;491&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGnIw3/dJMcacaIqW5/5i9HKuFAhXE0tHBBLqkL60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGnIw3/dJMcacaIqW5/5i9HKuFAhXE0tHBBLqkL60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGnIw3/dJMcacaIqW5/5i9HKuFAhXE0tHBBLqkL60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGnIw3%2FdJMcacaIqW5%2F5i9HKuFAhXE0tHBBLqkL60%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;948&quot; height=&quot;491&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;491&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Alias와 Name Tag를 달아 알아보기 쉽도록 작성하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d5t1K2/dJMcaiaV6KM/YSXeoVrqqD4BHNSlbgJ80k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d5t1K2/dJMcaiaV6KM/YSXeoVrqqD4BHNSlbgJ80k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d5t1K2/dJMcaiaV6KM/YSXeoVrqqD4BHNSlbgJ80k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd5t1K2%2FdJMcaiaV6KM%2FYSXeoVrqqD4BHNSlbgJ80k%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;944&quot; height=&quot;524&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나머지는 기본값으로 두고 다음으로 계속 넘어가주면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bU4Ow7/dJMcagjSCrj/yueUuIlqN5nWaTbq5GIXQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bU4Ow7/dJMcagjSCrj/yueUuIlqN5nWaTbq5GIXQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bU4Ow7/dJMcagjSCrj/yueUuIlqN5nWaTbq5GIXQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbU4Ow7%2FdJMcagjSCrj%2FyueUuIlqN5nWaTbq5GIXQk%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;945&quot; height=&quot;580&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마찬가지로 다음으로 넘어가줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;625&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLeJqW/dJMcahC5gpw/3bYoeflRIlUCZ7q4e7RLuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLeJqW/dJMcahC5gpw/3bYoeflRIlUCZ7q4e7RLuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLeJqW/dJMcahC5gpw/3bYoeflRIlUCZ7q4e7RLuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLeJqW%2FdJMcahC5gpw%2F3bYoeflRIlUCZ7q4e7RLuk%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;949&quot; height=&quot;625&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;625&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;넘어가다 보면 정책을 설정하는 부분이 있는데 아래의 코드와 같이 작성해줘야합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ACCOUNT_ID는 변경이 필요합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1767609022405&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;Version&quot;: &quot;2012-10-17&quot;,
    &quot;Id&quot;: &quot;key-default-1&quot;,
    &quot;Statement&quot;: [
        {
            &quot;Sid&quot;: &quot;Enable IAM User Permissions&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Principal&quot;: {
                &quot;AWS&quot;: &quot;arn:aws:iam::ACCOUNT_ID:root&quot;
            },
            &quot;Action&quot;: &quot;kms:*&quot;,
            &quot;Resource&quot;: &quot;*&quot;
        },
        {
            &quot;Sid&quot;: &quot;Allow Route 53 DNSSEC Service&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Principal&quot;: {
                &quot;Service&quot;: &quot;dnssec-route53.amazonaws.com&quot;
            },
            &quot;Action&quot;: [
                &quot;kms:DescribeKey&quot;,
                &quot;kms:GetPublicKey&quot;,
                &quot;kms:Sign&quot;
            ],
            &quot;Resource&quot;: &quot;*&quot;
        },
        {
            &quot;Sid&quot;: &quot;Allow Route 53 DNSSEC to CreateGrant&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Principal&quot;: {
                &quot;Service&quot;: &quot;dnssec-route53.amazonaws.com&quot;
            },
            &quot;Action&quot;: &quot;kms:CreateGrant&quot;,
            &quot;Resource&quot;: &quot;*&quot;,
            &quot;Condition&quot;: {
                &quot;Bool&quot;: {
                    &quot;kms:GrantIsForAWSResource&quot;: &quot;true&quot;
                }
            }
        }
    ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;684&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eldj27/dJMcajgyQrb/7b116UZPCuYe3bJ3n292fK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eldj27/dJMcajgyQrb/7b116UZPCuYe3bJ3n292fK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eldj27/dJMcajgyQrb/7b116UZPCuYe3bJ3n292fK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feldj27%2FdJMcajgyQrb%2F7b116UZPCuYe3bJ3n292fK%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;943&quot; height=&quot;684&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;684&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 다음으로 넘어가 KMS 키를 생성해주면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvOR40/dJMcaihHBFs/KpKGsZ0xTkkXzHY5uDlJSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvOR40/dJMcaihHBFs/KpKGsZ0xTkkXzHY5uDlJSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvOR40/dJMcaihHBFs/KpKGsZ0xTkkXzHY5uDlJSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvOR40%2FdJMcaihHBFs%2FKpKGsZ0xTkkXzHY5uDlJSk%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;1141&quot; height=&quot;734&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;734&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 Route53 으로 돌아와 DNSSEC signing 메뉴에서 Enable DNSSEC을 선택해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1714&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mNcRW/dJMcabpkOEA/DHG03BMK3fkGrjyihLtVu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mNcRW/dJMcabpkOEA/DHG03BMK3fkGrjyihLtVu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mNcRW/dJMcabpkOEA/DHG03BMK3fkGrjyihLtVu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmNcRW%2FdJMcabpkOEA%2FDHG03BMK3fkGrjyihLtVu1%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;1714&quot; height=&quot;432&quot; data-origin-width=&quot;1714&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 사진처럼 Provide KSK name은 name으로 입력 후 생성했던 KMS를 선택 및 Create를 해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1143&quot; data-origin-height=&quot;431&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGnzUE/dJMcajgyQwG/EfCypNHVmYaIFLjkrZw6k1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGnzUE/dJMcajgyQwG/EfCypNHVmYaIFLjkrZw6k1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGnzUE/dJMcajgyQwG/EfCypNHVmYaIFLjkrZw6k1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGnzUE%2FdJMcajgyQwG%2FEfCypNHVmYaIFLjkrZw6k1%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;1143&quot; height=&quot;431&quot; data-origin-width=&quot;1143&quot; data-origin-height=&quot;431&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Create를 해주었다면 아래의 사진과 같이 Signing으로 변화된 모습을 확인 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1704&quot; data-origin-height=&quot;359&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EF2SL/dJMcajt5qR5/Tgg6AkECK1vTpwLKRcWDv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EF2SL/dJMcajt5qR5/Tgg6AkECK1vTpwLKRcWDv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EF2SL/dJMcajt5qR5/Tgg6AkECK1vTpwLKRcWDv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEF2SL%2FdJMcajt5qR5%2FTgg6AkECK1vTpwLKRcWDv1%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;1704&quot; height=&quot;359&quot; data-origin-width=&quot;1704&quot; data-origin-height=&quot;359&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 마지막으로 DS레코드를 생성해야합니다. 아래의 사진처럼 View DS record를 선택해 정보를 확인해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1703&quot; data-origin-height=&quot;357&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIr9Jr/dJMcahQDbNj/ovdVPXqhsi6RFi0Uvnvx9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIr9Jr/dJMcahQDbNj/ovdVPXqhsi6RFi0Uvnvx9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIr9Jr/dJMcahQDbNj/ovdVPXqhsi6RFi0Uvnvx9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIr9Jr%2FdJMcahQDbNj%2FovdVPXqhsi6RFi0Uvnvx9k%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;1703&quot; height=&quot;357&quot; data-origin-width=&quot;1703&quot; data-origin-height=&quot;357&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정보를 확인 후 가비아 도메인 통합 관리툴을 선택해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1006&quot; data-origin-height=&quot;584&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NxdXV/dJMb99SBc54/GgXbwW3feGj2vP9WCPKvek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NxdXV/dJMb99SBc54/GgXbwW3feGj2vP9WCPKvek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NxdXV/dJMb99SBc54/GgXbwW3feGj2vP9WCPKvek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNxdXV%2FdJMb99SBc54%2FGgXbwW3feGj2vP9WCPKvek%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;1006&quot; height=&quot;584&quot; data-origin-width=&quot;1006&quot; data-origin-height=&quot;584&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DNSSEC을 선택해주고 도메인을 선택해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;267&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z8FNe/dJMcaioskpk/FJ83MH6evQ5317nGrw09DK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z8FNe/dJMcaioskpk/FJ83MH6evQ5317nGrw09DK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z8FNe/dJMcaioskpk/FJ83MH6evQ5317nGrw09DK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz8FNe%2FdJMcaioskpk%2FFJ83MH6evQ5317nGrw09DK%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;955&quot; height=&quot;267&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;267&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 확인했던 정보를 아래의 사진과 같이 입력후 적용해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1671&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X393T/dJMcaivbOJ5/jpVIlPkcBKv5orM92R9zY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X393T/dJMcaivbOJ5/jpVIlPkcBKv5orM92R9zY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X393T/dJMcaivbOJ5/jpVIlPkcBKv5orM92R9zY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX393T%2FdJMcaivbOJ5%2FjpVIlPkcBKv5orM92R9zY0%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;1671&quot; height=&quot;479&quot; data-origin-width=&quot;1671&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성공적으로 설정을 했다면 아래의 사진과 같이 처리 성공이라는 문구를 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1676&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bATaij/dJMcafrKhl3/9OT0ggyFyVrpupkX79PkXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bATaij/dJMcafrKhl3/9OT0ggyFyVrpupkX79PkXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bATaij/dJMcafrKhl3/9OT0ggyFyVrpupkX79PkXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbATaij%2FdJMcafrKhl3%2F9OT0ggyFyVrpupkX79PkXK%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;1676&quot; height=&quot;296&quot; data-origin-width=&quot;1676&quot; data-origin-height=&quot;296&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 Route53 DNSSEC에 대한 글을 마치겠습니다. 감사합니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[참고]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/Route53/latest/DeveloperGuide/domain-configure-dnssec.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/ko_kr/Route53/latest/DeveloperGuide/domain-configure-dnssec.html&lt;/a&gt;&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>AWS</category>
      <category>dnssec</category>
      <category>gabia</category>
      <category>KMS</category>
      <category>Route53</category>
      <category>security</category>
      <author>ISFJ 개발자의 이야기</author>
      <guid isPermaLink="true">https://jinseung0327.tistory.com/35</guid>
      <comments>https://jinseung0327.tistory.com/35#entry35comment</comments>
      <pubDate>Mon, 5 Jan 2026 19:43:02 +0900</pubDate>
    </item>
    <item>
      <title>Calico CNI</title>
      <link>https://jinseung0327.tistory.com/34</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 블로그에서는 &lt;span&gt;Kubernetes 클러스터에서 네트워크 정책과 보안을 제공하는 네트워크 플러그인&lt;/span&gt; Calico에 대한 글을 작성해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Calico 개념&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Calico는 컨테이너와 가상 머신을 위한 네트워킹 솔루션입니다. 즉 여러 컴퓨터나 서버에서 실행되는 애플리케이션들이 서로 안전하고 효율적으로 통신할 수 있도록 도와주는 도구라고 생각하시면 될 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Calico는 아래의 주요 특징을 가지고 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다양한 환경 지원 : Kubernetes, OpenShift 등 여러 플랫폼에서 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;빠른 성능 : 최신 기술(eBPF)이나 기존 리눅스 네트워킹을 사용해 빠른 속도를 제공합니다.&lt;/li&gt;
&lt;li&gt;일관된 사용 경험 : 클라우드에서든 회사 내부 서버에서든, 작은 규모에서든 큰 규모에서든 동일한 방식으로 사용할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Calico 구성요소&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2404&quot; data-origin-height=&quot;1268&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kXxDV/dJMcabizVEX/30uwYfkzrYtP4tvddFoLWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kXxDV/dJMcabizVEX/30uwYfkzrYtP4tvddFoLWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kXxDV/dJMcabizVEX/30uwYfkzrYtP4tvddFoLWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkXxDV%2FdJMcabizVEX%2F30uwYfkzrYtP4tvddFoLWK%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;2404&quot; height=&quot;1268&quot; data-origin-width=&quot;2404&quot; data-origin-height=&quot;1268&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Calico CNI 설치시 Daemonset 으로 calico-node 파드가 생성됩니다. 이때, calico-node 파드에는 3가지(bird/felix/confd) 중요한 프로그램이 동작합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파드 생성 시 Calico Datastore를 기반으로 CNI 및 IPAM 플러그인이 파드 네트워크를 설정하며, 노드 간 파드 통신은 bird가 학습한 경로 정보를 felix가 호스트의 라우팅 테이블과 iptables에 적용해 처리합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Calico Datastore&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-09-16 오전 11.02.13.png&quot; data-origin-width=&quot;2138&quot; data-origin-height=&quot;1198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bN8cQX/dJMcabpkFcb/mIpL9INmieIvl2bAGq6HA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bN8cQX/dJMcabpkFcb/mIpL9INmieIvl2bAGq6HA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bN8cQX/dJMcabpkFcb/mIpL9INmieIvl2bAGq6HA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbN8cQX%2FdJMcabpkFcb%2FmIpL9INmieIvl2bAGq6HA1%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;2138&quot; height=&quot;1198&quot; data-filename=&quot;스크린샷 2024-09-16 오전 11.02.13.png&quot; data-origin-width=&quot;2138&quot; data-origin-height=&quot;1198&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Calico 동작을 위한 데이터들을 저장하는 곳으로, 쿠버네티스 API 저장소 혹은 ETCD 를 선택할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;bird&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-09-16 오전 11.07.35.png&quot; data-origin-width=&quot;1582&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bglRJd/dJMb99SA2XZ/2k3cp05A2XwxoR86c4e5a1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bglRJd/dJMb99SA2XZ/2k3cp05A2XwxoR86c4e5a1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bglRJd/dJMb99SA2XZ/2k3cp05A2XwxoR86c4e5a1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbglRJd%2FdJMb99SA2XZ%2F2k3cp05A2XwxoR86c4e5a1%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;1582&quot; height=&quot;900&quot; data-filename=&quot;스크린샷 2024-09-16 오전 11.07.35.png&quot; data-origin-width=&quot;1582&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BGP(Border Gateway Protocol)를 사용하여 노드 간 라우팅 정보를 교환합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;felix&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-09-16 오전 11.07.51.png&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9TgUJ/dJMcahwjXMX/IrikdvDiv59ZKQiDPHuXmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9TgUJ/dJMcahwjXMX/IrikdvDiv59ZKQiDPHuXmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9TgUJ/dJMcahwjXMX/IrikdvDiv59ZKQiDPHuXmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9TgUJ%2FdJMcahwjXMX%2FIrikdvDiv59ZKQiDPHuXmk%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;297&quot; height=&quot;900&quot; data-filename=&quot;스크린샷 2024-09-16 오전 11.07.51.png&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bird로 학습한 상대방 노드의 파드 네트워크 대역을 호스트의 라우팅 테이블에 최종적으로 업데이트하는 역할을 하며, IPtables 규칙 설정 관리를 합니다. 즉, 인터페이스 관리, 라우팅 정보 관리, ACL 관리, 상태 체크를 담당합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;condif&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-09-16 오전 11.09.16.png&quot; data-origin-width=&quot;920&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q5xos/dJMcahC48EY/56cC3mMC3cu3txBsnBifB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q5xos/dJMcahC48EY/56cC3mMC3cu3txBsnBifB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q5xos/dJMcahC48EY/56cC3mMC3cu3txBsnBifB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ5xos%2FdJMcahC48EY%2F56cC3mMC3cu3txBsnBifB1%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;283&quot; height=&quot;1232&quot; data-filename=&quot;스크린샷 2024-09-16 오전 11.09.16.png&quot; data-origin-width=&quot;920&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BGP 설정 등으로 Calico Datastore에 변경이 발생하면, bird 설정 파일을 갱신하고 이를 bird에 적용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구축 방안&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;a &amp;rarr; b&lt;/span&gt; 파드 통신은 허용하고, &lt;span&gt;c &amp;rarr; a 파드에서의 통신은 되지 않도록 구성해보겠습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 Helm을 이용해 Calico를 설치하고 curl을 이용해 Calicoctl도 설치해주겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1767588144719&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;helm repo add projectcalico https://docs.tigera.io/calico/charts
helm repo update
kubectl create namespace tigera-operator
helm install calico projectcalico/tigera-operator --version v3.29.2 --namespace tigera-operator
kubectl patch installation default --type='json' -p='[{&quot;op&quot;: &quot;replace&quot;, &quot;path&quot;: &quot;/spec/cni&quot;, &quot;value&quot;: {&quot;type&quot;:&quot;Calico&quot;} }]'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 NetworkPolicy를 정의해주겠습니다. ingress는 인바운드 규칙, egress는 아웃바운드규칙입니다.&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&gt;selector를 이용해 a 파드에 적용이 되며, b 파드에서 들어오는 트래픽은 허용하고 c 파드에서 들어오는 트래픽은 차단하는 정책입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1767588264239&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
  name: allow-communication-for-a-pod
spec:
  selector: app == 'a-pod'
  egress:
    - action: Allow
  ingress:
    - action: Allow
      source:
        selector: app == 'b-pod'
    - action: Deny
      source:
        selector: app == 'c-pod'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 통신을 테스트 할 Sample Pod(a, b, c)를 구성해주겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1767588428815&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: v1
kind: Pod
metadata:
  name: a-pod
  labels:
    app: a-pod
spec:
  containers:
    - name: a-container
      image: nginx:latest&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1767588458764&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: v1
kind: Pod
metadata:
  name: b-pod
  labels:
    app: b-pod
spec:
  containers:
    - name: b-container
      image: nginx:latest&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1767588475183&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: v1
kind: Pod
metadata:
  name: c-pod
  labels:
    app: c-pod
spec:
  containers:
    - name: c-container
      image: nginx:latest&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1767588492896&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;kubectl apply -f a-pod.yaml &amp;amp;&amp;amp; kubectl apply -f b-pod.yaml &amp;amp;&amp;amp; kubectl apply -f c-pod.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Result&lt;/h2&gt;
&lt;pre id=&quot;code_1767588516262&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;kubectl exec -it a-pod -- curl &amp;lt;b-pod-ip&amp;gt;
kubectl exec -it c-pod -- curl &amp;lt;a-pod-ip&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 설정을 올바르게 했다면 아래의 사진과 같이 &lt;span&gt;a &amp;rarr; b 파드로는 통신이 되는것을 확인 할 수 있으며 c &amp;rarr; a 파드에서의 통신은 안되는 것을 볼 수&lt;/span&gt;있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbeAqu/dJMcacofgRZ/4eDTHABv5caMzbOu2MtujK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbeAqu/dJMcacofgRZ/4eDTHABv5caMzbOu2MtujK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbeAqu/dJMcacofgRZ/4eDTHABv5caMzbOu2MtujK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbeAqu%2FdJMcacofgRZ%2F4eDTHABv5caMzbOu2MtujK%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;773&quot; height=&quot;350&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 Calico CNI에 대한 글을 마치겠습니다. 감사합니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[참고]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lakescript.net/entry/KANS-Calico-CNI&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://lakescript.net/entry/KANS-Calico-CNI&lt;/a&gt;&lt;/p&gt;</description>
      <category>Cloud/Kubernetes</category>
      <category>AWS</category>
      <category>Calico</category>
      <category>CNI</category>
      <category>eks</category>
      <category>k8s</category>
      <category>kubernetes</category>
      <author>ISFJ 개발자의 이야기</author>
      <guid isPermaLink="true">https://jinseung0327.tistory.com/34</guid>
      <comments>https://jinseung0327.tistory.com/34#entry34comment</comments>
      <pubDate>Mon, 5 Jan 2026 13:53:20 +0900</pubDate>
    </item>
    <item>
      <title>EKS with KEDA for Event Driven AutoScaling</title>
      <link>https://jinseung0327.tistory.com/33</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번 블로그에서는 KEDA의 개념과 Event Driven AutoScaling을 구현하는 글을 작성해보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;KEDA의 개요&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Kubernetes 기본 오토스케일링인 HPA(Horizontal Pod Autoscaler)는 CPU/메모리 기반 스케일링에는 최적이지만, 다음과 같은 한계를 가지고 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Scale-to-Zero 적용에 어려움을 겪습니다. 즉 Pod를 0개로 줄일 수 없으며 비용 최적화에 불리합니다.&lt;/li&gt;
&lt;li&gt;지표가 실제 서비스 부하 원인과 간접적입니다. 즉 HPA는 부하가 생긴 결과로써 대응을 하기 때문에 트래픽 처리에 대한 대응이 늦을 수 있습니다.&lt;/li&gt;
&lt;li&gt;외부 이벤트 소스(메시지 큐, 스트림 등)를 스케일링 기준으로 삼기 복잡합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;1299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLBW91/dJMcaaKI0XQ/n6xRIw4dMsqS8UV8jKEwkk/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLBW91/dJMcaaKI0XQ/n6xRIw4dMsqS8UV8jKEwkk/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLBW91/dJMcaaKI0XQ/n6xRIw4dMsqS8UV8jKEwkk/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLBW91%2FdJMcaaKI0XQ%2Fn6xRIw4dMsqS8UV8jKEwkk%2Fimg.webp&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;2048&quot; height=&quot;1299&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;1299&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러므로 이런 문제를 해결하기 위해 등장하게 된 것이 바로 KEDA입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;KEDA는 &lt;b&gt;Kafka, RabbitMQ, SQS, HTTP 요청 &lt;/b&gt;등 여러 이벤트 소스를 직접 스케일링 트리거로 사용할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;동작 원리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자가 KEDA에 관리를 요청하기 위한 ScaledObject자원을 생성하면 admission에 의해서 검수 되고, 유효한 자원일 경우 SclaedObject와 KEDA가 관리하는 HPA 자원이 자동으로 생성됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 자동으로 생성된 HPA 자원의 지표 참조는 &lt;span data-token-index=&quot;1&quot;&gt;쿠버네티스의 메트릭 서버가 아닌 keda-metrics-apiserver를 참조&lt;/span&gt; 하도록 되어 습니다. 즉 &lt;span data-token-index=&quot;1&quot;&gt;KEDA는 애플리케이션 Pod들의 개수를 조절하는 스케일링 작업을 직접 수행하지 않습니다.&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;KEDA는 쿠버네티스 Horizontal Pod Autoscaler를 대체할 목적이 아닌 확장/보조를 목표로 개발되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;681&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sqBFV/dJMcadm5LHZ/P16mSk9XkCWQciJYA77lB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sqBFV/dJMcadm5LHZ/P16mSk9XkCWQciJYA77lB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sqBFV/dJMcadm5LHZ/P16mSk9XkCWQciJYA77lB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsqBFV%2FdJMcadm5LHZ%2FP16mSk9XkCWQciJYA77lB0%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;2048&quot; height=&quot;681&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;681&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구축 방안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 아래의 명령어를 이용해 SQS Queue를 생성해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1767454212235&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;aws sqs create-queue --queue-name order-queue&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 EKS 위에서 KEDA를 구성할 것이기에 아래의 Manifest를 이용해 Cluster를 생성해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1767454380011&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: order-cluster
  version: &quot;1.31&quot;
  region: ap-northeast-2

cloudWatch:
  clusterLogging:
    enableTypes: [&quot;*&quot;]

iam:
  withOIDC: true
  serviceAccounts:
    - metadata:
        name: aws-load-balancer-controller
        namespace: kube-system
      wellKnownPolicies:
        awsLoadBalancerController: true
    - metadata:
        name: cert-manager
        namespace: cert-manager
      wellKnownPolicies:
        certManager: true

vpc:
  subnets:
    public:
      ap-northeast-2a: { id: public_a }
      ap-northeast-2b: { id: public_b }
    private:
      ap-northeast-2a: { id: private_a }
      ap-northeast-2b: { id: private_b }

managedNodeGroups:
  - name: order-app-nodegroup
    instanceName: order-app-node
    instanceType: c5.large
    desiredCapacity: 2
    minSize: 2
    maxSize: 4
    privateNetworking: true&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 명령어를 이용해 Cluster를 생성해주면 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1767454406687&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;eksctl create cluster -f cluster.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 &lt;span&gt;아래의 명령어들을 통해 IAM 정책을 생성하고 IRSA를 통해 파드가 생성될 Namespace에 권한을&lt;/span&gt; 줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1767454545070&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CLUSTER_NAME=order-cluster
AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1767454580551&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; iam_policy.json
{
    &quot;Version&quot;: &quot;2012-10-17&quot;,
    &quot;Statement&quot;: [
        {
            &quot;Sid&quot;: &quot;GetQueueAttributes&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Action&quot;: [
                &quot;sqs:GetQueueAttributes&quot;,
                &quot;sqs:ReceiveMessage&quot;,
                &quot;sqs:GetQueueUrl&quot;,
                &quot;sqs:ListQueues&quot;,
                &quot;sqs:deletemessage&quot;
            ],
            &quot;Resource&quot;: &quot;*&quot;
        }
    ]
}
EOF&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1767454608971&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;aws iam create-policy \
    --policy-name SqsPolicy \
    --policy-document file://iam_policy.json&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1767454618822&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;eksctl create iamserviceaccount \
  --cluster=$CLUSTER_NAME \
  --namespace=order \
  --name=keda-operator \
  --role-name=keda-operator-role \
  --attach-policy-arn=arn:aws:iam::$AWS_ACCOUNT_ID:policy/SqsPolicy \
  --approve&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 &lt;span&gt;HELM 명령을 통해 KEDA를 설치해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1767454687157&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;helm repo add kedacore https://kedacore.github.io/charts
helm repo update
helm install keda kedacore/keda \
  -n order \
  --set serviceAccount.operator.create=false \
  --set serviceAccount.operator.name=keda-operator&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 아래의 Manifest를 통해 &lt;span&gt;AutoScaling이 이루어질 Deployment를 생성해주겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1767454734549&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: apps/v1
kind: Deployment
metadata:
  name: order-processor
  namespace: order
  labels:
    app: order-processor
spec:
  replicas: 1
  selector:
    matchLabels:
      app: order-processor
  template:
    metadata:
      labels:
        app: order-processor
    spec:
      serviceAccountName: keda-operator
      containers:
        - name: order-processor
          image: &amp;lt;AWS_ACCOUNT_ID&amp;gt;.dkr.ecr.ap-northeast-2.amazonaws.com/order-app:v1
          env:
            - name: QUEUE_URL
              value: &quot;https://sqs.ap-northeast-2.amazonaws.com/&amp;lt;AWS_ACCOUNT_ID&amp;gt;/order-queue&quot;
            - name: REGION_NAME
              value: ap-northeast-2
          ports:
            - containerPort: 8080&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 ScaledObject를 구성해주면 됩니다. &lt;span&gt;오토스케일링의 기준은 &lt;/span&gt;&lt;span&gt;&lt;b&gt;queueLength: &quot;5&quot;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;로 설정하였기에 SQS 큐에 메시지가 5개 이상일 때 Pod를 추가로 스케일링하게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1767454776922&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: order-processor-scaler
  namespace: order
spec:
  scaleTargetRef:
    name: order-processor
  minReplicaCount: 1
  maxReplicaCount: 10
  pollingInterval: 10
  cooldownPeriod:  60
  advanced:
    horizontalPodAutoscalerConfig:
      behavior:
        scaleDown:
          stabilizationWindowSeconds: 30   
          policies:
            - type: Percent
              value: 100                    
              periodSeconds: 15          
  triggers:
  - type: aws-sqs-queue
    metadata:
      queueURL: https://sqs.ap-northeast-2.amazonaws.com/&amp;lt;AWS_ACCOUNT_ID&amp;gt;/order-queue
      activationQueueLength: &quot;0&quot;
      queueLength: &quot;5&quot;
      awsRegion: ap-northeast-2
      identityOwner: operator&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 &lt;span&gt;KEDA의 개념과 Event Driven AutoScaling을 구현하는 글을 마치겠습니다. 감사합니다!&lt;/span&gt;&lt;/p&gt;</description>
      <category>Cloud/CNCF</category>
      <category>autoscaling</category>
      <category>CNCF</category>
      <category>eks</category>
      <category>keda</category>
      <category>kubernetes</category>
      <author>ISFJ 개발자의 이야기</author>
      <guid isPermaLink="true">https://jinseung0327.tistory.com/33</guid>
      <comments>https://jinseung0327.tistory.com/33#entry33comment</comments>
      <pubDate>Sun, 4 Jan 2026 00:44:02 +0900</pubDate>
    </item>
    <item>
      <title>Route53 DNS Query Logging</title>
      <link>https://jinseung0327.tistory.com/32</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 블로그에서는 Route53 DNS Query Logging에 대한 글을 작성해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;DNS Query Log란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 소유한 DNS에 누군가가 보안침해 시도를 할때에 DNS 쿼리 로그를 검출하여 분석하고 파악할 때 사용 되는 로그입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qCEnD/dJMcabizmbt/tFtULSR9vLpMmAmJvcwFH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qCEnD/dJMcabizmbt/tFtULSR9vLpMmAmJvcwFH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qCEnD/dJMcabizmbt/tFtULSR9vLpMmAmJvcwFH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqCEnD%2FdJMcabizmbt%2FtFtULSR9vLpMmAmJvcwFH1%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;477&quot; height=&quot;132&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;로그 정보&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Route53 DNS 쿼리 로그에서 아래의&lt;b&gt; 정보&lt;/b&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;/li&gt;
&lt;li&gt;요청 날짜 및 시간&lt;/li&gt;
&lt;li&gt;DNS 레코드 유형(A, AAAA 등)&lt;/li&gt;
&lt;li&gt;DNS 쿼리에 응답하는 Route 53 엣지 위치&lt;/li&gt;
&lt;li&gt;DNS 응답 코드&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구축 방안&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Route53 DNS Query Logging은 Public Domain으로만 생성할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 Route53의 Public Hosted Zone을 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1144&quot; data-origin-height=&quot;545&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZ9hTE/dJMb9957s2K/55RQvq1FvWgcZuRsS5EAW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZ9hTE/dJMb9957s2K/55RQvq1FvWgcZuRsS5EAW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZ9hTE/dJMb9957s2K/55RQvq1FvWgcZuRsS5EAW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZ9hTE%2FdJMb9957s2K%2F55RQvq1FvWgcZuRsS5EAW0%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;1144&quot; height=&quot;545&quot; data-origin-width=&quot;1144&quot; data-origin-height=&quot;545&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 Configure query logging을 선택해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;348&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vrxJj/dJMb99ZmdB7/qTKDAnA6NVCab99fKR0B51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vrxJj/dJMb99ZmdB7/qTKDAnA6NVCab99fKR0B51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vrxJj/dJMb99ZmdB7/qTKDAnA6NVCab99fKR0B51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvrxJj%2FdJMb99ZmdB7%2FqTKDAnA6NVCab99fKR0B51%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;1424&quot; height=&quot;348&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;348&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Route53은 글로벌 서비스 임으로 Cloud WatchLogs 로그 그룹은 버지니아 북부에 있는 것을 사용해야합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1142&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XyW5O/dJMcabbNnQc/FI8HlKvF8IKon8DYoO5FO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XyW5O/dJMcabbNnQc/FI8HlKvF8IKon8DYoO5FO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XyW5O/dJMcabbNnQc/FI8HlKvF8IKon8DYoO5FO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXyW5O%2FdJMcabbNnQc%2FFI8HlKvF8IKon8DYoO5FO1%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;1142&quot; height=&quot;390&quot; data-origin-width=&quot;1142&quot; data-origin-height=&quot;390&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 권한부여를 해준 뒤 생성해주면 로깅 설정을 끝 마칠 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;438&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WPRjR/dJMcagKWU6P/jJhrfThksmpkUVm3ldXok0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WPRjR/dJMcagKWU6P/jJhrfThksmpkUVm3ldXok0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WPRjR/dJMcagKWU6P/jJhrfThksmpkUVm3ldXok0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWPRjR%2FdJMcagKWU6P%2FjJhrfThksmpkUVm3ldXok0%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;1141&quot; height=&quot;438&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;438&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Result&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 설정을 성공적으로 끝 마쳤다면 아래의 사진과 같이 로그가 남는 모습을 확인 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nnGJf/dJMcahJRcRr/INgoBQrrpqeUo4vaCs7R60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nnGJf/dJMcahJRcRr/INgoBQrrpqeUo4vaCs7R60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nnGJf/dJMcahJRcRr/INgoBQrrpqeUo4vaCs7R60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnnGJf%2FdJMcahJRcRr%2FINgoBQrrpqeUo4vaCs7R60%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;746&quot; height=&quot;223&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 Route53 DNS Query Logging 글을 마치겠습니다. 감사합니다!&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>AWS</category>
      <category>dns</category>
      <category>log</category>
      <category>Logging</category>
      <category>query</category>
      <category>Route53</category>
      <author>ISFJ 개발자의 이야기</author>
      <guid isPermaLink="true">https://jinseung0327.tistory.com/32</guid>
      <comments>https://jinseung0327.tistory.com/32#entry32comment</comments>
      <pubDate>Sat, 3 Jan 2026 20:57:00 +0900</pubDate>
    </item>
    <item>
      <title>EC2 Connect Endpoint</title>
      <link>https://jinseung0327.tistory.com/31</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 블로그에서는 EC2 Connect Endpoint에 대한 개념 및 구축방법을 소개하는 글을 작성해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;EC2 Connect Endpoint 개념&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EC2 Instance Connect Endpoint는 결국 VPC Endpoint입니다. 이를 생성하게 되면 VPC 내부에 ENI가 생기게 되며 해당 ENI를 통해 Private Subnet에 22(SSH) 접속을 하게되는 원리입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dVGYlI/dJMcahpxJFE/KOc4SPUF27GyojuqvJa7mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dVGYlI/dJMcahpxJFE/KOc4SPUF27GyojuqvJa7mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dVGYlI/dJMcahpxJFE/KOc4SPUF27GyojuqvJa7mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdVGYlI%2FdJMcahpxJFE%2FKOc4SPUF27GyojuqvJa7mk%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;510&quot; height=&quot;422&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;EC2 Connect Endpoint의 제한사항&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EC2 Connect Endpoint는 다음과 같은 제한사항을 가지고 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;포트는 22 및 3389 포트만 지원됩니다.&lt;/li&gt;
&lt;li&gt;Ipv6주소를 지원하는 인스턴스 연결을 지원하지 않습니다.&lt;/li&gt;
&lt;li&gt;클라이언트 Ip 보존이 활성화되면 연결할 인스턴스는 EC2 Connect Endpoint와 동일한 VPC에 있어야합니다.&lt;/li&gt;
&lt;li&gt;트래픽이 TGW를 통해 라우팅 되면 클라이언트 IP 보존이 지원되지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구축 방안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단히 Public Subnet이 없는 VPC를 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4qqQP/dJMcabiyjJo/4PQw3qtgG54lWzZeZ3V2y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4qqQP/dJMcabiyjJo/4PQw3qtgG54lWzZeZ3V2y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4qqQP/dJMcabiyjJo/4PQw3qtgG54lWzZeZ3V2y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4qqQP%2FdJMcabiyjJo%2F4PQw3qtgG54lWzZeZ3V2y1%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;941&quot; height=&quot;211&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성했던 VPC의 Private Subnet에 EC2를 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1559&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnYtjF/dJMcacuZtmH/2kkNiYiUfrtkCws1Ao4vQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnYtjF/dJMcacuZtmH/2kkNiYiUfrtkCws1Ao4vQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnYtjF/dJMcacuZtmH/2kkNiYiUfrtkCws1Ao4vQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnYtjF%2FdJMcacuZtmH%2F2kkNiYiUfrtkCws1Ao4vQ1%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;1559&quot; height=&quot;429&quot; data-origin-width=&quot;1559&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 VPC의 Endpoint 메뉴에서 아래의 사진과 같이 EC2 Connect Endpoint를 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1145&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1Y87c/dJMcaaYfyj0/z08k4UaTVG32IBqY2uRbRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1Y87c/dJMcaaYfyj0/z08k4UaTVG32IBqY2uRbRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1Y87c/dJMcaaYfyj0/z08k4UaTVG32IBqY2uRbRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1Y87c%2FdJMcaaYfyj0%2Fz08k4UaTVG32IBqY2uRbRk%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;1145&quot; height=&quot;655&quot; data-origin-width=&quot;1145&quot; data-origin-height=&quot;655&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서브넷은 Private Subnet을 선택해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rgAy3/dJMcadUUPr1/JK6y9xWO4c3RpA2GZKRdDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rgAy3/dJMcadUUPr1/JK6y9xWO4c3RpA2GZKRdDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rgAy3/dJMcadUUPr1/JK6y9xWO4c3RpA2GZKRdDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrgAy3%2FdJMcadUUPr1%2FJK6y9xWO4c3RpA2GZKRdDK%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;1147&quot; height=&quot;576&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 다시 EC2로 돌아와 EC2 Instance Connect Endpoint로 EC2접속을 시도합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFiusY/dJMcacodFeJ/AjdI9Wvmfz91agxdypXxU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFiusY/dJMcacodFeJ/AjdI9Wvmfz91agxdypXxU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFiusY/dJMcacodFeJ/AjdI9Wvmfz91agxdypXxU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFiusY%2FdJMcacodFeJ%2FAjdI9Wvmfz91agxdypXxU1%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;1153&quot; height=&quot;532&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Result&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성공적으로 되었다면 아래의 사진과 같이 접속이 잘되는 모습을 확인 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;323&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yiTgP/dJMcagxnEDZ/jSgnBCAYwuHQ6iwlZVaak1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yiTgP/dJMcagxnEDZ/jSgnBCAYwuHQ6iwlZVaak1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yiTgP/dJMcagxnEDZ/jSgnBCAYwuHQ6iwlZVaak1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyiTgP%2FdJMcagxnEDZ%2FjSgnBCAYwuHQ6iwlZVaak1%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;471&quot; height=&quot;323&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;323&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 EC2 Connect Endpoint에 대한 개념 및 구축방법을 소개하는 글을 마치겠습니다. 감사합니다!&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>AWS</category>
      <category>Connect Endpoint</category>
      <category>EC2</category>
      <category>VPC</category>
      <author>ISFJ 개발자의 이야기</author>
      <guid isPermaLink="true">https://jinseung0327.tistory.com/31</guid>
      <comments>https://jinseung0327.tistory.com/31#entry31comment</comments>
      <pubDate>Wed, 31 Dec 2025 22:59:17 +0900</pubDate>
    </item>
    <item>
      <title>NodeLocalDNS</title>
      <link>https://jinseung0327.tistory.com/30</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;NodeLocal DNSCache는 클러스터 노드에서 DaemonSet으로 DNS 캐싱 에이전트를 실행하여 클러스터 DNS 성능을 향상시키는 역할을 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;783&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhgxf4/dJMb9bo5JJa/QNkDobEGv5HYeWHtys7jn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhgxf4/dJMb9bo5JJa/QNkDobEGv5HYeWHtys7jn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhgxf4/dJMb9bo5JJa/QNkDobEGv5HYeWHtys7jn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdhgxf4%2FdJMb9bo5JJa%2FQNkDobEGv5HYeWHtys7jn1%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;940&quot; height=&quot;783&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;783&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Install NodeLocalDNS&lt;/h4&gt;
&lt;pre id=&quot;code_1761526892805&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;wget https://github.com/kubernetes/kubernetes/raw/master/cluster/addons/dns/nodelocaldns/nodelocaldns.yaml

kubedns=`kubectl get svc kube-dns -n kube-system -o jsonpath={.spec.clusterIP}`
domain='cluster.local'    ## default 값
localdns='169.254.20.10'  ## default 값

sed -i &quot;s/__PILLAR__LOCAL__DNS__/$localdns/g; s/__PILLAR__DNS__DOMAIN__/$domain/g; s/__PILLAR__DNS__SERVER__/$kubedns/g&quot; nodelocaldns.yaml

kubectl apply -f nodelocaldns.yaml&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Cloud/Kubernetes</category>
      <category>k8s</category>
      <category>kubernetes</category>
      <category>NodeLocalDNS</category>
      <author>ISFJ 개발자의 이야기</author>
      <guid isPermaLink="true">https://jinseung0327.tistory.com/30</guid>
      <comments>https://jinseung0327.tistory.com/30#entry30comment</comments>
      <pubDate>Mon, 27 Oct 2025 10:02:07 +0900</pubDate>
    </item>
  </channel>
</rss>