<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>teamsmiley 블로그</title>
    <description>개인적인 경험을 공유하는 곳입니다. 여러분께 아주 조그만 도움이라도 되었으면 합니다.
</description>
    <link>http://teamsmiley.github.io/</link>
    <atom:link href="http://teamsmiley.github.io/rss" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 05 Mar 2024 03:26:19 +0000</pubDate>
    <lastBuildDate>Tue, 05 Mar 2024 03:26:19 +0000</lastBuildDate>
    <generator>Jekyll v3.9.5</generator>
    
      <item>
        <title>rendercore close</title>
        <description>&lt;h1 id=&quot;rendercorecom-close&quot;&gt;rendercore.com close&lt;/h1&gt;

&lt;p&gt;오늘부로 랜더코어를 닫았다.&lt;/p&gt;

&lt;p&gt;20년간 신입부터 사장까지 하면서 많은걸 알려준 나의 분신같은 존재를 오늘부로 닫는다.&lt;/p&gt;

&lt;p&gt;이글을 쓰는 순간 눈물이 나려고 한다. 20년간 많은걸 배웠고 많은걸 했다. 그리고 많은걸 이뤘다.&lt;/p&gt;

&lt;p&gt;그동안 수고햇다 랜더코어. 이렇게 인생의 한 챕터를 클로즈 하게 된다.&lt;/p&gt;

&lt;p&gt;이제는 새로운 챕터를 시작해야 한다. 어떻게 해야할가?&lt;/p&gt;

&lt;p&gt;천천히 고민해봐야겟다.&lt;/p&gt;

&lt;p&gt;그래도 오늘은 그동안 고생햇던 나 자신에게 한잔의 술을 사주고 싶은데..건강상의 문제로 마시지를 못하니 더 슬프다.&lt;/p&gt;

&lt;p&gt;그동안 고생햇다 랜더코어.&lt;/p&gt;

&lt;p&gt;그동안 고생햇다 병용이도.&lt;/p&gt;

&lt;p&gt;나만의 기억이지만 이바닥에서 한가닥 작은 선을 긋기도 햇다고 생각한다. 그런데 시대는 변하고 그걸 쫒아가지 못햇고. 다시하면 잘할수 잇을것 같다.&lt;/p&gt;

&lt;p&gt;사실 마음이 떠난지는 오래고 이날이 올지도 오래전에 알고 있엇지만. 미련하게 부여잡고만 있엇는데…이제 그만 놓아줘야겟다.&lt;/p&gt;

&lt;p&gt;자 또 20년을 위한 뭔가를 또 시작해볼가?&lt;/p&gt;

&lt;p&gt;소스코드랑 이런건 다 오픈소스로 풀고 이바닥을 떠나자..오늘은 ..쉬고 조만간 오픈.&lt;/p&gt;

&lt;p&gt;idc 관리 / 클라우드 관리/ devops / program 컨설팅 필요하신분들은 연락주세요. remote work 환영합니다. teamsmiley@gmail.com&lt;/p&gt;
</description>
        <pubDate>Mon, 31 Oct 2022 00:00:00 +0000</pubDate>
        <link>http://teamsmiley.github.io/2022/10/31/rendercore-close/</link>
        <guid isPermaLink="true">http://teamsmiley.github.io/2022/10/31/rendercore-close/</guid>
        
        <category>life</category>
        
        
        <category>{&quot;me&quot;=&gt;nil}</category>
        
      </item>
    
      <item>
        <title>kubespray 1.27.0 calico node restart issue</title>
        <description>&lt;h1 id=&quot;calico-node-restart-issue&quot;&gt;calico node restart issue&lt;/h1&gt;

&lt;p&gt;k8s cluster 에서 calico node가 자꾸 리스타트를 한다.&lt;/p&gt;

&lt;p&gt;문제를 찾아보다 확인된 issue&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/projectcalico/calico/issues/5122&quot;&gt;https://github.com/projectcalico/calico/issues/5122&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;내용인즉은 timeout이 1초로 되잇다고한다. 그래서 unhealth가 되서 자꾸 재시작이 됨.&lt;/p&gt;

&lt;p&gt;daemonset에서 1초를 10초로 변경해주면 문제가 없어진다.&lt;/p&gt;

&lt;p&gt;kubespray 1.27.0에서만 발생하는 이슈이고 1.27.1에서는 발생하지 않는다.&lt;/p&gt;

&lt;p&gt;1.27.1에서는 다음 옵션이 추가가 되서 시간을 더 늘릴수도 있다.&lt;/p&gt;

&lt;div class=&quot;language-sh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# Under certain situations liveness and readiness probes may need tunning&lt;/span&gt;
calico_node_livenessprobe_timeout: 11
calico_node_readinessprobe_timeout: 11
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;기본값은 10초이다.&lt;/p&gt;

&lt;p&gt;이것때문에 설치를 몇번을 더햇는지 모른다.&lt;/p&gt;

&lt;p&gt;참고로 업그레이드커맨드는&lt;/p&gt;

&lt;div class=&quot;language-sh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ansible-playbook &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; inventory/c2/hosts.yml upgrade-cluster.yml &lt;span class=&quot;nt&quot;&gt;-b&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt;  &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; root
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Wed, 29 Dec 2021 00:00:00 +0000</pubDate>
        <link>http://teamsmiley.github.io/2021/12/29/calico/</link>
        <guid isPermaLink="true">http://teamsmiley.github.io/2021/12/29/calico/</guid>
        
        <category>code</category>
        
        
        <category>{&quot;program&quot;=&gt;nil}</category>
        
      </item>
    
      <item>
        <title>Docker Volume Mount Permission</title>
        <description>&lt;h1 id=&quot;docker-volume-mount시-permission-관련-문제&quot;&gt;Docker Volume Mount시 Permission 관련 문제&lt;/h1&gt;

&lt;p&gt;오랜만에 docker-compose를 만들일이 있어서 file을 볼륨 마운트로 처리하였다.&lt;/p&gt;

&lt;p&gt;그런데 뭐가 잘 안되서 이해가 안되서 하나씩 찾아보았다.&lt;/p&gt;

&lt;p&gt;도커에 볼륨 마운트를 한 파일이 읽기 전용이라 호스트에서 아무리 바꾸어도 도커에서 그 파일을 확인해보면 도커 로딩시 읽었던 파일 그대로 되있다.&lt;/p&gt;

&lt;p&gt;문제는 호스트 서버에서는 파일의 소유주가 ubuntu였고 755 로 권한이 주어져 있었다.&lt;/p&gt;

&lt;p&gt;도커는 root로 돌고 있엇다. sudo 명령어를 사용하여 실행에는 문제가 없엇으나 실행된 도커는 파일에 쓰기 권한이 없었던 것이엿다.&lt;/p&gt;

&lt;p&gt;해결방법은 파일의 소유주를 root로 모두 변경하고 도커를 올리면 호스트에서 수정된 파일이 도커안에서도 수정되었다.&lt;/p&gt;

&lt;p&gt;마운트전 권한을 잘 확인하는 법도 필요하다.&lt;/p&gt;

&lt;h2 id=&quot;추가&quot;&gt;추가&lt;/h2&gt;

&lt;p&gt;다시 해보니 잘 안됨.&lt;/p&gt;

&lt;p&gt;파일 권한을 777로 하면 호스트에서 파일을 바꾸면 도커에도 잘 들어간다.&lt;/p&gt;

&lt;p&gt;일단 이렇게 해결은 햇는데 이상함.&lt;/p&gt;

&lt;h2 id=&quot;해결&quot;&gt;해결&lt;/h2&gt;

&lt;p&gt;드디어 해결했다.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker exec -it aaa bash&lt;/code&gt; 로 들어가서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;id&lt;/code&gt;를 치고 엔터해보면 동작하고 있는 유저 그룹등이 나온다.&lt;/p&gt;

&lt;p&gt;호스트에서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chown -R 123:123 XXXX&lt;/code&gt;으로 유저를 위에서 확인된 유저로 지정을 해주면 된다.&lt;/p&gt;
</description>
        <pubDate>Sun, 01 Aug 2021 00:00:00 +0000</pubDate>
        <link>http://teamsmiley.github.io/2021/08/01/docker-volume/</link>
        <guid isPermaLink="true">http://teamsmiley.github.io/2021/08/01/docker-volume/</guid>
        
        <category>code</category>
        
        
        <category>{&quot;program&quot;=&gt;nil}</category>
        
      </item>
    
      <item>
        <title>AWS Bill - 02</title>
        <description>&lt;h1 id=&quot;aws-bill---02&quot;&gt;AWS Bill - 02&lt;/h1&gt;

&lt;h2 id=&quot;로드-발란스&quot;&gt;로드 발란스&lt;/h2&gt;

&lt;p&gt;지난번에 로드 발란스를 1개로 줄이고 일비용이 얼마나 줄었을가? 확인해보았다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/aws-bill/aws-bill-01.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/aws-bill/aws-bill-02.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;36불에서 16불때로 반정도 비용이 줄어들었다.&lt;/p&gt;

&lt;p&gt;로드 발란스 비용을 줄이고 나니 더 추가로 비용을 줄일게 없을가 하는 고민을 했다.&lt;/p&gt;

&lt;h2 id=&quot;staging은-idc에서&quot;&gt;staging은 idc에서&lt;/h2&gt;

&lt;p&gt;staging 환경은 사실 테스트로 사용되기 때문에 멈춰도 크게 문제가 없다. 그래서 staging은 on premise에서 돌리기로 하였다.&lt;/p&gt;

&lt;p&gt;하이브리드 kubernetes를 만들려는 욕심도 있긴 있었다.&lt;/p&gt;

&lt;p&gt;kubespray로 kube를 올린후 스테이징 환경을 모두 aws에서 내렸다.&lt;/p&gt;

&lt;p&gt;node를 줄일수 있으면 노드도 줄여주었다. 1개 줄었음. 4대에서 3대로&lt;/p&gt;

&lt;h2 id=&quot;ecr-docker-registry&quot;&gt;ecr (docker registry)&lt;/h2&gt;

&lt;p&gt;하다 보니 docker registry도 idc에 있는 gitlab을 사용하여 github action 실행시 이미지도 idc에 있는 gitlab에 올려 주었다.&lt;/p&gt;

&lt;p&gt;이로써 네트워크 비용과 ecr비용도 줄어들기를 기대해본다.&lt;/p&gt;

&lt;p&gt;추가로 LifeCycle policy 이용하여 마지막 5개의 이미지만 보관하게 처리하였다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/aws-bill/aws-bill-03.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;구조도&quot;&gt;구조도&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/aws-bill/aws-bill-04.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 10 Jul 2021 00:00:00 +0000</pubDate>
        <link>http://teamsmiley.github.io/2021/07/10/aws-bill-02/</link>
        <guid isPermaLink="true">http://teamsmiley.github.io/2021/07/10/aws-bill-02/</guid>
        
        <category>code</category>
        
        
        <category>{&quot;program&quot;=&gt;nil}</category>
        
      </item>
    
      <item>
        <title>AWS Bill</title>
        <description>&lt;h1 id=&quot;aws-bill&quot;&gt;AWS Bill&lt;/h1&gt;

&lt;p&gt;개인 프로젝트를 aws에 eks에 올려두었는데 비용이 많이 나와버렷다. 1200불/month 이다.&lt;/p&gt;

&lt;p&gt;너무 비싸서 줄여보기를 시작햇다.&lt;/p&gt;

&lt;p&gt;지금 확인한것은 application load balance를 도메인당 하나를 만들어두었는데 이게 가격이 하나당 한달에 30불 정도 나온다. 총 staing/prod 까지 10개만 되도 300불이 나온다.&lt;/p&gt;

&lt;p&gt;이걸 줄이기 위한 방법을 고민해보았다&lt;/p&gt;

&lt;p&gt;옵션 1: alb -&amp;gt; ingress-nginx -&amp;gt; service 로 보내서 한개의 alb만 사용하는 방법
옵션 2: alb를 가지고 뭔가를 해보는 방법.&lt;/p&gt;

&lt;p&gt;옵션 1로는 할수는 있으나 가급적이면 alb로 처리해보고 싶어졌다.&lt;/p&gt;

&lt;p&gt;확인해보자.&lt;/p&gt;

&lt;p&gt;일단 기존에 도메인 별로 되있던 인그레스를 다음처럼 변경하였다.&lt;/p&gt;

&lt;p&gt;기존&lt;/p&gt;

&lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nn&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;apiVersion&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;networking.k8s.io/v1&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;kind&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Ingress&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;api&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;namespace&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;xgrid-prod&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;annotations&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;kubernetes.io/ingress.class&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;alb'&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/scheme&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;internet-facing&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/listen-ports&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;[{&quot;HTTP&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;80},{&quot;HTTPS&quot;:443}]'&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/certificate-arn&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;arn:aws:acm:us-west-1:xxxxxxx:certificate/8627eabd-9fb4-4952-9835-7955fbbb&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/actions.ssl-redirect&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;{&quot;Type&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;redirect&quot;,&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;RedirectConfig&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Protocol&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;HTTPS&quot;,&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Port&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;443&quot;,&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;StatusCode&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;HTTP_301&quot;}}'&lt;/span&gt;

&lt;span class=&quot;na&quot;&gt;spec&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;api.aaa.com&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;paths&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;ssl-redirect&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                  &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;use-annotation&lt;/span&gt;
          &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;api&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                  &lt;span class=&quot;na&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;80&lt;/span&gt;

&lt;span class=&quot;nn&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;apiVersion&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;networking.k8s.io/v1&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;kind&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Ingress&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;id-server&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;namespace&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;xgrid-prod&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;annotations&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;kubernetes.io/ingress.class&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;alb'&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/scheme&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;internet-facing&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/listen-ports&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;[{&quot;HTTP&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;80},{&quot;HTTPS&quot;:443}]'&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/certificate-arn&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;arn:aws:acm:us-west-1:xxxxxxx:certificate/8627eabd-9fb4-4952-9835-7955fbbb&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/actions.ssl-redirect&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;{&quot;Type&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;redirect&quot;,&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;RedirectConfig&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Protocol&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;HTTPS&quot;,&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Port&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;443&quot;,&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;StatusCode&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;HTTP_301&quot;}}'&lt;/span&gt;

&lt;span class=&quot;na&quot;&gt;spec&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;auth.aaa.com&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;paths&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;ssl-redirect&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                  &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;use-annotation&lt;/span&gt;
          &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;id-server&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                  &lt;span class=&quot;na&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;80&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;변경후&lt;/p&gt;

&lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nn&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;apiVersion&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;networking.k8s.io/v1&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;kind&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Ingress&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;xgrid-prod&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;namespace&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;xgrid-prod&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;annotations&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;kubernetes.io/ingress.class&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;alb'&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/scheme&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;internet-facing&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/listen-ports&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;[{&quot;HTTP&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;80},{&quot;HTTPS&quot;:443}]'&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/certificate-arn&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;arn:aws:acm:us-west-1:xxxxxx:certificate/8627eabd-9fb4-4952-9835-xxxxba&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/actions.ssl-redirect&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;{&quot;Type&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;redirect&quot;,&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;RedirectConfig&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Protocol&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;HTTPS&quot;,&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Port&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;443&quot;,&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;StatusCode&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;HTTP_301&quot;}}'&lt;/span&gt;

&lt;span class=&quot;na&quot;&gt;spec&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;api.aaa.com&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;paths&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;ssl-redirect&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                  &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;use-annotation&lt;/span&gt;
          &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;api&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                  &lt;span class=&quot;na&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;80&lt;/span&gt;

    &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;auth.aaa.com&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;paths&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;ssl-redirect&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                  &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;use-annotation&lt;/span&gt;
          &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;id-server&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                  &lt;span class=&quot;na&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;80&lt;/span&gt;

    &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;www.aaa.com&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;paths&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;ssl-redirect&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                  &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;use-annotation&lt;/span&gt;
          &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;www&lt;/span&gt;
                &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
                  &lt;span class=&quot;na&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;80&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;로드발란스가 3개에서 1개로 줄었다. 비용이 1/3줄어 들었다. 해보고 나니 구지 도메인당 하나로 할 필요는 없어 보인다.&lt;/p&gt;

&lt;p&gt;현재 ssl이 한개여서 이렇게 적용이 가능햇으나 aaa.com에는 적용을 하지 못햇다. 왜나면 ssl이 다르기 때문이다.&lt;/p&gt;

&lt;h2 id=&quot;여러개의-도메인에-ssl을-적용하기&quot;&gt;여러개의 도메인에 ssl을 적용하기&lt;/h2&gt;

&lt;p&gt;certificate manager에서 ssl을 만든다.&lt;/p&gt;

&lt;p&gt;기존 ssl 설정에 arn을 추가해준다.&lt;/p&gt;

&lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/certificate-arn&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;arn:aws:acm:us-west-1:xxxxxxx:certificate/8627eabd-9fb4-4952-9835-xxxxxxxc2ddfba,arn:aws:acm:us-west-1:xxxxxxx:certificate/a35a9d31-073d-4785-942f-xxxc22b30&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;#comma로 구분후 연결한다.&lt;/span&gt;

&lt;span class=&quot;s&quot;&gt;.....&lt;/span&gt;

&lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;xgridcolo.com&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;paths&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;pathType&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Prefix&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;backend&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;www&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;80&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;www를 추가 했고 ssl만 추가해두면 sni를 구분해서 자동으로 매치를 해주는듯 보인다.&lt;/p&gt;

&lt;p&gt;가격이 1/3으로 줄어들었다.&lt;/p&gt;

&lt;h2 id=&quot;1개로-줄이기&quot;&gt;1개로 줄이기&lt;/h2&gt;

&lt;p&gt;namespace가 다른데 하나의 인그레스로 설정해서 쓰고 싶어졌다.&lt;/p&gt;

&lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;alb.ingress.kubernetes.io/group.name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;shared-ingress&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;이걸 추가하면 로드발란스가 shared-ingress로 만들어지고 다른 모든것들이 이 로드발란스를 사용한다.&lt;/p&gt;

&lt;p&gt;Ingress가 다 각각의 name space에 생기는것은 맞다.&lt;/p&gt;

&lt;p&gt;그리고 그것들이 하나의 로드발란스를 사용한다.&lt;/p&gt;

&lt;p&gt;가격이 1/10 으로 줄어들었다.&lt;/p&gt;
</description>
        <pubDate>Sat, 03 Jul 2021 00:00:00 +0000</pubDate>
        <link>http://teamsmiley.github.io/2021/07/03/aws-bill/</link>
        <guid isPermaLink="true">http://teamsmiley.github.io/2021/07/03/aws-bill/</guid>
        
        <category>code</category>
        
        
        <category>{&quot;program&quot;=&gt;nil}</category>
        
      </item>
    
      <item>
        <title>npm shrinkwrap</title>
        <description>&lt;h1 id=&quot;npm-shrinkwrap&quot;&gt;npm shrinkwrap&lt;/h1&gt;

&lt;p&gt;결론 먼저 : 사용하는 패키지의 디펜던시의 버전을 수정해야 하는 경우 사용&lt;/p&gt;

&lt;p&gt;잘되던 프로젝트가 build가 안되는 문제가 발생햇다.&lt;/p&gt;

&lt;p&gt;왜 그런지 확인을 해보니 capacitor가 2에서 3으로 업데이트되면서 뭔가가 바뀐것 같다.&lt;/p&gt;

&lt;p&gt;일단 뭐가 바뀌엇는지는 따로해결하기로 하고 빌드부터 해결하기로 햇다.&lt;/p&gt;

&lt;p&gt;원인을 찾아보니 ionic-appauth 패키지가 capacitor-secure-storage-plugin 을 사용한다.&lt;/p&gt;

&lt;p&gt;현재는 0.4.0을 사용하는데 이 버전을 0.5.1로 해주면 해결이 된다.&lt;/p&gt;

&lt;p&gt;문제는 ionic-appauth 에서 관리되는 버전을 어떻게 바꾸는지가 문제가 됬다.&lt;/p&gt;

&lt;p&gt;검색을 해보니 npm shrinkwrap 가 보인다.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;npm shrinkwrap
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;일단 프로젝트에 npm-shrinkwrap.json 파일이 생긴다.
다음처럼 작성했다.&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;dependencies&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;capacitor-secure-storage-plugin&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;version&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;0.5.1&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;dependencies&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;@capacitor/core&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;version&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;2.4.7&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ioinc build&lt;/code&gt;를 해보면 문제없이 잘 되는것을 알수있다.&lt;/p&gt;

&lt;p&gt;일단 해결 완료.&lt;/p&gt;

&lt;h2 id=&quot;vscode에서-warning&quot;&gt;vscode에서 warning&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2021-07-01-npm-shrinkwrap/2021-07-01-07-49-07.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2021-07-01-npm-shrinkwrap/2021-07-01-07-49-44.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;5000 -&amp;gt; 50000으로 일단 변경해두고 사용하자.&lt;/p&gt;

&lt;h2 id=&quot;todo&quot;&gt;todo&lt;/h2&gt;

&lt;p&gt;그런데 프로젝트를 바꾼게 없는데 왜 안될가? 어디서 바뀌었을가? 현재는 capacitor 3을 쓰고 잇는것인가? 이상하네..&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://npmjs.org/doc/shrinkwrap.html&quot;&gt;https://npmjs.org/doc/shrinkwrap.html&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 01 Jul 2021 00:00:00 +0000</pubDate>
        <link>http://teamsmiley.github.io/2021/07/01/npm-shrinkwrap/</link>
        <guid isPermaLink="true">http://teamsmiley.github.io/2021/07/01/npm-shrinkwrap/</guid>
        
        <category>code</category>
        
        
        <category>{&quot;program&quot;=&gt;nil}</category>
        
      </item>
    
      <item>
        <title>Github commit message</title>
        <description>&lt;h1 id=&quot;github-commit-message&quot;&gt;Github commit message&lt;/h1&gt;

&lt;h2 id=&quot;skip-ci&quot;&gt;skip ci&lt;/h2&gt;

&lt;p&gt;Github Action을 커밋 메세지로 스킵하고 싶어졌다. 구지 ci가 필요가 없는 경우 빌드시간이 아까우니..&lt;/p&gt;

&lt;p&gt;커밋 메세지에 다음을 사용하면 ci가 동작하지 않는다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;[skip ci]&lt;/li&gt;
  &lt;li&gt;[ci skip]&lt;/li&gt;
  &lt;li&gt;[no ci]&lt;/li&gt;
  &lt;li&gt;[skip actions]&lt;/li&gt;
  &lt;li&gt;[actions skip]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/&quot;&gt;https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;close-issue&quot;&gt;close issue&lt;/h2&gt;

&lt;p&gt;커밋메세지에 다음을 포함하면 이슈를 닫을수 있다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;close&lt;/li&gt;
  &lt;li&gt;closes&lt;/li&gt;
  &lt;li&gt;closed&lt;/li&gt;
  &lt;li&gt;fix&lt;/li&gt;
  &lt;li&gt;fixes&lt;/li&gt;
  &lt;li&gt;fixed&lt;/li&gt;
  &lt;li&gt;resolve&lt;/li&gt;
  &lt;li&gt;resolves&lt;/li&gt;
  &lt;li&gt;resolved&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ex)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;fixed #100&lt;/li&gt;
  &lt;li&gt;다른 프로젝트도 같이 : Fixes octo-org/octo-repo#100&lt;/li&gt;
  &lt;li&gt;여러 프로젝트 함께 : Resolves #10, resolves #123, resolves octo-org/octo-repo#100&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword&quot;&gt;https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 01 Jul 2021 00:00:00 +0000</pubDate>
        <link>http://teamsmiley.github.io/2021/07/01/github-action-skip-ci/</link>
        <guid isPermaLink="true">http://teamsmiley.github.io/2021/07/01/github-action-skip-ci/</guid>
        
        <category>code</category>
        
        
        <category>{&quot;program&quot;=&gt;nil}</category>
        
      </item>
    
      <item>
        <title>Postman OAuth2 login</title>
        <description>&lt;h1 id=&quot;postman-oauth2-login&quot;&gt;Postman OAuth2 Login&lt;/h1&gt;

&lt;p&gt;포스트맨으로 OAuth2 로그인을 해보자.&lt;/p&gt;

&lt;p&gt;원하는 폴더에서 edit를 누르자.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2021-06-30-postman-oauth2/2021-06-30-16-57-57.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;type : OAuth2를 선택
&lt;img src=&quot;/assets/2021-06-30-postman-oauth2/2021-06-30-16-58-53.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;edit token configuration&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2021-06-30-postman-oauth2/2021-06-30-17-00-39.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2021-06-30-postman-oauth2/2021-06-30-17-04-06.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;정보를 잘 넣어주며 된다. identity server는 다음처럼 넣어주면 된다. 본인의 설정에 맞게 넣어주자.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Callback URL : https://staging.xxxx.com/signin-callback&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Auth URL : https://auth.staging.xxxx.net/connect/authorize&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Access Token URL : https://auth.staging.xxxx.net/connect/token&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;이제 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Get New Access token&lt;/code&gt; 버튼을 눌러보자.&lt;/p&gt;

&lt;p&gt;로그인 창이 나오면 로그인 해본다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2021-06-30-postman-oauth2/2021-06-30-17-11-50.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;토큰을 받아오면&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2021-06-30-postman-oauth2/2021-06-30-17-13-08.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2021-06-30-postman-oauth2/2021-06-30-17-13-40.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;use token을 누르면 저장된다.&lt;/p&gt;

&lt;h2 id=&quot;브라우저를-이용하여-로그인하기&quot;&gt;브라우저를 이용하여 로그인하기&lt;/h2&gt;

&lt;p&gt;구글 로그인등에서 포스트맨 브라우저를 오래된 브라우저로 인식해 로그인이 안되는 경우가 있다. 그래서 웹브라우저를 통해서 로그인하는 방법을 찾아보았다.&lt;/p&gt;

&lt;p&gt;일단 idp에서 다음 url을 redirect url에 추가해두어야한다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://oauth.pstmn.io/v1/callback&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;이제 포스트맨에서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Authorize using browser&lt;/code&gt; 체크하면 브라우저가 실행된다. 로그인을 하면 포스트맨을 실행할거냐고 묻는다.&lt;/p&gt;

&lt;p&gt;실행하면 토큰이 포스트맨으로 옮겨져 있다.&lt;/p&gt;
</description>
        <pubDate>Wed, 30 Jun 2021 00:00:00 +0000</pubDate>
        <link>http://teamsmiley.github.io/2021/06/30/postman-oauth2/</link>
        <guid isPermaLink="true">http://teamsmiley.github.io/2021/06/30/postman-oauth2/</guid>
        
        <category>code</category>
        
        
        <category>{&quot;program&quot;=&gt;nil}</category>
        
      </item>
    
      <item>
        <title>일기 - 가훈</title>
        <description>&lt;h1 id=&quot;일기---가훈&quot;&gt;일기 - 가훈&lt;/h1&gt;

&lt;p&gt;공개 일기를 써볼가 싶은 생각이 들었다.&lt;/p&gt;

&lt;p&gt;자꾸 생각을 안하게 되는것 같아서 생각을 정리하기 위해.&lt;/p&gt;

&lt;p&gt;미생을 보는데 가훈 사훈 이런 말이 나왔다. 훈이 무슨말일가 궁금해서 찾아봤다. 가르칠 훈.&lt;/p&gt;

&lt;p&gt;가훈의 뜻은 한 “집안의 행동이나 생활에 지침이 되는 교훈” 이네..가르치다 보다는 교훈쪽이 더 맞는것도 같다.&lt;/p&gt;

&lt;p&gt;아무튼 이제 개(인)훈 또는 나(의)훈을 정해봤다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;선택, 집중, 실행&lt;/li&gt;
  &lt;li&gt;핵심에 바로 집중 “stright to point”&lt;/li&gt;
  &lt;li&gt;긍정적인 생각&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;이 정도로 일단 정해보자. 그리고 매일 읽어보자.&lt;/p&gt;

&lt;p&gt;ps) 오늘 플래너에 적은 글&lt;/p&gt;

&lt;p&gt;하나의 걱정이 가고 나니 또 다른 걱정이 온다.&lt;/p&gt;

&lt;p&gt;사실 새로운 걱정이 생긴것은 아니고 큰 걱정에 가려져있던 걱정이 다시 보이기 시작한 것뿐.&lt;/p&gt;

&lt;p&gt;보이지만 안보려고 노력했다. 하시만 이제 직시(바로 보기)를 해야한다.&lt;/p&gt;

&lt;p&gt;어떤 것은 끝을 봐야하는 것이 있다고 한다. 그래야 배울수 있다. 실패를 하던 성공을 하던 배울수있다.&lt;/p&gt;

&lt;p&gt;조금 더 나은 내가 되기 위해 끝을 봐야한다.&lt;/p&gt;

&lt;p&gt;중요한건 최선을 다하는 것이다. 그리고 끝을 봐야한다.&lt;/p&gt;

&lt;p&gt;생각의 힘을 가지고 인생의 주인이 되서 살아보자.&lt;/p&gt;

&lt;p&gt;ps2) 이 글을 적는 이유는 비지니스 경영자를 위한 업무 집중 방법이라는 글에서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;다른 사람들에게 약속을 공언하기&lt;/code&gt; 라는 부분이 있엇는데 마음에 들어서 일기 형식으로 공언해본다.&lt;/p&gt;

&lt;p&gt;말해두면 지키게 되겟지 ^^&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2021-06-29-10-27-50.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;2021-06-29&lt;/p&gt;
</description>
        <pubDate>Tue, 29 Jun 2021 00:00:00 +0000</pubDate>
        <link>http://teamsmiley.github.io/2021/06/29/journal/</link>
        <guid isPermaLink="true">http://teamsmiley.github.io/2021/06/29/journal/</guid>
        
        <category>code</category>
        
        
        <category>{&quot;program&quot;=&gt;nil}</category>
        
      </item>
    
      <item>
        <title>google api 사용법</title>
        <description>&lt;h1 id=&quot;google-api-사용법&quot;&gt;google api 사용법&lt;/h1&gt;

&lt;h2 id=&quot;구글-api-콘솔에서-프로젝트-생성&quot;&gt;구글 API 콘솔에서 프로젝트 생성&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-00.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;구글-api-라이브러리-추가&quot;&gt;구글 API 라이브러리 추가&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-00-1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/2021-06-25-09-27-27.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;원하는 라이브러리 추가&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/2021-06-25-09-28-11.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;사용자-인증-정보-추가&quot;&gt;사용자 인증 정보 추가&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-01.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-02.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-03.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-04.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;프로젝트-삭제&quot;&gt;프로젝트 삭제&lt;/h2&gt;

&lt;p&gt;사용이 끝나면 삭제&lt;/p&gt;

&lt;h3 id=&quot;프로젝트-선택&quot;&gt;프로젝트 선택&lt;/h3&gt;

&lt;p&gt;원하는 프로젝트를 선택한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-00.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;프로젝트-설정-클릭&quot;&gt;프로젝트 설정 클릭&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-06.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;종료-클릭&quot;&gt;종료 클릭&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-07.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-08.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/google-api-09.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;api-제한&quot;&gt;api 제한&lt;/h2&gt;

&lt;p&gt;api를 제한하지 않으면 사실 남들이 apikey를 가져가서 다 사용해버리면 과금이 엄청 되버린다. 이부분을 항상 고려해야할듯 싶다.&lt;/p&gt;

&lt;p&gt;일단 두개로 나눈다 외부에 오픈되는 키와 내부적으로만 사용되는키&lt;/p&gt;

&lt;h3 id=&quot;외부에-오픈되는-키&quot;&gt;외부에 오픈되는 키&lt;/h3&gt;

&lt;p&gt;외부에 오픈되는 키는 웹화면에서 소스보기를 하면 보이는 키이다. 이 키는 아무나 볼수가 있어서 누가 사용해버리면 과금이 발생한다.&lt;/p&gt;

&lt;p&gt;이 키는 apikey에 제한을 꼭 걸어야한다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;http 리퍼러를 통해 내 도메인에서만 들어오는 요청을 허용해야한다. 물론 개발을 위해서 localhost도 필수&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;api 제한 사항도 꼭 걸어야한다. 필요한 api만 이 키에 허용을 해준다.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;내부적으로-사용되는-키&quot;&gt;내부적으로 사용되는 키&lt;/h3&gt;

&lt;p&gt;api에서 사용되는 키를 말한다 코드가 서버에 있으므로 브라우저에 오픈이 되지 않는다.&lt;/p&gt;

&lt;p&gt;서버가 고정아이피라면 ip로 고정을 할수 있다. 이걸 추천한다.&lt;/p&gt;

&lt;p&gt;그런데 저는 아마존이라 그냥 전체를 오픈해서 사용중이다. 어차피 다른누군가 알 수가 없으므로 큰 의미는없으나 api모니터링을 좀 해야할듯 싶다.&lt;/p&gt;

&lt;p&gt;누가 아마존사용하면서 어플리케이션 제약에 서버 아이피로 처리가 가능하신분은 알려주시기 바란다.&lt;/p&gt;

&lt;p&gt;api는 꼭 본인이 사용하는 api만 체크를 하기 바란다.&lt;/p&gt;

&lt;h2 id=&quot;궁금한것&quot;&gt;궁금한것&lt;/h2&gt;

&lt;p&gt;하다보니 뭔가 api가 기본으로 설치된게 너무 많다..뭐를 쓰는건지도 모르고 정리가 잘 안되는 느낌이다.&lt;/p&gt;

&lt;p&gt;전체 프로젝트 리스트를 보면 구글 docs나 spredsheet에 쓰이는듯한 느낌적 느낌이 드는 프로젝트가 많이 있다 이게 뭘가?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/google-api/2021-06-25-09-38-01.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 25 Jun 2021 00:00:00 +0000</pubDate>
        <link>http://teamsmiley.github.io/2021/06/25/google-api/</link>
        <guid isPermaLink="true">http://teamsmiley.github.io/2021/06/25/google-api/</guid>
        
        <category>code</category>
        
        
        <category>{&quot;program&quot;=&gt;nil}</category>
        
      </item>
    
  </channel>
</rss>
