<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2814435022010153376</id><updated>2024-09-05T08:50:12.693-07:00</updated><category term="AWS"/><title type='text'>GoGo! Dinocore!</title><subtitle type='html'>seo&#39;s blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-5078798910101480179</id><published>2017-06-26T01:19:00.001-07:00</published><updated>2017-06-26T01:19:04.546-07:00</updated><title type='text'>lamda와 cloudwatch를 이용한 개발계 시스템 주중에만 작동 하도록 하기</title><content type='html'>목표: 개발계 시스템 주중 업무시간에만 작동하도록 자동화 한다.&lt;br /&gt;
&lt;br /&gt;
아래 대로 진행하면 해당 인스턴스 시작, 정지를 자동화 할 수 있다.&lt;br /&gt;
1. lambda 설정&lt;br /&gt;
2. cloudwatch rule 설정&lt;br /&gt;
3. trigger 등록&lt;br /&gt;
&lt;br /&gt;
1. lambda&amp;nbsp;설정&lt;br /&gt;
*stop server code(node.js)&lt;br /&gt;
var AWS = require(&#39;aws-sdk&#39;);&lt;br /&gt;
exports.handler = function(event, context) {&lt;br /&gt;
&amp;nbsp;var ec2 = new AWS.EC2({region: &#39;EC2 region&#39;});&lt;br /&gt;
&amp;nbsp;ec2.stopInstances({InstanceIds : [&#39;EC2 instance ID&#39;] },function (err, data) {&lt;br /&gt;
&amp;nbsp;if (err) console.log(err, err.stack); // an error occurred&lt;br /&gt;
&amp;nbsp;else console.log(data); // successful response&lt;br /&gt;
&amp;nbsp;context.done(err,data);&lt;br /&gt;
&amp;nbsp;});&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*start server code(node.js)&lt;br /&gt;
var AWS = require(&#39;aws-sdk&#39;);&lt;br /&gt;
exports.handler = function(event, context) {&lt;br /&gt;
&amp;nbsp;var ec2 = new AWS.EC2({region: &#39;EC2 region&#39;});&lt;br /&gt;
&amp;nbsp;ec2.startInstances({InstanceIds : [&#39;EC2 instance ID&#39;] },function (err, data) {&lt;br /&gt;
&amp;nbsp;if (err) console.log(err, err.stack); // an error occurred&lt;br /&gt;
&amp;nbsp;else console.log(data); // successful response&lt;br /&gt;
&amp;nbsp;context.done(err,data);&lt;br /&gt;
&amp;nbsp;});&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*role policy&lt;br /&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;{
  &quot;Version&quot;: &quot;2012-10-17&quot;,
  &quot;Statement&quot;: [
    {
      &quot;Effect&quot;: &quot;Allow&quot;,
      &quot;Action&quot;: [
        &quot;logs:CreateLogGroup&quot;,
        &quot;logs:CreateLogStream&quot;,
        &quot;logs:PutLogEvents&quot;
      ],
      &quot;Resource&quot;: &quot;arn:aws:logs:*:*:*&quot;
    },
    {
      &quot;Effect&quot;: &quot;Allow&quot;,
      &quot;Action&quot;: [
        &quot;ec2:Start*&quot;,
        &quot;ec2:Stop*&quot;
      ],
      &quot;Resource&quot;: &quot;*&quot;
    }
  ]
}&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;2. cloudwatch rule 설정&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;cloudwatch Rule 등록(Start, Stop 등록)&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;시작(월~금 01:00:00 GMT에 수행)&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;&lt;table data-reactid=&quot;.0.0.0.0.0.3.0.1&quot; style=&quot;color: #444444; font-family: &amp;quot;Helvetica Neue&amp;quot;, Roboto, Arial, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: small; table-layout: fixed; width: 1675px;&quot;&gt;&lt;tbody data-reactid=&quot;.0.0.0.0.0.3.0.1.0&quot;&gt;
&lt;tr data-reactid=&quot;.0.0.0.0.0.3.0.1.0.2&quot; style=&quot;height: 28px;&quot;&gt;&lt;td data-reactid=&quot;.0.0.0.0.0.3.0.1.0.2.0&quot; style=&quot;border: none; font-weight: bold; height: 22px; padding-right: 5px; text-align: right; vertical-align: top; width: 110px;&quot;&gt;&lt;span data-reactid=&quot;.0.0.0.0.0.3.0.1.0.2.0.0&quot;&gt;Schedule&lt;/span&gt;&lt;/td&gt;&lt;td data-reactid=&quot;.0.0.0.0.0.3.0.1.0.2.1&quot; style=&quot;border: none; height: 22px; vertical-align: top;&quot;&gt;&lt;div class=&quot;schedule-expression-display&quot; data-reactid=&quot;.0.0.0.0.0.3.0.1.0.2.1.0&quot; style=&quot;max-width: 800px; width: 800px;&quot;&gt;
&lt;span data-reactid=&quot;.0.0.0.0.0.3.0.1.0.2.1.0.0&quot;&gt;Cron expression&amp;nbsp;&lt;pre class=&quot;inline&quot; style=&quot;background-color: #f6f6f6; border-radius: 3px; border: 1px solid rgb(224, 224, 224); display: inline-block; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 11px; max-height: 300px; max-width: 800px; overflow-y: visible; padding: 0px 3px; position: relative; top: -1px; white-space: pre-wrap; width: auto; word-break: break-all;&quot;&gt;0 1 ? * MON-FRI *&lt;/pre&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;정지(월~금 09:00:00 GMT에 수행)&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;
&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;&lt;table data-reactid=&quot;.0.0.0.0.0.3.0.1&quot; style=&quot;color: #444444; font-family: &amp;quot;Helvetica Neue&amp;quot;, Roboto, Arial, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: small; table-layout: fixed; width: 1675px;&quot;&gt;&lt;tbody data-reactid=&quot;.0.0.0.0.0.3.0.1.0&quot;&gt;
&lt;tr data-reactid=&quot;.0.0.0.0.0.3.0.1.0.2&quot; style=&quot;height: 28px;&quot;&gt;&lt;td data-reactid=&quot;.0.0.0.0.0.3.0.1.0.2.1&quot; style=&quot;border: none; height: 22px; vertical-align: top;&quot;&gt;&lt;div class=&quot;schedule-expression-display&quot; data-reactid=&quot;.0.0.0.0.0.3.0.1.0.2.1.0&quot; style=&quot;max-width: 800px; width: 800px;&quot;&gt;
&lt;span data-reactid=&quot;.0.0.0.0.0.3.0.1.0.2.1.0.0&quot;&gt;Cron expression&amp;nbsp;&lt;pre class=&quot;inline&quot; style=&quot;background-color: #f6f6f6; border-radius: 3px; border: 1px solid rgb(224, 224, 224); display: inline-block; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 11px; max-height: 300px; max-width: 800px; overflow-y: visible; padding: 0px 3px; position: relative; top: -1px; white-space: pre-wrap; width: auto; word-break: break-all;&quot;&gt;0 9 ? * MON-FRI *&lt;/pre&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;
&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;
&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border: none; color: #444444; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Monaco, monospace; font-size: 14px; font-stretch: normal; line-height: 1.3em; margin-bottom: 5px; margin-top: 5px; overflow: auto; padding: 10px;&quot;&gt;3. lamdba 서비스에서 add trigger에서 cloudwatch event 선택 후 시작, 정지를 선택후 적용&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/5078798910101480179/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2017/06/lamda-cloudwatch.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/5078798910101480179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/5078798910101480179'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2017/06/lamda-cloudwatch.html' title='lamda와 cloudwatch를 이용한 개발계 시스템 주중에만 작동 하도록 하기'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-2363287009386773425</id><published>2016-06-08T01:39:00.000-07:00</published><updated>2017-06-14T23:30:14.505-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type='text'>AWS를 이용한 Serverless 환경 구축 3 - AWS API Gateway를 통해 기존 DynamoDB 접근</title><content type='html'>Lambda와 DynamoDB를 연결한 상태에서 외부에서 접근하여 쓰기 및 읽기를 할 수 있도록 AWS API Gateway를 추가 해보자.&lt;br /&gt;
&lt;br /&gt;
이번에 해 볼 것은 API 생성 및 설정이다.&lt;br /&gt;
&lt;br /&gt;
API 설정(GET, POST)&lt;br /&gt;
&lt;br /&gt;
1. API Gateway를 생성한다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOtkq4D1Zsy3iQ160gZFxAF4fxjVZQfTwJDhMepYgwd3lcSxzP1sJzez1cfJMOxH9NjwSB5FCYkzXSCmRjv5Tf-OeIa8J5W5h3z1RnDMDLgWiht4Q2PlcAIptauUFmM1lnh0DroAoV6UM/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;241&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOtkq4D1Zsy3iQ160gZFxAF4fxjVZQfTwJDhMepYgwd3lcSxzP1sJzez1cfJMOxH9NjwSB5FCYkzXSCmRjv5Tf-OeIa8J5W5h3z1RnDMDLgWiht4Q2PlcAIptauUFmM1lnh0DroAoV6UM/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2. OK 버튼 클릭 후 &quot;New API&quot; 선택, API name 기입, 생성 한다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqk151X7dHiNfMRMtr6oEM8rI2UehtWCZzPzR1iiCMo-AJyffbht_Yu4O7KfMm07_uSRDzIBvDRNFpvNCPIEyZ-C48ahhdakXamJnlcuBW9jhZgQFqbFCxPcijLQ0ZjE2m3UNXOTRe0Kc/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqk151X7dHiNfMRMtr6oEM8rI2UehtWCZzPzR1iiCMo-AJyffbht_Yu4O7KfMm07_uSRDzIBvDRNFpvNCPIEyZ-C48ahhdakXamJnlcuBW9jhZgQFqbFCxPcijLQ0ZjE2m3UNXOTRe0Kc/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitiIeDFKx-r0V8Q-E4iUe-mCkMtTVDCD12j1_lAlcQmRTyzwyA7-F-WZiqxQ7veL_7C88VxrCbvOCCzgD6ZdShNDG_egWavRr6I_Pems7TrnDrxOd_XgLtiLIj_bZ45UnrP9uTClrNPvY/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;252&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitiIeDFKx-r0V8Q-E4iUe-mCkMtTVDCD12j1_lAlcQmRTyzwyA7-F-WZiqxQ7veL_7C88VxrCbvOCCzgD6ZdShNDG_egWavRr6I_Pems7TrnDrxOd_XgLtiLIj_bZ45UnrP9uTClrNPvY/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
3. Resource 항목의 Actions를 pull-down하여 Create Resource를 선택한다. Get, Post를 위한 각각 Resource를 만든다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDPZtlre8ErIAa8iWKowx33oIO4u2lQAH8_EH27OChukMMrcEGrgu4bnw4jvFxXJTqEwK19WRsSqi8yCm-EZk0YHhWSYd07I_si9VTCkTP2viftjVy03Q0l1FBErTWKTc6RL6upx8d3w8/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;262&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDPZtlre8ErIAa8iWKowx33oIO4u2lQAH8_EH27OChukMMrcEGrgu4bnw4jvFxXJTqEwK19WRsSqi8yCm-EZk0YHhWSYd07I_si9VTCkTP2viftjVy03Q0l1FBErTWKTc6RL6upx8d3w8/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
4. 각&amp;nbsp;Resource&amp;nbsp;아래 &quot;Create Method&quot; 통해 GET, POST를 생성함.(v 표 클릭해서 완성)&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Q_WeIQpEgTEEbg16yeiReXrCfIwohnlkQPgVmkfHEzY6hv03UMKx2BcR3grWtJtrUJXq-Hh_3dSHgGH2wua88cvoxmlYbxQrjZGOCmyDXt01BXqWCPJtMWfS5L5gxrwLYSG4xA8Z02Y/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;87&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Q_WeIQpEgTEEbg16yeiReXrCfIwohnlkQPgVmkfHEzY6hv03UMKx2BcR3grWtJtrUJXq-Hh_3dSHgGH2wua88cvoxmlYbxQrjZGOCmyDXt01BXqWCPJtMWfS5L5gxrwLYSG4xA8Z02Y/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
5. GET, POST method를 클릭하여 세부설정을 해 준다. 각각 DynamoDB에 GET, POST 한 Lambda 함수를 지역과 이름을 지정해 준다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLhKc184i3-Mx6Rur44y0mB-eZlUwc_KEr68kzM0UrT_ncCHXU9UvqO1EgvyMtAKUmh-4OHdetgb4cR3SDpYJCqMT3jRaFqZlod41mtdyvhFO5M1fmQmL0K9VXhelC43gYNRb3CReqdOo/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;262&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLhKc184i3-Mx6Rur44y0mB-eZlUwc_KEr68kzM0UrT_ncCHXU9UvqO1EgvyMtAKUmh-4OHdetgb4cR3SDpYJCqMT3jRaFqZlod41mtdyvhFO5M1fmQmL0K9VXhelC43gYNRb3CReqdOo/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
6. GET method를 선택하고 오른쪽에 있는 Method Execution에서 Method Request를 선택한다. &quot;URL&amp;nbsp;Query String Parameters&quot;에 &quot;id&quot;를 추가 해 준다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWWgQlX024yen_4QKfsAbs2iw3junqqlhzULo4wN9xSwGVF_lVBQ8CGjdErd8a0LjfcKogBP-nSjr7QYHe8jkss_rJlUhAALYM0KduCZdgXrPqFw9VYne1rxr6IVKVoqGMNAKYmXCsjus/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;339&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWWgQlX024yen_4QKfsAbs2iw3junqqlhzULo4wN9xSwGVF_lVBQ8CGjdErd8a0LjfcKogBP-nSjr7QYHe8jkss_rJlUhAALYM0KduCZdgXrPqFw9VYne1rxr6IVKVoqGMNAKYmXCsjus/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
7.&amp;nbsp;Method Execution에서 Integration Request를 선택한다. 하단의 &quot;Body Mapping Templates&quot;을 펼 친후 Content-Type에 &quot;application/json&quot;을 추가 한다. 아래 소스를 붙여 넣어 준다.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:js&quot;&gt;#set($inputRoot = $input.path(&#39;$&#39;))
{ &quot;id&quot;: &quot;$input.params(&#39;id&#39;)&quot; }
&lt;/pre&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFsoF3loiRQ67nl-CFgY3U0c0wu_LTrVKwJino6Sjtb3H9bT3cmdY2BY5n0SiFwA8LQ8c-HlcSx_vGuoCYtCfQXxi6_zTyKdwz6jhFpsFhgnA5cy3A96PsRQtFCVYRB_HPOroY4SZF-GA/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;414&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFsoF3loiRQ67nl-CFgY3U0c0wu_LTrVKwJino6Sjtb3H9bT3cmdY2BY5n0SiFwA8LQ8c-HlcSx_vGuoCYtCfQXxi6_zTyKdwz6jhFpsFhgnA5cy3A96PsRQtFCVYRB_HPOroY4SZF-GA/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;
8. Method Execution의 첫 화면으로 돌아 가서 &quot;Test&#39;를 클릭한다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbpyPlqwpGhliUvx7LmWORBDTYbBZItR68VHgOYnuwVOcwr1dSkIt0EGTWouAZOvGN0B7CQa0LJHLLEbMrBrqdxqySbQnVtUZ7DtnKLdpJ0lUknitgy7hYYD_yRwO5lED3iCfDieGsmfA/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;182&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbpyPlqwpGhliUvx7LmWORBDTYbBZItR68VHgOYnuwVOcwr1dSkIt0EGTWouAZOvGN0B7CQa0LJHLLEbMrBrqdxqySbQnVtUZ7DtnKLdpJ0lUknitgy7hYYD_yRwO5lED3iCfDieGsmfA/s320/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Query String &quot;id&quot;에&amp;nbsp;&lt;a href=&quot;http://seojhok.blogspot.kr/2016/06/aws-serverless-2-lambda-dynamodb.html&quot;&gt;전 화면&lt;/a&gt;에서 추가 했던 &quot;App&quot;를 넣고 테스트 한다.&lt;br /&gt;
&lt;br /&gt;
10. 테스트 이상이 없으면 &quot;Deploy&quot;한다.(&quot;Deploy&quot;는 Action pull-down 메뉴에서 찾을 수 있다.)&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixwUHUb1-_tBc8ZzeKSMaefWChCd9Nj_GcYGzLhYRGGz3puooZHhfIxm46wa4FNvqV7Z6PsXmwB3T-2R8s2F7AV_CqkzewTqDCOsHV38GQwEVhc2rqbVkUPMB_LCJNXNp6IuJy1AyUM3A/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixwUHUb1-_tBc8ZzeKSMaefWChCd9Nj_GcYGzLhYRGGz3puooZHhfIxm46wa4FNvqV7Z6PsXmwB3T-2R8s2F7AV_CqkzewTqDCOsHV38GQwEVhc2rqbVkUPMB_LCJNXNp6IuJy1AyUM3A/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
11. 화면이 바뀌면서 해당 API의 URL을 알 수 있다.&lt;br /&gt;
https://id.excute-api.지역/test 식으로 표시 된다.&lt;br /&gt;
&lt;br /&gt;
12. 알아낸 URL을 통해 Curl 해보면 정상 작동 함을 알 수 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$curl https://id.excute-api.지역/test/getdata?id=App&lt;br /&gt;
&lt;br /&gt;
&quot;Dynamo Success: {\n &amp;nbsp;\&quot;Item\&quot;: {\n &amp;nbsp; &amp;nbsp;\&quot;id\&quot;: \&quot;App\&quot;,\n &amp;nbsp; &amp;nbsp;\&quot;email\&quot;: \&quot;test@example.com\&quot;,\n &amp;nbsp; &amp;nbsp;\&quot;timedate\&quot;: \&quot;1464858849770\&quot;,\n &amp;nbsp; &amp;nbsp;\&quot;name\&quot;: \&quot;Smith\&quot;\n &amp;nbsp;}\n}&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
13. POST도 할 수 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;$curl -H &quot;Content-Type: application/json&quot; -X POST -d &quot;{\&quot;id\&quot;:\&quot;Client\&quot;,\&quot;name\&quot;:\&quot;Alice\&quot;,\&quot;email\&quot;:\&quot;post@example.com\&quot;}&quot; https://id.excute-api.지역/test/&lt;span style=&quot;color: blue;&quot;&gt;postdata&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&quot;Dynamo Success: {}&quot;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
$curl https://id.excute-api.지역/test/getdata?id=Client&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&quot;Dynamo Success: {\n&amp;nbsp;&amp;nbsp;\&quot;Item\&quot;: {\n&amp;nbsp; &amp;nbsp;&amp;nbsp;\&quot;id\&quot;: \&quot;Client\&quot;,\n&amp;nbsp; &amp;nbsp;&amp;nbsp;\&quot;email\&quot;: \&quot;post@example.com\&quot;,\n&amp;nbsp; &amp;nbsp;&amp;nbsp;\&quot;timedate\&quot;: \&quot;1465374921213\&quot;,\n&amp;nbsp; &amp;nbsp;&amp;nbsp;\&quot;name\&quot;: \&quot;Alice\&quot;\n&amp;nbsp;&amp;nbsp;}\n}&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/2363287009386773425/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2016/06/aws-serverless-3-aws-api-gateway.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2363287009386773425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2363287009386773425'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2016/06/aws-serverless-3-aws-api-gateway.html' title='AWS를 이용한 Serverless 환경 구축 3 - AWS API Gateway를 통해 기존 DynamoDB 접근'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOtkq4D1Zsy3iQ160gZFxAF4fxjVZQfTwJDhMepYgwd3lcSxzP1sJzez1cfJMOxH9NjwSB5FCYkzXSCmRjv5Tf-OeIa8J5W5h3z1RnDMDLgWiht4Q2PlcAIptauUFmM1lnh0DroAoV6UM/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-2783340062881645359</id><published>2016-06-02T02:34:00.002-07:00</published><updated>2017-06-14T23:26:37.707-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type='text'>AWS를 이용한 Serverless 환경 구축 2 - Lambda로 DynamoDB 쓰고 읽기</title><content type='html'>지난 번에 Lamda로 hello_world만 찍기만 하여 demo의 성격 이었다면 이번은 실제로 DynamoDB에 쓰고 읽기를 해보자.&lt;br /&gt;
&lt;br /&gt;
순서는 아래와 같다.&lt;br /&gt;
DynamoDB table 생성 후 IAM 권한 추가(Access DynamoDB) Lambda 함수의 쓰기, 읽기를 만들 것이다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;DynamoDB table 생성&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
1. &quot;Create table&quot;을 선택한다.&lt;br /&gt;
&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS4b0jf5nwRu7m1C0HWW5kgLMKyL4xk5kwD6p6xWuLAIrGeC9_sH488wxbz_QBFxof6TxrlhlGtCwbBwNU8021-W_ba9g7_TDLDBsYjpXEv6BEFGOaRMF-J3o6p5wbC3IRVy809FrIoGk/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;338&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS4b0jf5nwRu7m1C0HWW5kgLMKyL4xk5kwD6p6xWuLAIrGeC9_sH488wxbz_QBFxof6TxrlhlGtCwbBwNU8021-W_ba9g7_TDLDBsYjpXEv6BEFGOaRMF-J3o6p5wbC3IRVy809FrIoGk/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2. &quot;Table name&quot;, &quot;Primary key&quot;에 값을 입력한 후 &quot;Create&quot;를 클릭한다.(예 Table name: Page, Primary key: id)&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyBfaiJVJzT9c5uJFKTpbgYHKTQbdW8GN_g-ekUDXAut-lihtCZgezO3ZJ2BUzotO7GSWbBtA2UCT56lt7XD00Bwpw3mW86oKFR41fwycUKg11Nw_ggFmhbEgWw2st098igbMe5oDgHYQ/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;396&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyBfaiJVJzT9c5uJFKTpbgYHKTQbdW8GN_g-ekUDXAut-lihtCZgezO3ZJ2BUzotO7GSWbBtA2UCT56lt7XD00Bwpw3mW86oKFR41fwycUKg11Nw_ggFmhbEgWw2st098igbMe5oDgHYQ/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
3. DynamoDB table이 간단하게 생성 되었다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;IAM DynamoDB 접근권한 추가&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
기존 Role에는 DynamoDB 접근권한이 없으므로 권한을 추가해야 한다.&lt;br /&gt;
1. 기존에 사용하던 &quot;&amp;nbsp;lambda_basic_execution&quot; Role에 Jason을 추가 해 주면 된다.(&quot;Statement&quot;[]안에 추가)&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:js&quot;&gt;{
      &quot;Sid&quot;: &quot;Stmt1428341300017&quot;,
      &quot;Action&quot;: [
        &quot;dynamodb:DeleteItem&quot;,
        &quot;dynamodb:GetItem&quot;,
        &quot;dynamodb:PutItem&quot;,
        &quot;dynamodb:Query&quot;,
        &quot;dynamodb:Scan&quot;,
        &quot;dynamodb:UpdateItem&quot;
      ],
      &quot;Effect&quot;: &quot;Allow&quot;,
      &quot;Resource&quot;: &quot;*&quot;
    }
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Lambda 쓰기 함수 만들기&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
이번에는 Lambda 함수로 DynamoDB에 쓰기를 해보자.&lt;br /&gt;
1. 기존에 만들어 놓은 Lambda 함수를 수정해서 사용 하기로 하자.(S3에 code를 업로드 했던 Lambda 함수의 코드를 변경하여 진행 할 것이다.)&lt;br /&gt;
&lt;br /&gt;
지난번에 만들었던 code.js를 아래의 코드로 변경 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:js&quot;&gt;console.log(&#39;Loading event&#39;);
var doc = require(&#39;dynamodb-doc&#39;);
var dynamodb = new doc.DynamoDB();

exports.handler = function(event, context) {
    console.log(&quot;Request received:\n&quot;, JSON.stringify(event));
    console.log(&quot;Context received:\n&quot;, JSON.stringify(context));

    var tableName = &quot;Page&quot;;
    var datetime = new Date().getTime().toString();
    var item = {
        &quot;id&quot;: event.id,
        &quot;timedate&quot;: datetime,
        &quot;name&quot;: event.name,
        &quot;email&quot;: event.email
    };
    console.log(&quot;Item:\n&quot;, item);

    dynamodb.putItem({
            &quot;TableName&quot;: tableName,
            &quot;Item&quot;: item
        }, function(err, data) {
            if (err) {
                context.fail(&#39;ERROR: Dynamo failed: &#39; + err);
            } else {
                console.log(&#39;Dynamo Success: &#39; + JSON.stringify(data, null, &#39;  &#39;));
                context.succeed(&#39;SUCCESS&#39;);
            }
        });
}
&lt;/pre&gt;
&lt;br /&gt;
2. code.js 디렉토리에서 npm install dynamo-doc를 한 후 해당 module을 추가 한다. code.zip으로 통채로 압축해서 S3에 업로드 한다.(자동 배포 될 것이다.)&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4p4svxT5sTKr39dZd2wPbQfcah-XT8LpZ6Q7-NXocVathOzqXRBFCOzUy7oAD_v_V7VbyLJwxIdDtmlPNRlpbK6lckqKRxLhEhxpK3qYhDnPNBaUWaxBp4sb-rkdO5L6T1yqyIpsUg18/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4p4svxT5sTKr39dZd2wPbQfcah-XT8LpZ6Q7-NXocVathOzqXRBFCOzUy7oAD_v_V7VbyLJwxIdDtmlPNRlpbK6lckqKRxLhEhxpK3qYhDnPNBaUWaxBp4sb-rkdO5L6T1yqyIpsUg18/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
3. 코드가 업데이트 된 Lambda로 이동하여 &quot;test event&quot;(상단 그림)를 설정한다. 또한 아래와 같이 Json data를 변경 한 후 &quot;Save and test&quot;를 클릭한다.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkIByYB0L0qNHJjUZfWoQ_yxtxGKm6awruzLJoBT3cYLKwFYiKcdDexLLXgk2h2yG78yRRlEKXxuDn26SFvIdN3lnSfGnXIFAO68lmZWS8uAsgpx5djPSctMMY-e9W6Hgx_jJ90JX8_ZU/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;624&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkIByYB0L0qNHJjUZfWoQ_yxtxGKm6awruzLJoBT3cYLKwFYiKcdDexLLXgk2h2yG78yRRlEKXxuDn26SFvIdN3lnSfGnXIFAO68lmZWS8uAsgpx5djPSctMMY-e9W6Hgx_jJ90JX8_ZU/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:js&quot;&gt;{
  &quot;id&quot;: &quot;App&quot;,
  &quot;name&quot;: &quot;Smith&quot;,
  &quot;email&quot;: &quot;test@example.com&quot;
}
&lt;/pre&gt;
&lt;br /&gt;
4. Lambda로그에 Success가 출력 되고 DynamoDB에 기록이 잘 된 것을 볼 수 있다.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisXEDAxLEjRcOvPMsEghtJ2OXEQLTyzBRY9fhD6x6pL9guWhyZ8AoErcOZg6h15eQsnamI0MvVKGSoNJWXycasiv7A2GovnouOmgbZaQlbn-78WU6oudaCMXQpLF_MtxV2qtIvc5VNwgE/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;106&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisXEDAxLEjRcOvPMsEghtJ2OXEQLTyzBRY9fhD6x6pL9guWhyZ8AoErcOZg6h15eQsnamI0MvVKGSoNJWXycasiv7A2GovnouOmgbZaQlbn-78WU6oudaCMXQpLF_MtxV2qtIvc5VNwgE/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj9YKxflgNcVA3eivp-pDdQoXuMAkg8mOgZEvG-0C6orm7XayALXvwFeHri-VQo_HhfNthDs7s8pdX1BgQzYavKMM_7IKAP7HenoA8gSMOw_lb7SxRlvVVGmv5db32yfzjLNt7EIFi_tY/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;233&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj9YKxflgNcVA3eivp-pDdQoXuMAkg8mOgZEvG-0C6orm7XayALXvwFeHri-VQo_HhfNthDs7s8pdX1BgQzYavKMM_7IKAP7HenoA8gSMOw_lb7SxRlvVVGmv5db32yfzjLNt7EIFi_tY/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Lambda 읽기 함수 만들기&lt;br /&gt;
1. 쓰기 함수와 동일하게 이름을 달리 하여 생성한다. 생성과정은 여러번 언급 하였기에 생략한다.&lt;br /&gt;
2. 다른 부분은 아래의 코드이다.&lt;br /&gt;
&lt;pre class=&quot;brush:js&quot;&gt;console.log(&#39;Loading event&#39;);
var doc = require(&#39;dynamodb-doc&#39;);
var dynamodb = new doc.DynamoDB();

exports.handler = function(event, context) {
    console.log(&quot;Request received:\n&quot;, JSON.stringify(event));
    console.log(&quot;Context received:\n&quot;, JSON.stringify(context));

    var tableName = &quot;Page&quot;;
    var key = {
        id: event.id
    };
    console.log(&quot;Key:\n&quot;, key);

    dynamodb.getItem({
            &quot;TableName&quot;: tableName,
            &quot;Key&quot;: key
        }, function(err, data) {
            if (err) {
                context.fail(&#39;ERROR: Dynamo failed: &#39; + err);
            } else {
                console.log(&#39;SUCCESS&#39;);
                context.succeed(&#39;Dynamo Success: &#39;+ JSON.stringify(data, null, &#39;  &#39;));
            }
        });
}
&lt;/pre&gt;
&lt;br /&gt;
3. 테스트 이벤트 Jason도 아래와 같이 변경 해 준 후 테스트 한다.&lt;br /&gt;
&lt;pre class=&quot;brush:java&quot;&gt;{
  &quot;id&quot;: &quot;App&quot;
}
&lt;/pre&gt;
&lt;br /&gt;
4. 쓰기 함수와 마찬가지로 성공 한 log를 볼 수 있다.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBMB4-zXg7D1Gzj6C11yh4Jr4F3ATRVDLnObgms1q0Im8AwI3lvFidwIV2Tg7DzbIWlsX-sJbZTNlkcr2bibZJnidgruS3rc3gi61VEA8J0Ef86lR1OEV_gvtUitMuKdRnwMHTua5GHYA/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;107&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBMB4-zXg7D1Gzj6C11yh4Jr4F3ATRVDLnObgms1q0Im8AwI3lvFidwIV2Tg7DzbIWlsX-sJbZTNlkcr2bibZJnidgruS3rc3gi61VEA8J0Ef86lR1OEV_gvtUitMuKdRnwMHTua5GHYA/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/2783340062881645359/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2016/06/aws-serverless-2-lambda-dynamodb.html#comment-form' title='3개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2783340062881645359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2783340062881645359'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2016/06/aws-serverless-2-lambda-dynamodb.html' title='AWS를 이용한 Serverless 환경 구축 2 - Lambda로 DynamoDB 쓰고 읽기'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS4b0jf5nwRu7m1C0HWW5kgLMKyL4xk5kwD6p6xWuLAIrGeC9_sH488wxbz_QBFxof6TxrlhlGtCwbBwNU8021-W_ba9g7_TDLDBsYjpXEv6BEFGOaRMF-J3o6p5wbC3IRVy809FrIoGk/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-1257339117837626639</id><published>2016-05-31T19:07:00.003-07:00</published><updated>2017-06-14T23:26:49.798-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type='text'>AWS를 이용한 Serverless 환경 구축 1 - Lambda 서비스 하기&amp; S3를 이용한 자동배포</title><content type='html'>S3에 코드 파일(.zip)이 업로드 되면 자동으로 AWS Lambda에 배포되는 환경을 만들어 보자.&lt;br /&gt;
&lt;br /&gt;
필요한 AWS 서비스&lt;br /&gt;
S3 - 코드 업로드를 위한 bucket&lt;br /&gt;
Lambda 2개 - code upload 과 실행하기 위한 함수&lt;br /&gt;
IAM - S3 Access와 lambda 코드 갱신 Role 설정&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;S3버켓생성&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
제일 먼저 S3를 만들어 준다.&lt;br /&gt;
1. S3 버켓 만들기 적당한 이름의 S3를 만들어 준다. S3 만드는 화면은 생략하겠다. 진짜로 어렵지 않다. 다만 지금 만드는 서비스를 위해 Lambda와 같은 지역에서 만들어야 작동 한다.&lt;br /&gt;
&lt;br /&gt;
2. 그리고 &quot;hellow_world&quot;를 찍는 .js파일을 만든 후 해당파일 .zip파일로 만들고 그 파일을 S3에 업로드 한다.&lt;br /&gt;
&lt;br /&gt;
예) bucket명: codetest&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;zip파일명: code.zip&lt;br /&gt;
===&amp;gt; s3://codetest/code.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Lambda 생성&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
먼저 실행 Lambda를 생성한다. (hellow_world를 찍는 lambda로 하자)&lt;br /&gt;
1. lambda 서버를 생성한다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihJKGP6Q7vtVF5gsPCSK9hVoudp-xrQI0bm8pxUaOGz5BAr1LZdNlSV_0dunLg6zB0UheucNgqdU3NXr02DNX-kxH2lbxq5oQXMhcDRcBc3N7EuqbEYMDeEBuXxMAcrXqvzUBUp-YiHOM/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;175&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihJKGP6Q7vtVF5gsPCSK9hVoudp-xrQI0bm8pxUaOGz5BAr1LZdNlSV_0dunLg6zB0UheucNgqdU3NXr02DNX-kxH2lbxq5oQXMhcDRcBc3N7EuqbEYMDeEBuXxMAcrXqvzUBUp-YiHOM/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2. 과감하게 넘어간다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmbawKMWn73ftOzGjcmpHm2MZJnMvRl1T-3TuCPnje7zQj7grGH12zNIhAc-iwSQ4L81N854-7p4fzeKJAAgMYBvxbMw0APs7vfYb2iFZiploMY5oggYL3KbeyHIvGgINeYhrMxafKfec/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;341&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmbawKMWn73ftOzGjcmpHm2MZJnMvRl1T-3TuCPnje7zQj7grGH12zNIhAc-iwSQ4L81N854-7p4fzeKJAAgMYBvxbMw0APs7vfYb2iFZiploMY5oggYL3KbeyHIvGgINeYhrMxafKfec/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
3. 이름에 Hello_World를 넣고 &quot;Code entry type&quot; 은 S3에서 Upload를 선택한 후 &quot;S3 link URL&quot;은 위에서 만든 S3의 .zip 파일의 URL을 넣으면 된다. 그리고 아래 Handler에는 &amp;nbsp;.zip 파일 안의 실행할 .js 파일의 이름을 넣는다.(예 code.js이면 code.handler)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVi7E1Q7q1NIIp4Nv0y-Pt5e7EtXreCL8cVLE51irYSb2s40Qhs1-tRQ_Nhb8l7gjf-ZjzhI5aeaKuWGcDxinDcZLw-V9oPY57Y1Qk93WZv-9xhQ95-ZioqZH3RfsqJyyjGcQyPFjKa-g/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVi7E1Q7q1NIIp4Nv0y-Pt5e7EtXreCL8cVLE51irYSb2s40Qhs1-tRQ_Nhb8l7gjf-ZjzhI5aeaKuWGcDxinDcZLw-V9oPY57Y1Qk93WZv-9xhQ95-ZioqZH3RfsqJyyjGcQyPFjKa-g/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;555&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
상단 그림에서 Role 부분에 &amp;nbsp;pull down 메뉴 중 Basic execution role을 선택하면 아래 하면으로 새탭이 열린다. 과감하게 Allow를 누르면 된다. 그리고 상단 그림의 &quot;Next&quot;버튼을 누르면 된다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbdCwaxhZpOcbmruNNL-Ieq3jV6hiwDrtMYcstoJsL9TSp5HWqQpNQBSMnwxkQd257rtqw8MbrxeVvj8_Y4n4ClaM7A3DUVd8X_k1pIidD7XfueDjUhMZnv_N-oc8cOTnkzxBeXA6Cvz4/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;323&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbdCwaxhZpOcbmruNNL-Ieq3jV6hiwDrtMYcstoJsL9TSp5HWqQpNQBSMnwxkQd257rtqw8MbrxeVvj8_Y4n4ClaM7A3DUVd8X_k1pIidD7XfueDjUhMZnv_N-oc8cOTnkzxBeXA6Cvz4/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
이제 upload lambda를 구현해 보자.&lt;br /&gt;
1. lambda 서버를 생성한다. 첫번째와 동일하다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGWAL5uNLcXh0sLRrIXPpvJB1EhE2LgVBOLX6hpgKlgIFGYXIMI39ozk2BneClzX37ZHryXqEbpSvp3-uFvWhn9rZAjp-nRd9ad5QWlnmg1xwTNQLJ8QWqpSfai_UGc7Xvoc7z0W5C2Qw/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;97&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGWAL5uNLcXh0sLRrIXPpvJB1EhE2LgVBOLX6hpgKlgIFGYXIMI39ozk2BneClzX37ZHryXqEbpSvp3-uFvWhn9rZAjp-nRd9ad5QWlnmg1xwTNQLJ8QWqpSfai_UGc7Xvoc7z0W5C2Qw/s320/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 과감하게 넘어간다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmbawKMWn73ftOzGjcmpHm2MZJnMvRl1T-3TuCPnje7zQj7grGH12zNIhAc-iwSQ4L81N854-7p4fzeKJAAgMYBvxbMw0APs7vfYb2iFZiploMY5oggYL3KbeyHIvGgINeYhrMxafKfec/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;341&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmbawKMWn73ftOzGjcmpHm2MZJnMvRl1T-3TuCPnje7zQj7grGH12zNIhAc-iwSQ4L81N854-7p4fzeKJAAgMYBvxbMw0APs7vfYb2iFZiploMY5oggYL3KbeyHIvGgINeYhrMxafKfec/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
3. 적당한 이름을 정하고 아래 링크를 따라 가서 &quot;Bonus Section: Lambda Auto-Deployer&quot; 부분을 참고 하여 해당 소스를 중간에 횡 한 부분에 붙여넣는다.(YOUR_BUCKET_NAME, YOUR_CODE, and YOUR_FUNCTION_NAME은 위에 생성한 S3의 내용에 맞게 기입하면 된다. 또한 version은 사용하지 않은 것이니 소스에서 버전 부분은 주석처리 하면 된다. 하고 싶으면 S3에서 버전 설정을 하고 하면 된다.)&amp;nbsp;&lt;a href=&quot;https://aws.amazon.com/ko/blogs/compute/new-deployment-options-for-aws-lambda/&quot;&gt;https://aws.amazon.com/ko/blogs/compute/new-deployment-options-for-aws-lambda/&lt;/a&gt;&amp;nbsp;Role 부분은 첫번째 람다에서 생성하였던 lambda basic execution을 선택하면 된다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhaWV6QREwKf-YfiIjlj-7p2S_S9SN70jAgGu3uDbzSQU0nkOEpkdssvyPyQGY6Ompm-YtXk3CIKCYmEa2fohdsnqZlgcmm0nbKO6DXhCWjBBDSx_d2J4pdWvk_b-fD0auVeLVe36tNSg/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhaWV6QREwKf-YfiIjlj-7p2S_S9SN70jAgGu3uDbzSQU0nkOEpkdssvyPyQGY6Ompm-YtXk3CIKCYmEa2fohdsnqZlgcmm0nbKO6DXhCWjBBDSx_d2J4pdWvk_b-fD0auVeLVe36tNSg/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;393&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. 하단의 &quot;create function&quot;을 누르면 두번째 Lambda 생성은 끝났다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuyY5zlZZP0BCwEQpJpVtGSY9JhPacJ89W4Yw85f9foq-PXb_gfmnnoyMO02hg8kSmh2LD1V7Bh9UKL3kH33J45KnEc3mktCl9cSj6OXpq9ysIbN6_qA_swLwCS6Y_yfwbb08T_NA2VZ8/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;170&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuyY5zlZZP0BCwEQpJpVtGSY9JhPacJ89W4Yw85f9foq-PXb_gfmnnoyMO02hg8kSmh2LD1V7Bh9UKL3kH33J45KnEc3mktCl9cSj6OXpq9ysIbN6_qA_swLwCS6Y_yfwbb08T_NA2VZ8/s320/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
6. 마지막으로 S3에 .zip 파일이 갱신 되었을 때 upload lambda가 작동하도록 S3이벤트를 등록 해 줘야 한다. 두번째 생성한 upload용 lambda 함수의 &quot;Event source&quot; 탭을 선택하고 &quot;Add event source&quot;를 클릭한다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVY6L-vfrRVNDLSk9XDVc9DxrN4YysM1POR65tldndhuNApXs_tgSiZjyzb9drCr_97CQcAVTErGfxGdcqf1VsNc40wmsuHR2dUgegssQ7QlGePf4fvzo_RXTNxm1zaj10AniYNQR4-6E/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;171&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVY6L-vfrRVNDLSk9XDVc9DxrN4YysM1POR65tldndhuNApXs_tgSiZjyzb9drCr_97CQcAVTErGfxGdcqf1VsNc40wmsuHR2dUgegssQ7QlGePf4fvzo_RXTNxm1zaj10AniYNQR4-6E/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&quot;Event source type&quot;는 S3로 &amp;nbsp;&quot;Bucket&quot;은 위에서 생성한 S3 bucket을 Event type은 &quot;Object Created(ALL)&quot;을 선택한 후 &quot;Submit&quot;을 클릭한다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaJIrtASCdb4Y1VR9h43cPe-GRZmoRfdFup5_XpAqFM5-uFM3nIUaXutY-fkeqULhZQXTFWYwBo-vCdxml0qCFYUtahvCrH81-o_VfV2xm-1Hak6FeggaWKrXe1twIqjaAy3c2W6lzDes/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;504&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaJIrtASCdb4Y1VR9h43cPe-GRZmoRfdFup5_XpAqFM5-uFM3nIUaXutY-fkeqULhZQXTFWYwBo-vCdxml0qCFYUtahvCrH81-o_VfV2xm-1Hak6FeggaWKrXe1twIqjaAy3c2W6lzDes/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Lambda 생성은 모두 완료 되었다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;IAM Role 설정&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
이제 마지막으로 IAM Role 설정이다.&lt;br /&gt;
1. IAM 페이지로 이동 Role을 선택한다. 그리고 위에서 만든 lambda_basic_execution을 선택한 후 하단 의 Edit Policy를 선택한다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYyS9ZDL2XkMKac_GzF5Ybvoqztu1Drpt_PJfKtf-5ZvGSG0dsfLdQaQxp6fidePo6IvVZZrqx9q9x5bUeuKsI_hV3HZkfD_GeAxK8GPXR1zRBnHG6zAgrKrJBcmGvGI6awrXrJyn-iSc/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYyS9ZDL2XkMKac_GzF5Ybvoqztu1Drpt_PJfKtf-5ZvGSG0dsfLdQaQxp6fidePo6IvVZZrqx9q9x5bUeuKsI_hV3HZkfD_GeAxK8GPXR1zRBnHG6zAgrKrJBcmGvGI6awrXrJyn-iSc/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 아래 코드를&amp;nbsp;&quot;Statement&quot;: [ ] 사이에 넣고 &quot;Validate Policy&quot; 후 &quot;Apply Policy&quot; 하면 마무리 된다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7sKCpL2UwUXIPqmIypCypk2bINFI33VzAQ_IQgg_jAzOCsINsWHFJEiwYoMriNnxjUn-w0NrAfX3ipzilnD3dyw5jHIxnDTkpSd83nRP89vGmPVntBuZSqQ4MjpbQlE5YT-L5v0RuKec/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7sKCpL2UwUXIPqmIypCypk2bINFI33VzAQ_IQgg_jAzOCsINsWHFJEiwYoMriNnxjUn-w0NrAfX3ipzilnD3dyw5jHIxnDTkpSd83nRP89vGmPVntBuZSqQ4MjpbQlE5YT-L5v0RuKec/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
이제 S3로 .zip파일을 업데이트 해보자. 그러면 액션 lambda로 코드가 업데이트 되는 것을 알 수 있다. 참고로 해당 람다가 수행하는 것은 lambda의 모니터 탭에서 CloudWatch로 이동하여 Log 항목에서 확인 할 수 있다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj78L2NcH9ZYl2aWIwhhprhXSA7NXHt3YfHiLAUULPl2m8_mAEU9Zss3QnN4iRFxOOgtivqpZufaw8bRrv9vFP6-CHzkuVzO7KdEB63xf4HQhE_Lg_TUMOm5PAnPpfjXzXD4hyphenhyphenAfqk_1cI/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj78L2NcH9ZYl2aWIwhhprhXSA7NXHt3YfHiLAUULPl2m8_mAEU9Zss3QnN4iRFxOOgtivqpZufaw8bRrv9vFP6-CHzkuVzO7KdEB63xf4HQhE_Lg_TUMOm5PAnPpfjXzXD4hyphenhyphenAfqk_1cI/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/1257339117837626639/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2016/05/aws-serverless-1-lambda-s3.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/1257339117837626639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/1257339117837626639'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2016/05/aws-serverless-1-lambda-s3.html' title='AWS를 이용한 Serverless 환경 구축 1 - Lambda 서비스 하기&amp; S3를 이용한 자동배포'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihJKGP6Q7vtVF5gsPCSK9hVoudp-xrQI0bm8pxUaOGz5BAr1LZdNlSV_0dunLg6zB0UheucNgqdU3NXr02DNX-kxH2lbxq5oQXMhcDRcBc3N7EuqbEYMDeEBuXxMAcrXqvzUBUp-YiHOM/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-31+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.21.01.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-3646046812706065872</id><published>2016-05-25T02:20:00.002-07:00</published><updated>2017-06-14T23:27:41.271-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type='text'>AWS Certificate Manager(ACM) ELB와 CloudFront에 적용하기</title><content type='html'>ACM ELB 적용&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
1. 필요한 ELB로 이동하여 하단의 &quot;Listeners&quot; 탭을 누르고 맨 아래 &quot;Edit&quot;를 누른다. 기존 것을 변경 하던지 상단의 &quot;Add&quot;버튼으로 포트를 추가 한 후 Https를 선택하면 된다.(VPC의 private에 위치한 instance라면 instance 포트는 80으로 해도 무방하다.) 그리고 SSL Certificate 항목의 &quot;Change&quot;를 누른다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoHfGBJrRFUW7vesAUb8Xg0BuRxTOWTHGNnzI3akQI9il5YEeJsfozVj0y4Ue_sEx84UezR3rW1vsoaeNQWBUeIWbOL9tgPsXsT8Dd4zeDA2es4V2CKUyYOJ0kliy1U7wTQ7km8Yxk_uk/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;354&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoHfGBJrRFUW7vesAUb8Xg0BuRxTOWTHGNnzI3akQI9il5YEeJsfozVj0y4Ue_sEx84UezR3rW1vsoaeNQWBUeIWbOL9tgPsXsT8Dd4zeDA2es4V2CKUyYOJ0kliy1U7wTQ7km8Yxk_uk/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
2. ACM을 선택 한 후 아래 인증받은 도메인을 선택 후 &quot;Save&quot; 하면 탑재 완료다.&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2K9oecqrsl30GqWeveCANv8sbbOZdhMDp05aGrO2TFF2Jc6BF7sS9rtoj1FOQ75Zs7cd0IcBxxM-EpHS1Rmm7TetQ1QZIUCn7ZUPcK1SdAeVwlJAiIcAl-7k0sRFC83vSgTGXktSgBYg/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;176&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2K9oecqrsl30GqWeveCANv8sbbOZdhMDp05aGrO2TFF2Jc6BF7sS9rtoj1FOQ75Zs7cd0IcBxxM-EpHS1Rmm7TetQ1QZIUCn7ZUPcK1SdAeVwlJAiIcAl-7k0sRFC83vSgTGXktSgBYg/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
3. 선택한 ACM을 &quot;Save&quot; 하면 최종 마무리이다.&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_9VdiyST4NiD4kFfZ7PqhHwLzXHGLFiFLPDWoE15Zh-Zx6d0u2fT7AWcXe58lTeGPJ5name9IheE16-wOdSg9pdsafRWfgIj8XyG0eVsrtEypQVsiI4rEjErjtWFDCRLHmViEImdq6lc/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;160&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_9VdiyST4NiD4kFfZ7PqhHwLzXHGLFiFLPDWoE15Zh-Zx6d0u2fT7AWcXe58lTeGPJ5name9IheE16-wOdSg9pdsafRWfgIj8XyG0eVsrtEypQVsiI4rEjErjtWFDCRLHmViEImdq6lc/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ACM CloudFront 적용(ACM은 반드시&amp;nbsp;US East (N. Virginia) 지역에서 생성해야 한다.&lt;br /&gt;
&lt;a href=&quot;http://docs.aws.amazon.com/acm/latest/userguide/acm-services.html&quot;&gt;http://docs.aws.amazon.com/acm/latest/userguide/acm-services.html&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
1. 운영 중인 CloudFront에 접근하여 Edit를 위해 Distribution Setting 부분으로 이동한다. Custom SSL Certificate의 &amp;nbsp;Pull-down메뉴에서 생성한 ACM을 선택 후 하단의 &quot;Edit&quot;버튼을 클릭하면 된다. 배포 시간은 15분 정도 예상된다.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdeXo8EJGSU3FnxRgl67frRerEn115T6Cpm58u-MfSQXDlmEh3XQdIgtJegqxwqMHiMUdQrG-7ATX3vgEas4acI5eFW_g3KMemQBdREzk1WQ52UF3ps1iYg5Z6I0H-wMop4CDa0dQ8xV4/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;474&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdeXo8EJGSU3FnxRgl67frRerEn115T6Cpm58u-MfSQXDlmEh3XQdIgtJegqxwqMHiMUdQrG-7ATX3vgEas4acI5eFW_g3KMemQBdREzk1WQ52UF3ps1iYg5Z6I0H-wMop4CDa0dQ8xV4/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/3646046812706065872/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2016/05/aws-certificate-manageracm-elb.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/3646046812706065872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/3646046812706065872'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2016/05/aws-certificate-manageracm-elb.html' title='AWS Certificate Manager(ACM) ELB와 CloudFront에 적용하기'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoHfGBJrRFUW7vesAUb8Xg0BuRxTOWTHGNnzI3akQI9il5YEeJsfozVj0y4Ue_sEx84UezR3rW1vsoaeNQWBUeIWbOL9tgPsXsT8Dd4zeDA2es4V2CKUyYOJ0kliy1U7wTQ7km8Yxk_uk/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-988062099028476376</id><published>2016-05-23T01:25:00.001-07:00</published><updated>2017-06-14T23:28:54.992-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type='text'>AWS Ceritificate Manger  이용방법</title><content type='html'>간편하게 SSL 서비스를 이용할 수 있는 방법으로 AWS Ceritficate Managemer(이하 ACM) 서비스가 출시 되었다. Virginia 지역에서만 가능하던 것이 이제 전 지역에서 사용가능하다. 기존 SSL 을 이용하는 것과 비교하여 매우 쉬워졌다.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://aws.amazon.com/ko/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on-aws/&quot;&gt;https://aws.amazon.com/ko/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on-aws/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
ACM은 기존 SSL인증 업체에 해당 키 값을 받아 Amazon 서비스에 등록하고 매년 갱신 하는 불편함을 제거 해 주는 서비스이다. 기존 SSL 인증업체 같은 경우 보안사고가 발생하였을때, 보험금을 통해 해당 사고를 보상 해주지만 ACM은 무료이니 보상이라는 개념은 없어 보인다. 적용하고 보니 최상위 인증기관Certificate Authorities(CA)은 Starfiled Service이다.&lt;br /&gt;
&lt;a href=&quot;https://en.wikipedia.org/wiki/Starfield_Technologies&quot;&gt;https://en.wikipedia.org/wiki/Starfield_Technologies&lt;/a&gt; 소유주가 GoDaddy이다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi51kSiNNkrWNBhIyAhfZUlGrcxt1ahYF2Fen3g6vqt8KB4QPrDZoC-WHxFI7fOpDYKcVsl83qi4XEGYlYVex4xkiksmmx1V5UakFUQmY6z8ZKI3nvbF-p4vVcMg_PYupiPpcoddXq2cR0/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;154&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi51kSiNNkrWNBhIyAhfZUlGrcxt1ahYF2Fen3g6vqt8KB4QPrDZoC-WHxFI7fOpDYKcVsl83qi4XEGYlYVex4xkiksmmx1V5UakFUQmY6z8ZKI3nvbF-p4vVcMg_PYupiPpcoddXq2cR0/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
CA업체에 관한 정보는 이러하다. &lt;a href=&quot;https://en.wikipedia.org/wiki/Certificate_authority&quot;&gt;https://en.wikipedia.org/wiki/Certificate_authority&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
결론적으로 판단은 본인이 하겠지만 믿고 써도 된다고 본다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
본격적으로추가하는 방법은 매우 간단하다.&lt;br /&gt;
&lt;br /&gt;
1. ACM 페이지를 방문하여 시작한다.(Get started) - ELB에 추가하려면 해당 지역에서 추가 해야 하는 것으로 알고 있다.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI2ruMm46KqQ4ZKIOdJ4Pun9_GdjtzkoIEHryKdHeWN7VYSS443IY7tddTXtD_k8is_TDWHn_CDSmuArVFSPdBQs2vi4Sx65wdDDiXhkM1Jy7XBwMJ7B9rXAjxSLy2wq2844-QvC24CFQ/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;387&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI2ruMm46KqQ4ZKIOdJ4Pun9_GdjtzkoIEHryKdHeWN7VYSS443IY7tddTXtD_k8is_TDWHn_CDSmuArVFSPdBQs2vi4Sx65wdDDiXhkM1Jy7XBwMJ7B9rXAjxSLy2wq2844-QvC24CFQ/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2. Domain입력 지점에 필요한 domain명을 입력하고(www.example.com) Review and request를 누르면 거의 완료다. 여러개 추가 하려고 하면 &quot;Add another name to this certificate&quot; 나 *(wildcard)를 이용한다.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJQpSt4AD-t4SG1HjuFbvruzdtmpLD6Sy4RoJBkHIfR7Zw5dVXYUIRfUjOatxJpyzuMIVJ3wsYC0oI6KiYYih9X_BmPnqQL7USD_CB3cwkpTDDOtiW3F_bHeOjditHWWxrmCLwtFsVFj0/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;248&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJQpSt4AD-t4SG1HjuFbvruzdtmpLD6Sy4RoJBkHIfR7Zw5dVXYUIRfUjOatxJpyzuMIVJ3wsYC0oI6KiYYih9X_BmPnqQL7USD_CB3cwkpTDDOtiW3F_bHeOjditHWWxrmCLwtFsVFj0/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
3. confirm하면 생성은 끝났다..&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgixsV6w1s_yiLoD0X5a8Xn5BQbY7BEbLJ8lsB_jTiaJgP13ObAM2wK7hZ_bf_Hb499945YAnKfdb3mW0AYOEwNoM9FWsRwZGF13zFzB_61BOp4Kd88Acr97NmrNSeZQCp3sIjappMYvKI/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;163&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgixsV6w1s_yiLoD0X5a8Xn5BQbY7BEbLJ8lsB_jTiaJgP13ObAM2wK7hZ_bf_Hb499945YAnKfdb3mW0AYOEwNoM9FWsRwZGF13zFzB_61BOp4Kd88Acr97NmrNSeZQCp3sIjappMYvKI/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
4. validation을 위해 e-mail 인증을 한다. 해당 e-mail을 찾아가서 인증처리하면 활성화 된다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/988062099028476376/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2016/05/aws-ceritificate-manger.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/988062099028476376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/988062099028476376'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2016/05/aws-ceritificate-manger.html' title='AWS Ceritificate Manger  이용방법'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi51kSiNNkrWNBhIyAhfZUlGrcxt1ahYF2Fen3g6vqt8KB4QPrDZoC-WHxFI7fOpDYKcVsl83qi4XEGYlYVex4xkiksmmx1V5UakFUQmY6z8ZKI3nvbF-p4vVcMg_PYupiPpcoddXq2cR0/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-23+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.11.08.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-2086966903473366233</id><published>2016-05-17T23:45:00.001-07:00</published><updated>2016-05-17T23:45:29.153-07:00</updated><title type='text'>Gitlab CI에 grunt를 통한 테스트 환경 구현(Nodejs)</title><content type='html'>&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;br /&gt;
Runner를 통해 진행 해야 하므로 .gitlab-ci.yml을 작성한다. 작성 예시는 아래와 같다.(Docker 환경)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. NodeJS를 설치한다.&lt;br /&gt;
(&lt;a href=&quot;https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions&quot;&gt;https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions&lt;/a&gt;) 참고&lt;br /&gt;
&lt;br /&gt;
2. Grunt 설치&lt;br /&gt;
npm install -g grunt-cli&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://gruntjs.com/getting-started&quot;&gt;http://gruntjs.com/getting-started&lt;/a&gt;&amp;nbsp;참고&lt;br /&gt;
&lt;br /&gt;
3. 추가 패키지들을 설치 해 준다.&lt;br /&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;4. grunt 실행&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
gurnt test&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
.gitlab-ci.yml 내용&lt;/div&gt;
&lt;div class=&quot;blob-content&quot; data-blob-id=&quot;e855c4c726059a20957396b7b79605ae8dc0764b&quot;&gt;
&lt;pre class=&quot;code highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot; id=&quot;LC1&quot;&gt;&lt;span class=&quot;s&quot;&gt;before_script&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot; id=&quot;LC2&quot;&gt;  &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;curl -sL https://deb.nodesource.com/setup_4.x | bash -&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot; id=&quot;LC3&quot;&gt;  &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;apt-get install -y nodejs&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot; id=&quot;LC4&quot;&gt;  &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;npm install -g grunt-cli&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot; id=&quot;LC7&quot;&gt;  &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;npm install&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot; id=&quot;LC8&quot;&gt;&lt;span class=&quot;s&quot;&gt;job&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot; id=&quot;LC9&quot;&gt;  &lt;span class=&quot;s&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;test&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/2086966903473366233/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2016/05/gitlab-ci-grunt-nodejs.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2086966903473366233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2086966903473366233'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2016/05/gitlab-ci-grunt-nodejs.html' title='Gitlab CI에 grunt를 통한 테스트 환경 구현(Nodejs)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-2902914261717074360</id><published>2016-05-11T00:46:00.002-07:00</published><updated>2016-05-11T00:46:45.707-07:00</updated><title type='text'>Gitlab CI 설정</title><content type='html'>-build 수행&lt;br /&gt;
프로젝트 페이지로 이동하여 설정부분(Setting)의 build가 활성화 되지 않았으면 활성화 시킨다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3kCbujaEbIlVrwG0AGnr_rBvkCw1INZdryr2XMPcdCEaraKq4ZW7Edhac7q9lqWr-GR6XH91kzj-z8FEv9MRoiGZYqL7zIG_Sme1W-wiZPgu0dFzMBSYLCW6lKI8jhyZeIa9OR0jIxoQ/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-11+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+3.47.15.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3kCbujaEbIlVrwG0AGnr_rBvkCw1INZdryr2XMPcdCEaraKq4ZW7Edhac7q9lqWr-GR6XH91kzj-z8FEv9MRoiGZYqL7zIG_Sme1W-wiZPgu0dFzMBSYLCW6lKI8jhyZeIa9OR0jIxoQ/s320/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-11+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+3.47.15.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
repository 최상단에&amp;nbsp;.gitlab-ci.yml을 작성하여 올린다.(&amp;nbsp;&lt;a href=&quot;http://doc.gitlab.com/ee/ci/yaml/README.html&quot;&gt;http://doc.gitlab.com/ee/ci/yaml/README.html&lt;/a&gt;) README 파일과 같은 위치&lt;br /&gt;
&lt;br /&gt;
.gitlab-ci.yml 작성법은&amp;nbsp;&lt;a href=&quot;https://gitlab.com/help/ci/yaml/README.md#script&quot;&gt;https://gitlab.com/help/ci/yaml/README.md#script&lt;/a&gt;&amp;nbsp;참고한다.&lt;br /&gt;
&lt;br /&gt;
add, commit 후 push하면 자동으로 build가 진행된다.&lt;br /&gt;
&lt;br /&gt;
-Runner 설치&lt;br /&gt;
build를 진행 하려면 Runner를 설치해야한다. (&lt;a href=&quot;https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/install/linux-repository.md&quot;&gt;https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/install/linux-repository.md&lt;/a&gt;) 참고하면 된다.&lt;br /&gt;
&lt;br /&gt;
Runner 설치 시 &amp;nbsp;URL과 token은 해당 프로젝트의 Runner 화면을 확인한다.(아래 빨간 선 부분)&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7tYNwViJ3n4bmgXCZFhLRIvKEDohxOd5Kau2xKXIUtLax1-0VSQjx_PKXwoKapelovUido26mG-i20bv9_1F-F75BBUyTouetzJqbSoJEKUTZ-5BtFxSnOXYgElKldrYyBNM69xcqvHw/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-11+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.28.47.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;172&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7tYNwViJ3n4bmgXCZFhLRIvKEDohxOd5Kau2xKXIUtLax1-0VSQjx_PKXwoKapelovUido26mG-i20bv9_1F-F75BBUyTouetzJqbSoJEKUTZ-5BtFxSnOXYgElKldrYyBNM69xcqvHw/s320/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-11+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+4.28.47.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
위 화면까지 했으면 Specific Runner를 생성하였을 것이다.&lt;br /&gt;
&lt;br /&gt;
Shared Runner를 생성하려면&amp;nbsp;&lt;a href=&quot;https://gitlab.com/help/ci/runners/README.md&quot;&gt;https://gitlab.com/help/ci/runners/README.md&lt;/a&gt;&amp;nbsp;을 참고한다. (해당 내용을 보면 Shared와 Specific Runner의 차이를 알 수 있다. 원하는 것을 선택하여 사용하면 된다.)&lt;br /&gt;
&lt;br /&gt;
Runner가 설치 되었으면 Build에서 pending 상태의 작업들이 성공 되어 있는 것을 알 수 있다.&lt;br /&gt;
&lt;br /&gt;
구미에 맞게 .gitlab-ci.yml을 작성하여 CI를 진행하면 된다.</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/2902914261717074360/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2016/05/gitlab-ci.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2902914261717074360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2902914261717074360'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2016/05/gitlab-ci.html' title='Gitlab CI 설정'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3kCbujaEbIlVrwG0AGnr_rBvkCw1INZdryr2XMPcdCEaraKq4ZW7Edhac7q9lqWr-GR6XH91kzj-z8FEv9MRoiGZYqL7zIG_Sme1W-wiZPgu0dFzMBSYLCW6lKI8jhyZeIa9OR0jIxoQ/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2016-05-11+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+3.47.15.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-2830247061623141546</id><published>2016-05-03T00:54:00.001-07:00</published><updated>2016-05-11T00:43:23.828-07:00</updated><title type='text'>Gitlab 6.6.5에서 8.7.0으로 업그레이드 하기</title><content type='html'>6.6.5버전에서 8.7.0으로 바로 업그레이드 하면 오류가 발생하여 부득하게 7.10.4 omni버전으로 업그레이드 후 8.7.0버전으로 업그레이드 하였다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*이전(Migration) - 이전이 필요 없을 경우 바로 7.10.4 omni버전으로 업그레이드 후 8.7.0 버전으로 업그레이드 하면 된다.&lt;br /&gt;
1. 백업&lt;br /&gt;
/home/git/gitlab$ sudo -u git -H bundle exec rake RAILS_ENV=production gitlab:backup:create (backing up at old gitlab server, source compile version)&lt;br /&gt;
&lt;div&gt;
&amp;nbsp;소스로 컴파일한 버전의 경우 위와 같이 백업 한다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
omnibus 버전인 경우는&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
sudo gitlab-rake gitlab:backup:create&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
2. 복구&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
서버 사양은 2core 2G 이상의 RAM을 가지고 있어야 원활하게 작동한다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
(참고&amp;nbsp;&lt;a href=&quot;http://doc.gitlab.com/ce/install/requirements.html&quot;&gt;http://doc.gitlab.com/ce/install/requirements.html&lt;/a&gt;)&lt;/div&gt;
&lt;div&gt;
해당 서버가 마련 되었으면 아래 명령어를 이용하여 6.6.5버전을 설치한다.(Ubuntu에 설치)&lt;/div&gt;
&lt;div&gt;
sudo apt-get install openssh-server&lt;/div&gt;
&lt;div&gt;
sudo apt-get install postfix # sendmail or exim is also OK&lt;/div&gt;
&lt;div&gt;
sudo dpkg -i gitlab-x.y.z.deb # this is the .deb you downloaded(6.6.5)&lt;/div&gt;
&lt;div&gt;
sudo gitlab-ctl reconfigure&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
6.6.5버전은 &lt;a href=&quot;https://about.gitlab.com/downloads/archives/&quot;&gt;https://about.gitlab.com/downloads/archives/&lt;/a&gt; 경로를 통해 얻을 수 있다.(wget 혹은 다운로드 후 직접 서버에 업로드)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
백업한 파일을 서버에 올린다.(e.g. /home/git/gitlab/tmp/backups/1461220799_gitlab_backup.tar)&lt;/div&gt;
&lt;div&gt;
해당 디렉토리로 옮긴다.&lt;/div&gt;
&lt;div&gt;
sudo mv 1461220799_gitlab_backup.tar /var/opt/gitlab/backups/&lt;/div&gt;
&lt;div&gt;
# 데이터베이스에 접근하는 프로세스를 정지 시킨다.&lt;/div&gt;
&lt;div&gt;
sudo gitlab-ctl stop unicorn&lt;/div&gt;
&lt;div&gt;
sudo gitlab-ctl stop sidekiq&lt;/div&gt;
&lt;div&gt;
# 복원한다.&lt;/div&gt;
&lt;div&gt;
/var/opt/gitlab$ sudo gitlab-rake gitlab:backup:restore BACKUP=1461220799&lt;/div&gt;
&lt;div&gt;
복원 시 혹시 버전이 맞지 않다고 하면 tar 파일 안의 &quot;backup_information.yml&quot; 파일의 버전 정보를 6.6.5로 변경 한 후 다시 tar로 묶어 사용한다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
# Gitlab을 시작한다.&lt;/div&gt;
&lt;div&gt;
sudo gitlab-ctl start&lt;/div&gt;
&lt;div&gt;
# Gitlab 상태를 확인한다.&lt;/div&gt;
&lt;div&gt;
sudo gitlab-rake gitlab:check SANITIZE=true&lt;/div&gt;
&lt;div&gt;
(reference &lt;a href=&quot;http://doc.gitlab.com/ce/raketasks/backup_restore.html#omnibus-installations&quot;&gt;http://doc.gitlab.com/ce/raketasks/backup_restore.html#omnibus-installations&lt;/a&gt;)&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
업그레이드 - 이전 하지 않은 경우 여기부터 시작하면 된다. 혹시나 모를 문제를 위해 백업은 반드시 실행 후 업그레이드 하자.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
7.10.4버전 또한 &lt;a href=&quot;https://about.gitlab.com/downloads/archives/&quot;&gt;https://about.gitlab.com/downloads/archives/&lt;/a&gt; 경로를 통해 얻을 수 있다.(wget 혹은 다운로드 후 직접 서버에 업로드)&lt;/div&gt;
&lt;div&gt;
# Ubuntu/Debian:&lt;/div&gt;
&lt;div&gt;
sudo dpkg -i gitlab-ce_7.10.4-omnibus-1_amd64.deb&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
(reference &lt;a href=&quot;http://doc.gitlab.com/omnibus/update/README.html#start-unicorn-and-sidekiq&quot;&gt;http://doc.gitlab.com/omnibus/update/README.html#start-unicorn-and-sidekiq&lt;/a&gt;)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
로그상에 에러가 발생하면 &amp;nbsp;“NoMethodError (undefined method `push_events=&#39; for ~~~”, 이 명령어를 실행한다. “sudo gitlab-rake db:migrate , sudo gitlab-ctl reconfigure”.&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;(reference &lt;a href=&quot;https://gitlab.com/gitlab-org/gitlab-ce/issues/1266&quot;&gt;https://gitlab.com/gitlab-org/gitlab-ce/issues/1266&lt;/a&gt;)&lt;/div&gt;
&lt;div&gt;
로그 위치는 /var/log/gitlab/gitlab-rails/production.log 이다. permission 오류가 발생하면 sudo를 사용하자.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
이로써 7.10.4버전으로 업그레이드가 완료 되었을 것이다. gitlab 페이지를 열면 해당 버전으로 정상작동하는 것을 알 수 있다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
이제는 8.7.0버전으로 업그레이드 차례이다.&lt;/div&gt;
&lt;div&gt;
서버에서 아래 명령어를 수행한다.&lt;/div&gt;
&lt;div&gt;
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash&lt;/div&gt;
&lt;div&gt;
sudo apt-get install gitlab-ce&lt;/div&gt;
&lt;div&gt;
sudo gitlab-ctl reconfigure&lt;/div&gt;
&lt;div&gt;
sudo gitlab-ctl restart&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
reference site&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://docs.omniref.com/github/gitlabhq/omnibus-gitlab/6.6.5.omnibus&quot;&gt;https://docs.omniref.com/github/gitlabhq/omnibus-gitlab/6.6.5.omnibus&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://doc.gitlab.com/omnibus/update/README.html#start-unicorn-and-sidekiq&quot;&gt;http://doc.gitlab.com/omnibus/update/README.html#start-unicorn-and-sidekiq&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://doc.gitlab.com/ce/raketasks/backup_restore.html#omnibus-installations&quot;&gt;http://doc.gitlab.com/ce/raketasks/backup_restore.html#omnibus-installations&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
추가문제해결&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
위키가 생성 되지 않는 문제가 발생하고 production.log 에 &quot;NoMethodError (undefined method username&#39; for~~~&quot; 오류가 발생하는 경우 아래 URL을 참고 하여 /opt/gitlab/embedded/service/gitlab-rails/app/services/wiki_pages/create_service.rb 파일 내용만 수정하면 일단 작동은 된다.(Workaround)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3924/diffs#diff-2&quot;&gt;https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3924/diffs#diff-2&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
8.8.0에서 완전 수정 될 듯 하다.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/2830247061623141546/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2016/05/gitlab-665-870.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2830247061623141546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2830247061623141546'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2016/05/gitlab-665-870.html' title='Gitlab 6.6.5에서 8.7.0으로 업그레이드 하기'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-8707803316321249219</id><published>2014-02-13T14:54:00.000-08:00</published><updated>2017-06-14T23:29:10.145-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type='text'>SSL Key 생성 후 AWS ELB에 적용하기</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
*SSL key 생성&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;openssl&lt;/span&gt;을 통해&lt;span lang=&quot;EN-US&quot;&gt; CA&lt;/span&gt;키 생성&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;자가키&lt;span lang=&quot;EN-US&quot;&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;a href=&quot;http://ohgyun.com/429&quot;&gt;http://ohgyun.com/429&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;을 참고&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;1. &lt;/span&gt;먼저 인증 기관&lt;span lang=&quot;EN-US&quot;&gt;(CA)&lt;/span&gt;의 개인키를 생성한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ openssl genrsa -des3 -out server.key 1024&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;2. &lt;/span&gt;서버 인증서 발급을 위한 요청 파일인&lt;span lang=&quot;EN-US&quot;&gt;
CSR을&amp;nbsp;&lt;/span&gt;생성한다&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ openssl req -new -days 365 -key
server.key -out server.csr&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&lt;span style=&quot;background: #D9D9D9; mso-pattern: gray-15 auto; mso-shading: white;&quot;&gt;*csr(certificate singing request ) - CA&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background: #D9D9D9; mso-ascii-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-fareast-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-hansi-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-pattern: gray-15 auto; mso-shading: white;&quot;&gt;에 보내 정식인증을 신청할 수 있다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;/span&gt;정식인증하지 않은 경우 사설인증으로 처리되며
사설인증을 한 경우는 브라우저에서 첫 인증기관 검증은 하지 않고 두번째인 서버 &lt;span lang=&quot;EN-US&quot;&gt;public key &lt;/span&gt;값을
전송 받는 것으로 확인 된다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
입력값&lt;span lang=&quot;EN-US&quot;&gt;(Common Name&lt;/span&gt;은
접속 시 브라우저에서 도메인을 확인 하는 내용임&lt;span lang=&quot;EN-US&quot;&gt;.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;background: #D9D9D9; mso-ascii-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-fareast-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-hansi-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-pattern: gray-15 auto; mso-shading: white;&quot;&gt;Country Name (2 letter code)
[GB]:kr&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;background: #D9D9D9; mso-ascii-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-fareast-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-hansi-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-pattern: gray-15 auto; mso-shading: white;&quot;&gt;State or Province Name (full name)
[Berkshire]:Seoul&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;background: #D9D9D9; mso-ascii-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-fareast-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-hansi-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-pattern: gray-15 auto; mso-shading: white;&quot;&gt;Locality Name (eg, city)
[Newbury]:Seoul&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;background: #D9D9D9; mso-ascii-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-fareast-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-hansi-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-pattern: gray-15 auto; mso-shading: white;&quot;&gt;Organization Name (eg, company) [My
Company Ltd]:Test Copr&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;background: #D9D9D9; mso-ascii-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-fareast-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-hansi-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-pattern: gray-15 auto; mso-shading: white;&quot;&gt;Organizational Unit Name (eg,
section) []:supper&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background: #d9d9d9; color: red;&quot;&gt;Common Name (eg, your name or your server&#39;s hostname)
[]:mail.test.com&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;background: #D9D9D9; mso-ascii-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-fareast-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-hansi-font-family: &amp;quot;맑은 고딕&amp;quot;; mso-pattern: gray-15 auto; mso-shading: white;&quot;&gt;Email Address []:admin@test.com&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
다음 내용은 &lt;span lang=&quot;EN-US&quot;&gt;“&lt;/span&gt;옵션&lt;span lang=&quot;EN-US&quot;&gt;”으로 꼭 입력 할 필요는 없다.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;3. &lt;/span&gt;자가 서명 인증서를 생성한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;$ openssl x509 -req -days 365 -in
server.csr -signkey server.key -out server.crt&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: &#39;Helvetica Neue Light&#39;, HelveticaNeue-Light, helvetica, arial, sans-serif;&quot;&gt;
4. 개인키의 암호를 제거한다&lt;span lang=&quot;EN-US&quot;&gt;.(필요할 경우)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: &#39;Helvetica Neue Light&#39;, HelveticaNeue-Light, helvetica, arial, sans-serif;&quot;&gt;
[아파치 서버나 노드 서버의 경우 웹서버가 실행될 때마다 인증서의 개인키를 물어본다 하고&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: &#39;Helvetica Neue Light&#39;, HelveticaNeue-Light, helvetica, arial, sans-serif;&quot;&gt;
키를 제거하는 편이 편리하다 함]&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: &#39;Helvetica Neue Light&#39;, HelveticaNeue-Light, helvetica, arial, sans-serif; text-indent: 15pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;$ openssl rsa -in server.key -out server.key&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;*ELB 등록&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;“aws elb ssl setup”
&lt;/span&gt;로 검색&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;a href=&quot;http://www.nczonline.net/blog/2012/08/15/setting-up-ssl-on-an-amazon-elastic-load-balancer/&quot;&gt;http://www.nczonline.net/blog/2012/08/15/setting-up-ssl-on-an-amazon-elastic-load-balancer/&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;참고&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;openssl rsa -in server.key
-text &lt;/span&gt;를 통해&lt;span lang=&quot;EN-US&quot;&gt; private &lt;/span&gt;정보 추출&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
해당내역 &lt;b&gt;②&lt;/b&gt;붙여넣기&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;[ -----BEGIN RSA
PRIVATE KEY-----&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;(tons of text)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;-----END RSA
PRIVATE KEY-----&amp;nbsp; ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;openssl x509
-inform PEM -in server.crt &lt;/span&gt;을 통해 public 정보추출 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
해당내용 &lt;b&gt;③&lt;/b&gt;붙여넣기&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;[ -----BEGIN
CERTIFICATE-----&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;(tons of text)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;-----END
CERTIFICATE----- ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
④는&lt;span lang=&quot;EN-US&quot;&gt; CA&lt;/span&gt;에 등록한 내용을 입력하는
부분이다&lt;span lang=&quot;EN-US&quot;&gt;.(인증한 경우 사용)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;



&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
①은 서버&lt;span lang=&quot;EN-US&quot;&gt; key &lt;/span&gt;이름을 입력하는
부분이다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQeM9N-bYsmjZFyIq1PuNAuBSTAVjZkr1eWLeb3K44Qb-YDsXf9ON568LICyzIIHTowsuh8VDhMDQQgWPZJloO-0ECeefc0SlIBZoXGpZxhmwkaoPnmkcVWX5AkB1X6Eyao8E1QTzQDHk/s1600/AWSELB.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;208&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQeM9N-bYsmjZFyIq1PuNAuBSTAVjZkr1eWLeb3K44Qb-YDsXf9ON568LICyzIIHTowsuh8VDhMDQQgWPZJloO-0ECeefc0SlIBZoXGpZxhmwkaoPnmkcVWX5AkB1X6Eyao8E1QTzQDHk/s1600/AWSELB.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/8707803316321249219/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2014/02/ssl-key-aws-elb.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/8707803316321249219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/8707803316321249219'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2014/02/ssl-key-aws-elb.html' title='SSL Key 생성 후 AWS ELB에 적용하기'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQeM9N-bYsmjZFyIq1PuNAuBSTAVjZkr1eWLeb3K44Qb-YDsXf9ON568LICyzIIHTowsuh8VDhMDQQgWPZJloO-0ECeefc0SlIBZoXGpZxhmwkaoPnmkcVWX5AkB1X6Eyao8E1QTzQDHk/s72-c/AWSELB.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-6426152837530121315</id><published>2014-02-02T23:56:00.002-08:00</published><updated>2014-02-03T00:26:51.108-08:00</updated><title type='text'>Talend에서 build 한 파일 shell에서 context 변수 설정하기</title><content type='html'>Talend Job Design 에서 적용한 context variable을 서버에 &amp;nbsp;archive 파일로 전송 후 적용하는 방법&lt;br /&gt;
&lt;br /&gt;
1. Talend에서 context variable을 만든다.&lt;br /&gt;
&amp;nbsp;- 만들 때 tab 중 values as tree 부분에서 &quot;v&quot;표 체크 할 수 있는 부분에 표시 해 준다.(나중에 &amp;nbsp;Run 혹은 Debug 시 변수 값을 입력할 수 있는 부분으로 생각된다. 값 이름도 없다.)&lt;br /&gt;
&lt;br /&gt;
2. Run 혹은 Debug로 테스트 하거나 문제 없다고 하면 Job Design에서 오른쪽 버튼을 클릭 후 build job을 수행하여 적당한 폴더에 넣어 둔다.&lt;br /&gt;
&lt;br /&gt;
3. 서버에 업로드 한다.&lt;br /&gt;
&lt;br /&gt;
4. 업로드한 archive 파일을 풀고 나서 .sh 파일의 수행 권한을 준다.&lt;br /&gt;
&lt;br /&gt;
5. .sh 파일을 편집기로 열어 --context=Default 다음에 &quot; --context_param 변수 명= $1&quot; 을 넣어준다. (Talend에서 변수 값을 ParamA라고 했다면 --context_param ParamA=$1 하면 된다. 그리고 .sh 파일 실행 시에 변수를 추가하는 것으로 하면 간편하다. .sh ABC 이런 식...)</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/6426152837530121315/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2014/02/talend-build-shell-context.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/6426152837530121315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/6426152837530121315'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2014/02/talend-build-shell-context.html' title='Talend에서 build 한 파일 shell에서 context 변수 설정하기'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-2279552060893103313</id><published>2013-05-29T06:09:00.001-07:00</published><updated>2013-05-29T06:09:05.225-07:00</updated><title type='text'>가습기 구매</title><content type='html'>&lt;b&gt;여기저기 구매하려 조사하다 보니 소음이 가장 신경 쓰여 해당 업체에 전화 해보아 정리한 내용이 아래와 같더라.&amp;nbsp;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;1. LG- 제습용량 10L짜리가 36db 정도라고 함.&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;2. 위닉스- 제습용량이 15L이상인 최신형은 36db이고(1m 떨어져서 &#39;약&#39;으로 했을 경우를 측정 했다고 함) 그 아래 제습용량 제품은 더 시끄럽다함. 적은 용량 제습기는 구형 컴프레셔를 써서 그런 듯.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;3. 위니아- 제습용량 11L 짜리가 31db에서 35db 라고 함. 여기도 1m 떨어져서 쟀다하고 최소치와 최대치를 알려줌. 통상 33db 된다함.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;위니아 구매했는데, 33db가 생각만큼 조용하진 않음. 다른 것은 켜놓고 잠 못 잘듯함.&amp;nbsp;&lt;/b&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/2279552060893103313/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2013/05/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2279552060893103313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/2279552060893103313'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2013/05/blog-post.html' title='가습기 구매'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-8893010641894452207</id><published>2010-12-15T22:25:00.000-08:00</published><updated>2010-12-15T23:03:38.069-08:00</updated><title type='text'>인플레 발생하면 집값 뛴다고?</title><content type='html'>인플레이션과 집값의 관계를 설명한 기사입니다. 참고 하면 좋을 듯 합니다.&lt;br /&gt;
&lt;br /&gt;
-기사원문&lt;br /&gt;
&lt;a href=&quot;http://land.naver.com/news/labColumnView.nhn?artcl_seq=91&amp;amp;lab_id=lab01&quot;&gt;http://land.naver.com/news/labColumnView.nhn?artcl_seq=91&amp;amp;lab_id=lab01&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
한국경제신문 부동산 투자 기사입니다. 위 기사와는 상대적으로 다른 의견입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: 돋움; font-size: 20px; font-weight: bold; letter-spacing: -2px; line-height: 26px;&quot;&gt;입지 좋고 분양가 할인…숨겨진 `알짜 미분양` 골라볼까&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
-기사원문&lt;br /&gt;
&lt;a href=&quot;http://www.hankyung.com/news/app/newsview.php?aid=2010121315811&amp;amp;sid=0101&amp;amp;nid=&amp;amp;page=&quot;&gt;http://www.hankyung.com/news/app/newsview.php?aid=2010121315811&amp;amp;sid=0101&amp;amp;nid=&amp;amp;page=&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/8893010641894452207/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2010/12/blog-post_15.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/8893010641894452207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/8893010641894452207'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2010/12/blog-post_15.html' title='인플레 발생하면 집값 뛴다고?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-7642263564114699496</id><published>2010-12-14T18:49:00.000-08:00</published><updated>2010-12-14T18:59:27.030-08:00</updated><title type='text'>부동산에 관한 상반된 기사</title><content type='html'>&lt;b&gt;모건스탠리, 한국 부동산 투자 손뗀다&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
예전과 다르게 투자환경이 매우 어려워 졌나 봅니다.&lt;br /&gt;
&lt;br /&gt;
-기사 원문&lt;br /&gt;
&lt;a href=&quot;http://realestate.daum.net/news/recent/main/MD20101214183319941.daum&amp;amp;nil_profile=estatetop&amp;amp;nil_newstop=news1list&quot;&gt;http://realestate.daum.net/news/recent/main/MD20101214183319941.daum&amp;amp;nil_profile=estatetop&amp;amp;nil_newstop=news1list&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span id=&quot;newsTitle&quot; style=&quot;clear: both; color: #333333; display: block; font-family: dotum, sans-serif; font: normal normal bold 18px/normal AppleGothic, 돋움, dotum; letter-spacing: -1px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 7px; width: 563px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;또 다른 의견도 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id=&quot;newsTitle&quot; style=&quot;clear: both; color: #333333; display: block; font-family: dotum, sans-serif; font: normal normal bold 18px/normal AppleGothic, 돋움, dotum; letter-spacing: -1px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 7px; width: 563px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;아파트 거래가 살아났다..가격도 &#39;들썩&#39;&lt;/span&gt;&lt;/span&gt;&lt;span id=&quot;newsTitle&quot; style=&quot;clear: both; display: block; font: normal normal bold 18px/normal AppleGothic, 돋움, dotum; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 7px; width: 563px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Gulim; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;-기사 원문&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id=&quot;newsTitle&quot; style=&quot;clear: both; color: #333333; display: block; font-family: dotum, sans-serif; font: normal normal bold 18px/normal AppleGothic, 돋움, dotum; letter-spacing: -1px; line-height: 21px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 7px; width: 563px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: Gulim; font-size: small; font-weight: normal; letter-spacing: normal; line-height: normal;&quot;&gt;&lt;a href=&quot;http://realestate.daum.net/news/recent/main/MD20101215110230897.daum&quot;&gt;http://realestate.daum.net/news/recent/main/MD20101215110230897.daum&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/7642263564114699496/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2010/12/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/7642263564114699496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/7642263564114699496'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2010/12/blog-post.html' title='부동산에 관한 상반된 기사'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-4245117857982791294</id><published>2010-11-24T23:17:00.000-08:00</published><updated>2010-11-24T23:19:16.644-08:00</updated><title type='text'>연금저축펀드, 보험에 관한 기사</title><content type='html'>*연금저축펀드기사&lt;br /&gt;
1.&amp;nbsp;&lt;a href=&quot;http://www.fnnews.com/view?ra=Sent0301m_View&amp;amp;corp=fnnews&amp;amp;arcid=0922145135&amp;amp;cDateYear=2010&amp;amp;cDateMonth=11&amp;amp;cDateDay=15&quot;&gt;http://www.fnnews.com/view?ra=Sent0301m_View&amp;amp;corp=fnnews&amp;amp;arcid=0922145135&amp;amp;cDateYear=2010&amp;amp;cDateMonth=11&amp;amp;cDateDay=15&lt;/a&gt;&lt;br /&gt;
2.&amp;nbsp;&lt;a href=&quot;http://www.naeil.com/News/economy/ViewNews.asp?nnum=583409&amp;amp;sid=E&amp;amp;tid=6&quot;&gt;http://www.naeil.com/News/economy/ViewNews.asp?nnum=583409&amp;amp;sid=E&amp;amp;tid=6&lt;/a&gt;&lt;br /&gt;
3.&amp;nbsp;&lt;a href=&quot;http://news.mk.co.kr/v2/view.php?sc=40200003&amp;amp;cm=MONEY%20&amp;amp;%20RICHES&amp;amp;year=2010&amp;amp;no=632551&amp;amp;selFlag=&amp;amp;relatedcode=&amp;amp;wonNo=&amp;amp;sID=402&quot;&gt;http://news.mk.co.kr/v2/view.php?sc=40200003&amp;amp;cm=MONEY%20&amp;amp;%20RICHES&amp;amp;year=2010&amp;amp;no=632551&amp;amp;selFlag=&amp;amp;relatedcode=&amp;amp;wonNo=&amp;amp;sID=402&lt;/a&gt;&lt;br /&gt;
4.&amp;nbsp;&lt;a href=&quot;http://www.segye.com/Articles/NEWS/ECONOMY/Article.asp?aid=20101121001687&amp;amp;subctg1=&amp;amp;subctg2=&quot;&gt;http://www.segye.com/Articles/NEWS/ECONOMY/Article.asp?aid=20101121001687&amp;amp;subctg1=&amp;amp;subctg2=&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
*연금저축보험기사&lt;br /&gt;
5.&amp;nbsp;&lt;a href=&quot;http://fntimes.com/sub/list_view.asp?num=022010110800803&quot;&gt;http://fntimes.com/sub/list_view.asp?num=0220101108008&lt;/a&gt;3</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/4245117857982791294/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2010/11/blog-post_24.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/4245117857982791294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/4245117857982791294'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2010/11/blog-post_24.html' title='연금저축펀드, 보험에 관한 기사'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-6444112793030592644</id><published>2010-11-23T00:49:00.000-08:00</published><updated>2010-12-13T20:08:53.877-08:00</updated><title type='text'>연금저축상품의 종류와 효과</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 19px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size: 14pt;&quot;&gt;1. &lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;소득공제효과&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;연금저축상품에 연간&lt;span lang=&quot;EN-US&quot;&gt; 300&lt;/span&gt;만원 적립 시&lt;span lang=&quot;EN-US&quot;&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;   &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 97.55pt;&quot; valign=&quot;top&quot; width=&quot;130&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;과세표준①&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.2pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;세율&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;주민세포함&lt;span lang=&quot;EN-US&quot;&gt;)&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;②&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.2pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;납부세액&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;①&lt;span lang=&quot;EN-US&quot;&gt;x&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;②)&lt;/span&gt;③&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.25pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;실제 환급 금액&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 1;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 97.55pt;&quot; valign=&quot;top&quot; width=&quot;130&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;8,800&lt;/span&gt;만원 초과&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.2pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;38.5%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.2pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;1,749&lt;/span&gt;만원 초과&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.25pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;1,155,000&lt;/span&gt;원&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 2;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 97.55pt;&quot; valign=&quot;top&quot; width=&quot;130&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;4,600&lt;/span&gt;만원 초과&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;~8,800&lt;/span&gt;만원 이하&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.2pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;26.4%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.2pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;640&lt;/span&gt;만원 초과&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;~1,749&lt;/span&gt;만원 이하&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.25pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;792,000&lt;/span&gt;원&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 3;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 97.55pt;&quot; valign=&quot;top&quot; width=&quot;130&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;1,200&lt;/span&gt;만원 초과&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;~4,600&lt;/span&gt;만원 이하&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.2pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;16.5%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.2pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;79&lt;/span&gt;만원   초과&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;~640&lt;/span&gt;만원 이하&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.25pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;495,000&lt;/span&gt;원&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 4; mso-yfti-lastrow: yes;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 97.55pt;&quot; valign=&quot;top&quot; width=&quot;130&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;1,200&lt;/span&gt;만원 이하&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.2pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;6.6%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.2pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;79&lt;/span&gt;만원   이하&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 121.25pt;&quot; valign=&quot;top&quot; width=&quot;162&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;198,000&lt;/span&gt;원&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #0070c0;&quot;&gt;*2011&lt;/span&gt;&lt;span style=&quot;color: #0070c0;&quot;&gt;년&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;내년&lt;span lang=&quot;EN-US&quot;&gt;)&lt;/span&gt;부터&lt;span lang=&quot;EN-US&quot;&gt; 300&lt;/span&gt;만원 한도에서&lt;span lang=&quot;EN-US&quot;&gt; 400&lt;/span&gt;만원 한도로&lt;span lang=&quot;EN-US&quot;&gt; 100&lt;/span&gt;만원 올라 감&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;추가가입 가능함&lt;span lang=&quot;EN-US&quot;&gt;. &lt;/span&gt;환급액이 더 늘어남&lt;span lang=&quot;EN-US&quot;&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size: 14pt;&quot;&gt;2. &lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;연금저축 상품 선택방법&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;   &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 62.1pt;&quot; valign=&quot;top&quot; width=&quot;83&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;금융회사&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 133.0pt;&quot; valign=&quot;top&quot; width=&quot;177&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;증권사&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 133.05pt;&quot; valign=&quot;top&quot; width=&quot;177&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;생명보험사&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 133.05pt;&quot; valign=&quot;top&quot; width=&quot;177&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;화재보험사&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 1;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 62.1pt;&quot; valign=&quot;top&quot; width=&quot;83&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;선택포인트&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 133.0pt;&quot; valign=&quot;top&quot; width=&quot;177&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;투자수익극대화&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;수수료저렴&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;비 정기납입 가능&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 133.05pt;&quot; valign=&quot;top&quot; width=&quot;177&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;원금보장&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;종신연금수령&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;복리이자&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 133.05pt;&quot; valign=&quot;top&quot; width=&quot;177&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;원금보장&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;사업비저렴&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;생명보험대비&lt;span lang=&quot;EN-US&quot;&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;복리이자&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 2;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 62.1pt;&quot; valign=&quot;top&quot; width=&quot;83&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;알아야 할 사항&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 133.0pt;&quot; valign=&quot;top&quot; width=&quot;177&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;원금보장 되지 않음&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 133.05pt;&quot; valign=&quot;top&quot; width=&quot;177&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;변동금리&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 133.05pt;&quot; valign=&quot;top&quot; width=&quot;177&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;-&lt;/span&gt;변동금리&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 3; mso-yfti-lastrow: yes;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 62.1pt;&quot; valign=&quot;top&quot; width=&quot;83&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;공통&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td colspan=&quot;3&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 399.1pt;&quot; valign=&quot;top&quot; width=&quot;532&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0070c0;&quot;&gt;각 금융회사간 이전 가능&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;연금저축펀드 &lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #0070c0;&quot;&gt;↔&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #0070c0;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0070c0;&quot;&gt;연금저축보험&lt;span lang=&quot;EN-US&quot;&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;55&lt;/span&gt;세 이후&lt;span lang=&quot;EN-US&quot;&gt; 5&lt;/span&gt;년 이상   연금으로 수령 하지 않을 시 해지세 부과&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size: 14pt;&quot;&gt;3. &lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;연금수령방법&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;- 55&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;세부터&lt;span lang=&quot;EN-US&quot;&gt; 5&lt;/span&gt;년간&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;혹은&lt;span lang=&quot;EN-US&quot;&gt; 10&lt;/span&gt;년간&lt;span lang=&quot;EN-US&quot;&gt;) &lt;/span&gt;연금저축으로 연금을 수령하고&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;60&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;세&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;혹은&lt;span lang=&quot;EN-US&quot;&gt; 65&lt;/span&gt;세&lt;span lang=&quot;EN-US&quot;&gt;)&lt;/span&gt;부터 공무원&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;혹은 국민&lt;span lang=&quot;EN-US&quot;&gt;) &lt;/span&gt;연금을 수령하면&lt;span lang=&quot;EN-US&quot;&gt; 55&lt;/span&gt;세부터 연금을 수령 가능&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size: 12pt;&quot;&gt;*추가 정보 사항&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;- 55세 이전에 해지를 하거나 55세가 넘었다고 하여도 5년 이상 나눠서 받지 않으면 소득공제받았던 금액을 추징하는 개념으로 세금 발생함. 원금의 22%를 세금으로 추징(가입 후 5년 이내에 하면 2.2% 추가 가산세 발생 총 24.2% 추징세 발생)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;- 근로자가 추가 납입한 퇴직연금과 합산 해 소득공제 함(퇴직연금 불입액은 사업주가 부담하나 DC형 같은 경우 추가납입이 가능하므로 근로자가 낸 추가 납입금에 한해 합산 300만원까지 소득공제함, 퇴직연금제 시행하지 않으면 해당사항 없음)&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/6444112793030592644/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2010/11/blog-post_23.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/6444112793030592644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/6444112793030592644'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2010/11/blog-post_23.html' title='연금저축상품의 종류와 효과'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2814435022010153376.post-187187548279649727</id><published>2010-11-23T00:35:00.000-08:00</published><updated>2010-12-13T20:09:45.352-08:00</updated><title type='text'>연말정산시 소득공제 가능한 금융상품은?</title><content type='html'>&lt;div&gt;작년(2009년)까지만 하더라도 장기주택마련상품과 장기주식형펀드가 가능하였지만 올해는 혜택이 사라져서 아래와 같은 상품만 가능합니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;1. 연금저축상품(납입액 전액이 300만원 한도에서 소득공제된다. 2011년 부터는 400만원으로 증액됨)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;2. 보장성보험(자동차 혹은 종신, 상해보험등 개인보험에서 년간 100만원까지 소득공제됨)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size: 12pt;&quot;&gt;*&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;소득공제란&lt;span lang=&quot;EN-US&quot;&gt;?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;- 연말정산 시 소득(근로, 사업 등)의 총금액에서 해당 금액만큼 소득액을 빼 과표(최종 세금을 내야할 소득금액)를 낮추는 것&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size: 12pt;&quot;&gt;*&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;연말정산이란&lt;span lang=&quot;EN-US&quot;&gt;?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;- &lt;/span&gt;매달 국가가 미리 징수한 근로소득세 일년 합계 금액이 내야 할 실제 세금보다 적은지 많은지 정산&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;조정하는 행위&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;미리 걷은 세금이 많으면&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;세금공제 상품 혹은 공제되는 항목이 많으면&lt;span lang=&quot;EN-US&quot;&gt;) &lt;/span&gt;돌려&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;환급&lt;span lang=&quot;EN-US&quot;&gt;) &lt;/span&gt;주고&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;그렇지 않고 적으면&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;세금공제 상품 혹은 공제되는 항목이 적으면&lt;span lang=&quot;EN-US&quot;&gt;) &lt;/span&gt;내야&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;추징&lt;span lang=&quot;EN-US&quot;&gt;)&lt;/span&gt;함&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://seojhok.blogspot.com/feeds/187187548279649727/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://seojhok.blogspot.com/2010/11/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/187187548279649727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2814435022010153376/posts/default/187187548279649727'/><link rel='alternate' type='text/html' href='http://seojhok.blogspot.com/2010/11/blog-post.html' title='연말정산시 소득공제 가능한 금융상품은?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06035765303917561947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>