<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>velog</title>
    <link>https://suminn0.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 27 Aug 2026 10:59:19 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>@Eeap</managingEditor>
    <image>
      <title>velog</title>
      <url>https://tistory1.daumcdn.net/tistory/4717728/attach/6e72f6cf544b4bdfb04de43f006a7f02</url>
      <link>https://suminn0.tistory.com</link>
    </image>
    <item>
      <title>글또 10기 회고록</title>
      <link>https://suminn0.tistory.com/173</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 이번달이 글또 마지막 달이라서 회고록을 작성해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://geultto.github.io/blog/geultto-summary/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://geultto.github.io/blog/geultto-summary/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1743263544797&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;글또(개발자 글쓰기 모임) 소개&quot; data-og-description=&quot;&quot; data-og-host=&quot;geultto.github.io&quot; data-og-source-url=&quot;https://geultto.github.io/blog/geultto-summary/&quot; data-og-url=&quot;https://geultto.github.io/blog/geultto-summary/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/oL0K9/hyYxMWaCXz/U0wqxSY6SbsEI0lQ6d1MYK/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160,https://scrap.kakaocdn.net/dn/BM2vP/hyYxDZd71Q/1kIy7rKZsLidDoLvMCxZ6k/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160&quot;&gt;&lt;a href=&quot;https://geultto.github.io/blog/geultto-summary/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://geultto.github.io/blog/geultto-summary/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/oL0K9/hyYxMWaCXz/U0wqxSY6SbsEI0lQ6d1MYK/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160,https://scrap.kakaocdn.net/dn/BM2vP/hyYxDZd71Q/1kIy7rKZsLidDoLvMCxZ6k/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;글또(개발자 글쓰기 모임) 소개&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;geultto.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;벌써 글또를 시작한 지 6개월이 됐다는게 믿기지 않는 것 같다. 처음 시작할 땐 솔직히 글을 일주일에 한번 정도 열심히 쓸줄 알았는데 막상 회사도 다니고 약속도 있고 그러면 2주에 한번씩 쓰는 것도 쉽지 않은 것 같다. 그래도 오늘은 글또의 마지막 기수의 마지막 달이다 보니 회고를 해보려고 한다!&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;왜 글또를 시작했는가?&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전부터 글또에 대해서는 알고 있었지만 내가 열심히 글을 잘 쓸 수 있을까? 라는 생각이 들어 들어가지 않았던 것 같다. 또한, 글또를 지원할 때 써야하는 항목들이 생각보다 길어서 쉽지 않았던 것 같다. 그러다가 이번이 마지막 기수이고 다시는 기회가 없을 것 같아 지원을 하였고 그렇게 글또 10기를 참여하게 됐다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;글또를 통해 얻어갈 수 있었던 것&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 글또를 하면서 목표로 했던 건 일주일에 한번씩 간단하게 기술글을 작성해보자! 였던 것 같다. 하지만 역시 신입에게 업무 외의 시간은 많지 않은 것 같고 그마저도 지인을 만나면 시간이 많이 부족했던 것 같다ㅠㅠ.. 그래도 최대한 격주에 한번씩 쓰려고 노력을 했던 것 같고 다만 아쉬운 점은 이번 글또 글에서 데이터 엔지니어링 관련된 글도 많이 작성해보고 싶었는데 작성해보지 못해서 조금 아쉬웠던 것 같다. 그래도 글또를 통해서 매주는 아니지만 격주동안 글을 써보는 시간을 가졌던 것 같고 다른 사람들의 글도 보면서 요새 다들 어떤 기술에 관심을 가지고 있는지 등을 알아볼 수 있어서 좋았던 것 같다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;글또를 하면서 아쉬웠던 점&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글또에는 글을 쓰는 것 이외에 반상회나 커피챗 등 다양한 활동들이 있다. 반상회는 진짜 참여해보고 싶었는데 다른 슬랙에 의해 묻혀서 반상회가 열렸고 모집하고 있다는 슬랙을 보지 못했다ㅠㅠ... 데이터 반상회 가고 싶었는데 좀 많이 아쉬웠던 것 같다.. (같은 데이터 카테고리에 있는 친구도 이 사실을 몰랐다..)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 커피챗이나 다양한 활동들도 시간을 내서 조금 참여해볼걸 이라는 생각이 들었던 것 같다. 이전에는 소모임도 자주 다니면서 사람들을 만났던 것 같은데 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;사실 요새는 계속 일만 하다보니&lt;span&gt; 같은 분야에 있는 사람들도 못만났던 것 같다,,ㅠ 마지막이 되어서야 글또 커피챗을 했는데 같은 분야의 사람들과 비슷한 공통사에 대한 얘기를 나누고 비슷한 고민을 얘기하다가 커피챗을 좀 더 해볼걸이라는 생각이 들었던 것 같다 ㅎㅎ,,ㅠ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;마무리&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 글또를 할지 말지 매우 고민했지만 지금은 안했으면 후회했을 것 같다는 생각이 들었고 이전에도 글또를 참여해볼 걸 이라는 생각이 들었던 것 같다. 예전에는 자유롭게 글쓰는게 좋아서 한달에 한번씩 쓰거나 거의 드문드문 썼던 것 같은데 글또 덕분에 격주 단위로 글을 쓰면서 공부도 더 하게 되는 것 같고 좋았던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예전에 글을 처음 썼을 때의 나를 생각해보면 국어를 잘 못해서 그런지 글을 써도 뭔가 문장의 연결성도 부족하고 왜 이 부분에서 이 내용을 설명하는지에 대한 논리도 부족했던 것 같다. 하지만 요즘 계속 글을 쓰면서 드는 생각은 글은 점점 짧아지는 것 같긴 하지만 내용의 흐름이나 설명 부분에서는 조금 나아진 것 같다는 생각이 든다..!(아직 부족하긴 하지만 ㅎㅎ..) 또한 글을 쓰면서 생각도 정리가 되고 공부도 더하게 되고 여러모로 좋았던 것 같다. 그래서 글또는 이번 10기로 끝난다고 말씀은 주셨지만 앞으로도 글또로 인한 강제로 글쓰기가 아니어도 꾸준히 격주나 달마다 글을 작성해야겠다는 생각이 들었다..!&amp;nbsp;&lt;/p&gt;</description>
      <category>일상</category>
      <author>@Eeap</author>
      <guid isPermaLink="true">https://suminn0.tistory.com/173</guid>
      <comments>https://suminn0.tistory.com/173#entry173comment</comments>
      <pubDate>Sun, 30 Mar 2025 01:19:26 +0900</pubDate>
    </item>
    <item>
      <title>SageMaker Notebook instance 데이터 migratition</title>
      <link>https://suminn0.tistory.com/172</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 SageMaker Notebook instance를 migration 하는 방법에 대해 알아보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/blogs/machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws.amazon.com/ko/blogs/machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1740668285634&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Migrate your work to an Amazon SageMaker notebook instance with Amazon Linux 2 | Amazon Web Services&quot; data-og-description=&quot;Amazon SageMaker notebook instances now support Amazon Linux 2, so you can now create a new Amazon SageMaker notebook instance to start developing your machine learning (ML) models with the latest updates. An obvious question is: what do I need to do to mi&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/ko/blogs/machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/&quot; data-og-url=&quot;https://aws.amazon.com/blogs/machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hy5o2/hyYjq0P3G4/5rmlElgH7bp9M8CoDOGKr1/img.jpg?width=1092&amp;amp;height=732&amp;amp;face=0_0_1092_732,https://scrap.kakaocdn.net/dn/bGn5GB/hyYmSnOm6e/KA6AnkXKKXBTdm7oSXRswK/img.jpg?width=1092&amp;amp;height=732&amp;amp;face=0_0_1092_732,https://scrap.kakaocdn.net/dn/cv2Bjk/hyYm2qoLPa/mgcUtDKoX2felbN16UCXp0/img.jpg?width=927&amp;amp;height=1039&amp;amp;face=0_0_927_1039&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/blogs/machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/ko/blogs/machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hy5o2/hyYjq0P3G4/5rmlElgH7bp9M8CoDOGKr1/img.jpg?width=1092&amp;amp;height=732&amp;amp;face=0_0_1092_732,https://scrap.kakaocdn.net/dn/bGn5GB/hyYmSnOm6e/KA6AnkXKKXBTdm7oSXRswK/img.jpg?width=1092&amp;amp;height=732&amp;amp;face=0_0_1092_732,https://scrap.kakaocdn.net/dn/cv2Bjk/hyYm2qoLPa/mgcUtDKoX2felbN16UCXp0/img.jpg?width=927&amp;amp;height=1039&amp;amp;face=0_0_927_1039');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Migrate your work to an Amazon SageMaker notebook instance with Amazon Linux 2 | Amazon Web Services&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Amazon SageMaker notebook instances now support Amazon Linux 2, so you can now create a new Amazon SageMaker notebook instance to start developing your machine learning (ML) models with the latest updates. An obvious question is: what do I need to do to mi&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 문서의 아키텍쳐를 살펴보면 SageMaker Notebook instance는 EC2와 EBS 볼륨으로 구성이 되어있고 AWS Deep Learning AMI로 이미지가 제공되고 있는 걸 확인할 수 있다. EBS 볼륨은 &quot;/home/ec2-user/SageMaker&quot;에 마운팅 되어있고 고 주로 사용자는 해당 디렉토리 위에서 파일을 생성하고 작업을 하게 된다. 오늘은 작업 파일이 존재하는 /home/ec2-user/SageMaker의 데이터를 다른 노트북 인스턴스로 이관하는 작업에 대해 설명하고자 한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;1. 사전 준비&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 SageMaker Notebook instance에 실행 역할에 대한 IAM 역할에는 아래와 같은 권한들이 필요하다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;nbsp;sagemaker:listtag&lt;/li&gt;
&lt;li&gt;&amp;nbsp;s3:CreateBucket&lt;/li&gt;
&lt;li&gt;&amp;nbsp;s3:GetObject&lt;/li&gt;
&lt;li&gt;&amp;nbsp;s3:PutObject&lt;/li&gt;
&lt;li&gt;&amp;nbsp;s3:ListBucket&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음 네트워크 구성의 경우 만약 Notebook instance가 direct internet access 옵션이 허용되어 있는 경우 별다른 작업이 필요없지만, 허용되어 있지 않은 경우 VPC 외부로의 통신을 위한 NAT Gateway나 S3 Gateway Endpoint &amp;amp; SageMaker API Interface Endpoint가 필요하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이외에 따로 파일 시스템을 마운팅 했을 경우 unmount를 한 뒤 새로운 instance에 mount 해야한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;2. LCC 생성&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마이그레이션을 위해서는 총 두가지의 LLC를 생성해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 첫 번째로는 기존의 Notebook instance의 데이터를 S3로 백업하는 LCC를 생성하도록 하겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-backup/on-start.sh&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-backup/on-start.sh&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1740669019054&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;amazon-sagemaker-notebook-instance-lifecycle-config-samples/scripts/migrate-ebs-data-backup/on-start.sh at master &amp;middot; aws-samples&quot; data-og-description=&quot;A collection of sample scripts to customize Amazon SageMaker Notebook Instances using Lifecycle Configurations - aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-backup/on-start.sh&quot; data-og-url=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-backup/on-start.sh&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cD1tNi/hyYjMJxE6a/SHN6FLayXHaK8BxKq7CSi0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/HWGYW/hyYmS2p1YT/lROEZwsm8U8jh0ByZKAKwK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-backup/on-start.sh&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-backup/on-start.sh&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cD1tNi/hyYjMJxE6a/SHN6FLayXHaK8BxKq7CSi0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/HWGYW/hyYmS2p1YT/lROEZwsm8U8jh0ByZKAKwK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;amazon-sagemaker-notebook-instance-lifecycle-config-samples/scripts/migrate-ebs-data-backup/on-start.sh at master &amp;middot; aws-samples&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A collection of sample scripts to customize Amazon SageMaker Notebook Instances using Lifecycle Configurations - aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 경로에 있는 on-start.sh 파일을 설치한 뒤 아래의 AWSCLI 명령어를 통해 LCC를 하나 생성하도록 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1740669076188&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;aws sagemaker create-notebook-instance-lifecycle-config --notebook-instance-lifecycle-config-name backup-LCC --on-start Content=$(base64 -i on-start.sh)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-sync/on-create.sh&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-sync/on-create.sh&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1740669196486&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;amazon-sagemaker-notebook-instance-lifecycle-config-samples/scripts/migrate-ebs-data-sync/on-create.sh at master &amp;middot; aws-samples/&quot; data-og-description=&quot;A collection of sample scripts to customize Amazon SageMaker Notebook Instances using Lifecycle Configurations - aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-sync/on-create.sh&quot; data-og-url=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-sync/on-create.sh&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/J2M7k/hyYmUlDpIG/JyCAvv9HvozSh0pxxG2Xo0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/Pe5So/hyYjua6UY4/QM8Hua97xZhJwqPZJbdlUK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-sync/on-create.sh&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/migrate-ebs-data-sync/on-create.sh&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/J2M7k/hyYmUlDpIG/JyCAvv9HvozSh0pxxG2Xo0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/Pe5So/hyYjua6UY4/QM8Hua97xZhJwqPZJbdlUK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;amazon-sagemaker-notebook-instance-lifecycle-config-samples/scripts/migrate-ebs-data-sync/on-create.sh at master &amp;middot; aws-samples/&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A collection of sample scripts to customize Amazon SageMaker Notebook Instances using Lifecycle Configurations - aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음 의 경로에 있는 on-create.sh 파일을 설치한 뒤 아래의 AWSCLI 명령어를 통해 LCC를 하나 생성하도록 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1740669201522&quot; class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;aws sagemaker create-notebook-instance-lifecycle-config --notebook-instance-lifecycle-config-name sync-LCC --on-create Content=$(base64 -i on-create.sh)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;3. 백업&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존에 갖고 있던 SageMaker Notebook instance를 중지한 뒤 back-LCC로 생성한 LCC를 해당 instance에 추가해주도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음 태그에 key로 ebs-backup-bucket을 value로는 백업할 s3 bucket을 추가해주도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;태그와 LCC를 추가한 뒤 기존 Notebook instance를 재시작하여 s3 bucket에 데이터가 백업될 수 있도록 한다. SageMaker Notebook instance가 InService 상태가 된다면 s3 bucket으로 이동하여 정상적으로 데이터가 저장되었는지 확인한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;u&gt;4. 동기화&lt;/u&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 데이터 백업이 완료되었으면 데이터 이전을 위한 새로운 SageMaker Notebook instance를 하나 생성하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 LCC에는 이전에 생성하였던 sync-LCC가 들어가도록 설정을 하고 태그에는 기존에 있던 Notebook instance에 추가했던 태그 이외에도 key로 backup-snapshot, value로는 백업한 s3 bucket에 생성된 폴더 이름을 적어주도록 한다. 폴더 이름의 경우 &amp;lt;기존 notebook instance 이름&amp;gt;-&amp;lt;백업된 시간&amp;gt;으로 되어있는 걸 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로운 Noteboon instance가 Pending 상태에서 InService 상태로 변경되면 해당 Notebook instance에 접속해 정상적으로 데이터가 이관됐는지 확인하고 기존 Notebook instance는 삭제하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 이렇게 기존의 SageMaker Notebook instance의 데이터를 새로운 Notebook instance로 이관하는 방법에 대해 알아보았다. 추후에 타겟 리소스의 VPC 환경 변화나 새로운 Platform이 등장할 때 기존에 있는 데이터를 다른 Notebook instance로 이전 하는 목적으로 잘 활용하면 좋을 것 같다.&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>migration</category>
      <category>Notebook</category>
      <category>SageMaker</category>
      <author>@Eeap</author>
      <guid isPermaLink="true">https://suminn0.tistory.com/172</guid>
      <comments>https://suminn0.tistory.com/172#entry172comment</comments>
      <pubDate>Fri, 28 Feb 2025 01:08:51 +0900</pubDate>
    </item>
    <item>
      <title>[회고] 2024년을 돌아보며</title>
      <link>https://suminn0.tistory.com/171</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;368&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baaq9x/btsMjMnYqsh/5ZCQHulSsn9mGdZYdhfYsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baaq9x/btsMjMnYqsh/5ZCQHulSsn9mGdZYdhfYsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baaq9x/btsMjMnYqsh/5ZCQHulSsn9mGdZYdhfYsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbaaq9x%2FbtsMjMnYqsh%2F5ZCQHulSsn9mGdZYdhfYsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;737&quot; height=&quot;368&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;368&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;벌써 2025년 2월이 되었지만, 늦게나마 2024년 회고를 해보려고 한다..(요새 너무 바빠서 정신이 없었는데 이제서야 미뤄놨던 회고를 작성해보기로 했다) 군대를 전역한 이후에는 시간이 되게 빨리 가는 것 같다고 느껴서, 잊지 않도록 기록할 겸 내가 이전 년도에 했던 일이나 앞으로 해야할 일을 좀 정리하는 습관을 가져보려고 한다.&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 id=&quot;devops-study-1--2&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;데이터 엔지니어링 파트타임 (1월 ~ 2월 말)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지인의 추천으로 운이 좋게도 회사에서 데이터 엔지니어링을 해볼 수 있는 기회를 얻게 되었다. 사실 Kubernetes를 업무적으로 써보고 싶다는 생각으로 들어가기로 결심했지만 지금 돌이켜 생각해보면 여러 가지를 경험해 볼 수 있는 좋은 기회였던 것 같다. 해당 기회를 통해서 실시간 데이터 스트리밍을 위한 파이프라인 구축을 해볼 수 있는 경험을 쌓을 수 있게 되었고, 여러 가지 트러블슈팅이나 기술적인 고민들도 많이 해볼 수 있는 좋은 기회였던 것 같다. 비록 짧은 기간이었지만 해당 기간동안 Kubernetes 환경이나 Apache Flink 환경을 구축해보는 등 다양한 경험을 할 수 있었고, 구축한 데이터 파이프라인을 Kafka와 연동하여 실시간으로 리소스 사용량을 모니터링하여 코드를 개선하는 등 엔지니어링 측면에서도 많은 경험을 할 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에 클라우드를 활용하는 직무 외에 다른 직무에 대해 크게 생각해본 적이 없었지만, 이번 기회로 데이터 파이프라인을 구축하고 리소스 사용의 최적화하기 위해 모니터링하고 개선하는 작업 등을 겪으면서 데이터 엔지니어라는 직무에 대해서도 매력을 느끼게 된 것 같다. (사실 개인적으로 더 해보고 싶은데 요새 바빠서 시간이 안나는 것 같다 ㅠㅠ..) 내가 처음다루는 내용이고 국내 자료도 별로 없어서 머리를 부딪히면서 시간을 많이 썼지만, 이때 엔지니어링 적으로 생각이 더 넓어진 기분이었다(메모리 사용량을 줄이기 위해 개선도 하고.. cpu 부하도 줄이기 위해 이것저것 고민도 해보고..)&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;challenge&quot; data-emoticon-name=&quot;020&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/challenge/large/020.png&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/challenge/large/020.png&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;3월 코타키나발루 (3/2 ~ 3/7)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;열심히 일한 나에게 보상을 주기 위해^^ㅎ 휴양지로 오랜만에 놀러갔다. 코타키나발루는 처음가서 이것저것 많이 알아보고 갔었고, 예쁜 노을이랑 바다도 보고 지금 생각하면 많이 생각나는 여행인 것 같다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도착하는 첫 날에는 새벽에 도착해서 정신이 없던 때라 ATM에서 가져온 트래블월렛 카드로 현금을 뽑으려 했는데, 비밀번호가 몇번 실패하더니 ATM기가 카드를 먹어버려서 완전 멘붕이었다..  다행히 지나가는 공항 직원분이 우리가 멘붕한게 보였는지 ATM기 카드 돌려받을 수 있게 알아도 봐주시고 숙소까지 갈 수 있도록 택시도 잡아주셨다..(결국 못찾았지만..) 다행히 현지 은행 중에 카카오뱅크 카드로 돈을 인출할 수 있는 곳이 있어서 다행이었지만 지금 생각하면 그때는 악몽이었다,,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceT44m/btsMjp7KxQi/jXHuFW2q9DHncbkHisWZoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceT44m/btsMjp7KxQi/jXHuFW2q9DHncbkHisWZoK/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; width=&quot;343&quot; height=&quot;457&quot; data-widthpercent=&quot;22.9&quot; style=&quot;width: 22.3642%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceT44m/btsMjp7KxQi/jXHuFW2q9DHncbkHisWZoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceT44m%2FbtsMjp7KxQi%2FjXHuFW2q9DHncbkHisWZoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEabTj/btsMkVRCBYV/BDPcP2cs8iRq5qpKkMRNq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEabTj/btsMkVRCBYV/BDPcP2cs8iRq5qpKkMRNq1/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; width=&quot;407&quot; height=&quot;543&quot; style=&quot;width: 22.3642%; margin-right: 10px;&quot; data-widthpercent=&quot;22.9&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEabTj/btsMkVRCBYV/BDPcP2cs8iRq5qpKkMRNq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEabTj%2FbtsMkVRCBYV%2FBDPcP2cs8iRq5qpKkMRNq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lxVMn/btsMjUe2VLJ/3Vw8jfofgNNGk4K4jZdZyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lxVMn/btsMjUe2VLJ/3Vw8jfofgNNGk4K4jZdZyk/img.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;811&quot; data-is-animation=&quot;false&quot; style=&quot;width: 52.946%;&quot; data-widthpercent=&quot;54.2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lxVMn/btsMjUe2VLJ/3Vw8jfofgNNGk4K4jZdZyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlxVMn%2FbtsMjUe2VLJ%2F3Vw8jfofgNNGk4K4jZdZyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;811&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 날에는 안좋은 일이 있었지만 그래도 다음 날이나 섬을 놀러가는 날은 날씨도 맑고 노을도 이뻐서 너무 만족스러웠다! 바다랑 노을을 보고 있으면 뭔가 힐링도 되게 별 생각없이 있을 수 있어서 좋았다! (반딧불도 봤지만 기대에 비해.. 적어서 아쉬웠다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;++ 샹그릴라 리조트를 추천합니다!! 꼭 하루는 가보세요&lt;/p&gt;
&lt;h2 id=&quot;1학기-2학기-21학점-6전공&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; &lt;/h2&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1학기 11학점&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막 학기는 거의 교양만 듣고 졸업프로젝트만 했던 것 같다. 졸업프로젝트는 클라우드 환경에서 네트워크 트래픽 실시간 이상탐지를 구축하는 프로젝트를 진행하였다. 기존에 파트타임에서 알게 되었던 Apache Flink를 활용하여 AWS의 여러 가지 서비스를 결합하여 실시간으로 발생하는 네트워크 트래픽(vpc flow logs)를 처리하여 이상 탐지를 할 수 있도록 구축하였다. 비록 비용과 데이터 측면에서 정확도는 크게 좋지 않았지만 교수님께서 좋은 평가를 주셨고 마지막 학기도 잘 마무리할 수 있었다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 이때 취업 준비 한다고 여러 회사 코테도 보고(결국엔 다 떨어졌지만..ㅠㅠ) 지원서도 작성해보고 열심히 살았던 것 같다. 결과적으로는 1학기 때 운이 좋게 가고 싶던 회사 면접을 보게 되었고 좋은 결과를 얻게 되어 취뽀를 하게 되었다❗&amp;nbsp;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;challenge&quot; data-emoticon-name=&quot;005&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/challenge/large/005.png&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/challenge/large/005.png&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;h2 id=&quot;일본-여행-221--224&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; &lt;/h2&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;일본 여행(4/8 ~ 4/11)&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byvDCt/btsMjQcGxht/6eVAppdpYPtgwe9X4KSCvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byvDCt/btsMjQcGxht/6eVAppdpYPtgwe9X4KSCvK/img.png&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byvDCt/btsMjQcGxht/6eVAppdpYPtgwe9X4KSCvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyvDCt%2FbtsMjQcGxht%2F6eVAppdpYPtgwe9X4KSCvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;811&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBYw2h/btsMkJ4S5d9/xpSKFv4FYQKioef4k23N81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBYw2h/btsMkJ4S5d9/xpSKFv4FYQKioef4k23N81/img.png&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBYw2h/btsMkJ4S5d9/xpSKFv4FYQKioef4k23N81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBYw2h%2FbtsMkJ4S5d9%2FxpSKFv4FYQKioef4k23N81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;811&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sg40N/btsMlkwRiSz/8kqSq99lAQz0Y08GM9RPC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sg40N/btsMlkwRiSz/8kqSq99lAQz0Y08GM9RPC1/img.png&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.5581%;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sg40N/btsMlkwRiSz/8kqSq99lAQz0Y08GM9RPC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsg40N%2FbtsMlkwRiSz%2F8kqSq99lAQz0Y08GM9RPC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;811&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이번엔 일본 여행을 갔다..^^ 해외 여행간지 한달 밖에 안됐는데 충동적으로 가버린 일본 여행..ㅋㅎㅎㅎㅋ&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;시작은 일본가서 벚꽃을 보고 싶다는 생각과.. 지금 아니면 여행을 많이 못가본다는 생각에 충동적으로 오사카 여행을 결심했다 ㅎㅎ&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;오사카 말고도 교토도 당일치기로 놀러갔다오고 유니버셜 스튜디오도 가보고 날마다 만보 넘게 걸어다녔다^^ㅎ 힘들었지만 일본에서 벚꽃 보고 싶었던 버킷리스트도 이루었고 보고싶었던 마리오도 봐서 만족스러웠다 ㅎ.. 다만 유니버셜 스튜디오는 놀이기구를 안타니까 볼것만 보면 진짜 오전만에 다 끝나는 일정인 것 같다,,&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;오랜만에 가보는 일본 여행에서 맛있는 것도 먹고 전철에서 일본 풍경도 보고 마음이 되게 편안해진것 같았다. 다음에 기회가 되면 2월에 삿포로 눈꽃 축제 버킷리스트도 이뤄보고 싶다.  &lt;/p&gt;
&lt;h2 id=&quot;일본-여행-221--224&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; &lt;/h2&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;7월 베트남 (7/2 ~ 7/10)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 년도는 유독 해외 여행을 몰아서 다 간 기분이었다ㅎㅎ,, 입사 전에 해외 여행을 한번 더 가기로 했고 여름에 유일하게 우기가 아닌 베트남 나트랑을 다녀왔다(우기가 아니라했는데 하늘이 맑은적이 별로 없었다...)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EQbZr/btsMjMuQ4SF/eqBOKKVnfREsXH6Hni5kn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EQbZr/btsMjMuQ4SF/eqBOKKVnfREsXH6Hni5kn0/img.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;811&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EQbZr/btsMjMuQ4SF/eqBOKKVnfREsXH6Hni5kn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEQbZr%2FbtsMjMuQ4SF%2FeqBOKKVnfREsXH6Hni5kn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;811&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lRaxH/btsMjhPB4bL/rQu8UwxDoyaWPXGp0yhRKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lRaxH/btsMjhPB4bL/rQu8UwxDoyaWPXGp0yhRKk/img.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;811&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lRaxH/btsMjhPB4bL/rQu8UwxDoyaWPXGp0yhRKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlRaxH%2FbtsMjhPB4bL%2FrQu8UwxDoyaWPXGp0yhRKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;811&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FlSRP/btsMkCSiKgd/Bs30TggMno9vqS894kKsiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FlSRP/btsMkCSiKgd/Bs30TggMno9vqS894kKsiK/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 29.3508%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;29.7&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FlSRP/btsMkCSiKgd/Bs30TggMno9vqS894kKsiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFlSRP%2FbtsMkCSiKgd%2FBs30TggMno9vqS894kKsiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSoKL3/btsMjEqjEWS/ZEPXftNAAbXWeOICwew9Zk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSoKL3/btsMjEqjEWS/ZEPXftNAAbXWeOICwew9Zk/img.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;811&quot; data-is-animation=&quot;false&quot; style=&quot;width: 69.4864%; margin-top: 10px;&quot; data-widthpercent=&quot;70.3&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSoKL3/btsMjEqjEWS/ZEPXftNAAbXWeOICwew9Zk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSoKL3%2FbtsMjEqjEWS%2FZEPXftNAAbXWeOICwew9Zk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;811&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 꽤 길게 다녀왔고 나트랑에서 유명한 음식점은 거의 다 돌아본 것 같았다. 한국인들이 많이 놀러와서 그런지 한국인 입맛에 맞는 음식이 되게 많았고(코타키나발루는 먹을게 없어서 힘들었지만..) 그만큼 사람도 많아서 섬 투어 갔을 때 계속 사람에 치여서 헤엄치기 버거웠다^^..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1920&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xeIoJ/btsMjHfWwap/z36XaPpzDUkAaTWaDtkyok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xeIoJ/btsMjHfWwap/z36XaPpzDUkAaTWaDtkyok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xeIoJ/btsMjHfWwap/z36XaPpzDUkAaTWaDtkyok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxeIoJ%2FbtsMjHfWwap%2Fz36XaPpzDUkAaTWaDtkyok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;579&quot; height=&quot;1029&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1920&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정말 여러 가지 음식을 먹었지만 이 중 생각나는건 불닭 먹었던거라(젓가락이 없어서 칫솔로 먹은...) 삼겹살 조림?인것 같다 ㅎㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 우리는 미아 리조트를 갔지만 나트랑 간다면 비싼 리조트를 하루 정도 가보는걸 추천한다! 미아도 거의 개인 수영장 있는 방을 잡아서 비싸긴 했지만 물론 좋았다^^ㅎ&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 id=&quot;일본-여행-221--224&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;입사&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;드디어 기다렸던 입사 날이 되었다 ㅎㅎ 막상 입사 날이 다가오니 설레기도 하고 잘할 수 있을지 걱정도 많이 됐다. 지금와서는 많이 바쁘긴 하지만 잘 다니고 있고 팀분들도 너무 잘해주셔서 만족하며 다니고 있다. 또한, 회사의 문화와 업무에 익숙해지면서 내가 다른 회사를 잘 다닐 수 있는지 걱정이 된다 ㅎㅎ.. 나중을 위해서 영어 회화도 계속하면서 공부하고 있지만 여전히 나에게 언어는 어려운 것 같다..(한국어도..) 그래도 나의 커리어적인 성장을 위해 최대한 많은 걸 시도해보려고 하고 많은 걸 공부하려고 노력하고 있다..! 요새는 넥스트 커리어에 대해서도 조금씩 고민을 하고 있고 나중에 커피챗도 많이 해보면서 이런 고민을 좀 해결해나가고 싶다는 생각을 하고 있다.&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;9월 제주도(9/19~ 9/23)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 제주도 여행도 충동적으로 추석때 결심하게 된 여행이었다. 연휴도 길고 해서 남은 휴가도 쓸겸 가까운 제주도로 여행을 다녀왔다! 도착하자마자 진짜 무슨 비가 하늘에 구멍 뚫린듯이 엄청 쏟아졌고.. 와이퍼를 최대 속도로 해도 앞이 잘 안보일 정도였다,, 다행히 첫날에 비가 많이 온거에 비해 둘째날은 많은 비가 내리진 않았고 근처 공유 오피스로 가서 할일을 한 뒤 바다 구경을 했다 ㅎ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8n8HE/btsMk3B6Qc0/rkPhBketTGV0jYo0SAF2U1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8n8HE/btsMk3B6Qc0/rkPhBketTGV0jYo0SAF2U1/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; width=&quot;402&quot; height=&quot;536&quot; style=&quot;width: 25.855%; margin-right: 10px;&quot; data-widthpercent=&quot;26.47&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8n8HE/btsMk3B6Qc0/rkPhBketTGV0jYo0SAF2U1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8n8HE%2FbtsMk3B6Qc0%2FrkPhBketTGV0jYo0SAF2U1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x7Y1b/btsMjrxMZ15/bj2z9d62oKVPP5H0a1Na71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x7Y1b/btsMjrxMZ15/bj2z9d62oKVPP5H0a1Na71/img.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot; data-is-animation=&quot;false&quot; style=&quot;width: 45.9644%; margin-right: 10px;&quot; data-widthpercent=&quot;47.06&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x7Y1b/btsMjrxMZ15/bj2z9d62oKVPP5H0a1Na71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx7Y1b%2FbtsMjrxMZ15%2Fbj2z9d62oKVPP5H0a1Na71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJ9Cnc/btsMj7Fe5Zq/JsClSxqWyelfhinsJc8RG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJ9Cnc/btsMj7Fe5Zq/JsClSxqWyelfhinsJc8RG0/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 25.855%;&quot; data-widthpercent=&quot;26.47&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJ9Cnc/btsMj7Fe5Zq/JsClSxqWyelfhinsJc8RG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJ9Cnc%2FbtsMj7Fe5Zq%2FJsClSxqWyelfhinsJc8RG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음날에도 계속 날씨가 안좋아서 계획했던 일정은 전부 다 취소하고 가고 싶었던 우도도 못가게 되었다ㅠㅠ 아쉬운 맘을 달래고자 맛집을 찾아다녔고 우연히 찾아서 간 흑돼지 집이었는데 숯향과 육즙이 진짜 장난이 아니었다.. 지금도 여기만큼 맛있는 집은 못찾은 것 같다.. 그리고 고깃집 근처에 마침 우무가 있어서 후식으로 우무도 먹었다. ㅎㅎ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ctSba8/btsMj6l1ODu/kGLMLpwvidJE0SSAV8oFX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ctSba8/btsMj6l1ODu/kGLMLpwvidJE0SSAV8oFX0/img.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot; data-is-animation=&quot;false&quot; style=&quot;width: 45.9644%; margin-right: 10px;&quot; data-widthpercent=&quot;47.06&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ctSba8/btsMj6l1ODu/kGLMLpwvidJE0SSAV8oFX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctSba8%2FbtsMj6l1ODu%2FkGLMLpwvidJE0SSAV8oFX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ypFWj/btsMjCeUVmn/rHCkBK3QHmTjOjzELDHdW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ypFWj/btsMjCeUVmn/rHCkBK3QHmTjOjzELDHdW1/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 25.855%; margin-right: 10px;&quot; data-widthpercent=&quot;26.47&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ypFWj/btsMjCeUVmn/rHCkBK3QHmTjOjzELDHdW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FypFWj%2FbtsMjCeUVmn%2FrHCkBK3QHmTjOjzELDHdW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caVyIJ/btsMliy1sOd/P6os0tl0NGIm06imTG5Sw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caVyIJ/btsMliy1sOd/P6os0tl0NGIm06imTG5Sw0/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 25.855%;&quot; data-widthpercent=&quot;26.47&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caVyIJ/btsMliy1sOd/P6os0tl0NGIm06imTG5Sw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaVyIJ%2FbtsMliy1sOd%2FP6os0tl0NGIm06imTG5Sw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음날은 그나마 날씨가 좀 괜찮아서 폭포를 보러갔고, 근처에 오설록이 있어서 녹차밭도 구경했다^^ㅎ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LJqzn/btsMlnAjGWM/JKwljfVyN8kThDkK7zzPC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LJqzn/btsMlnAjGWM/JKwljfVyN8kThDkK7zzPC0/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 35.5814%; margin-right: 10px;&quot; data-widthpercent=&quot;36&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LJqzn/btsMlnAjGWM/JKwljfVyN8kThDkK7zzPC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLJqzn%2FbtsMlnAjGWM%2FJKwljfVyN8kThDkK7zzPC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mjTzx/btsMk1K2oZp/efQZ6bTkQTUBjPRgcaRKX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mjTzx/btsMk1K2oZp/efQZ6bTkQTUBjPRgcaRKX0/img.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot; data-is-animation=&quot;false&quot; style=&quot;width: 63.2558%;&quot; data-widthpercent=&quot;64&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mjTzx/btsMk1K2oZp/efQZ6bTkQTUBjPRgcaRKX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmjTzx%2FbtsMk1K2oZp%2FefQZ6bTkQTUBjPRgcaRKX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막 돌아가는 날에는 날씨가 맑아지고 햇빛도 잘들어서 너무 억울했다.. 여행 내내 날씨가 진짜 안좋았는데 돌아가는 날이 되어서 날씨가 맑아지니 너무 서글펐다ㅠㅠ..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpvNYi/btsMkybxrHa/w4YxSv2opf0h8akAiUGK8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpvNYi/btsMkybxrHa/w4YxSv2opf0h8akAiUGK8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpvNYi/btsMkybxrHa/w4YxSv2opf0h8akAiUGK8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpvNYi%2FbtsMkybxrHa%2Fw4YxSv2opf0h8akAiUGK8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 id=&quot;일본-여행-221--224&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;강원도 여행(11/10 ~ 11/12)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번년도 마지막 여행인 강원도 여행! 이번 년도에는 진짜 여행을 많이 간 것 같다.. 여행에만 쓴 돈을 확인해보니 거의 500만원 유럽 한달 살기 간 수준이었다.. 올해 초에 파트타임 하면서 벌었던 돈은 다 여행에 써버린 기분이었다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 날에는 가을이라 단풍을 볼 수 있을줄 알고 발왕산 케이블카가 마지막으로 운행하고 안한다해서 갔는데 진짜 아무것도 없는 나무만 있어서 너무 실망스러웠다.. 그래도 풍경은 멋있었다..ㅠ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YfRd8/btsMjDya59X/EHvAsagkD3SNZmHzMBVt91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YfRd8/btsMjDya59X/EHvAsagkD3SNZmHzMBVt91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YfRd8/btsMjDya59X/EHvAsagkD3SNZmHzMBVt91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYfRd8%2FbtsMjDya59X%2FEHvAsagkD3SNZmHzMBVt91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;452&quot; height=&quot;339&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;케이블카 갔다가 바로 강릉으로 넘어가서 시장도 구경하구 밤에는 바닷가 가서 불꽃놀이도 했다 ㅎㅎ^ 다음날에는 날씨가 너무 좋아서 바닷가 앞 카페 루프탑 가서 멍때리기를 시전했다..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2JkFX/btsMjqS5n8T/gpeb1SLYEfvixgUSPfKqMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2JkFX/btsMjqS5n8T/gpeb1SLYEfvixgUSPfKqMk/img.png&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 38.0143%; margin-right: 10px;&quot; data-widthpercent=&quot;38.46&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2JkFX/btsMjqS5n8T/gpeb1SLYEfvixgUSPfKqMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2JkFX%2FbtsMjqS5n8T%2Fgpeb1SLYEfvixgUSPfKqMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;675&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2H9Mq/btsMiZ9qEIW/PmAIT8sxhUC3NEX7nHkJk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2H9Mq/btsMiZ9qEIW/PmAIT8sxhUC3NEX7nHkJk0/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 60.8229%;&quot; data-widthpercent=&quot;61.54&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2H9Mq/btsMiZ9qEIW/PmAIT8sxhUC3NEX7nHkJk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2H9Mq%2FbtsMiZ9qEIW%2FPmAIT8sxhUC3NEX7nHkJk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오전에는 바다 구경을 하다가 오후에는 팀분께 추천받은 글램핑을 갔는데 되게 산 속 깊숙이 있었고 비용도 되게 비쌌다..ㅎㅎ,,,ㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 수영장도 따로 있고 글램핑도 너무 잘되어 있어서 만족스러웠고 다만 아쉬운건 계곡 근처라 그런지 날파리가 진짜 많았다.. 그래서 다들 고기를 일찍 먹고 들어가시는 분들이 많았던 것 같다,, 우리는 오로라 가루 사온게 아까워서 조금 더 있다가 들어갔다 ㅎ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pw5b4/btsMkWXiuTi/CelZCJkbKIg0V77AbhYG30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pw5b4/btsMkWXiuTi/CelZCJkbKIg0V77AbhYG30/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pw5b4/btsMkWXiuTi/CelZCJkbKIg0V77AbhYG30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpw5b4%2FbtsMkWXiuTi%2FCelZCJkbKIg0V77AbhYG30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dimotc/btsMj6l13ye/dxhnZT24p0WyWif5DXeffK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dimotc/btsMj6l13ye/dxhnZT24p0WyWif5DXeffK/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; width=&quot;515&quot; height=&quot;687&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dimotc/btsMj6l13ye/dxhnZT24p0WyWif5DXeffK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdimotc%2FbtsMj6l13ye%2FdxhnZT24p0WyWif5DXeffK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0Ddy5/btsMliy1HBt/PHjkpXYFNPJhv6Z7FxQQOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0Ddy5/btsMliy1HBt/PHjkpXYFNPJhv6Z7FxQQOk/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; width=&quot;481&quot; height=&quot;641&quot; style=&quot;width: 32.5581%;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0Ddy5/btsMliy1HBt/PHjkpXYFNPJhv6Z7FxQQOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0Ddy5%2FbtsMliy1HBt%2FPHjkpXYFNPJhv6Z7FxQQOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글램핑 다음날에는 집가는 길에 횡성에 가서 송어를 먹었는데 사장님이 송어에 대한 자부심도 되게 강하셨고 맛있게 먹는 방법도 알려주셔서 너무 좋았다 ! 특히 송어 튀김은 나에겐 너무 담백하고 맛있었고 근처에 루지 타는 곳도 있어서 되게 알차게 놀 수 있었던 것 같다! 지금 생각해보면 체력이 장난 아니었던 것 같은데 루지 타고 연어집 사장님께 호수 산책을 추천 받아서 갔는데 사람도 없고 되게 걷기 좋아서 너무 만족스러웠다 !&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cWOQg7/btsMkLaznyv/TgSplI0xSObQ6P32EhJ7JK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cWOQg7/btsMkLaznyv/TgSplI0xSObQ6P32EhJ7JK/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cWOQg7/btsMkLaznyv/TgSplI0xSObQ6P32EhJ7JK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcWOQg7%2FbtsMkLaznyv%2FTgSplI0xSObQ6P32EhJ7JK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYo2X7/btsMkWCZSSJ/FMtzeUNRaxbmct5GUxfgBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYo2X7/btsMkWCZSSJ/FMtzeUNRaxbmct5GUxfgBK/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYo2X7/btsMkWCZSSJ/FMtzeUNRaxbmct5GUxfgBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYo2X7%2FbtsMkWCZSSJ%2FFMtzeUNRaxbmct5GUxfgBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;마치며..&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회고를 작성해보니.. 작년에는 진짜 여행만 다녔던 것 같고 기술 행사나 이런 참여를 좀 덜 했던 것 같다..ㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;올해에는 여행도 좋지만 나의 커리어에 대해서 고민도 해보고 앞으로의 나의 미래에 대해서 좀 더 고민을 해보는 게 좋을 것 같다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 올해에는 말을 좀 잘하는 사람이 되고 싶고 영어도 유창하게 하는 사람이 되고 싶다! 개인적으로 기술 공부보다 어려운게 말을 잘하는 것과 영어를 유창하게 잘하는 것인 것 같다.. &amp;zwj;  그리고 요새 운동을 안해서 롱런을 위해 체력 관리도 열심히 시작해야겠다는 생각이 들었다. (필라테스 시작할 예정이다!!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;올해는 진짜 영어도 열심히 하고 운동도 열심히 하고, 공부도 열심히 해서 더 나은 사람이 되어보도록 노력하겠습니다!! :)&lt;/p&gt;</description>
      <category>일상</category>
      <author>@Eeap</author>
      <guid isPermaLink="true">https://suminn0.tistory.com/171</guid>
      <comments>https://suminn0.tistory.com/171#entry171comment</comments>
      <pubDate>Sat, 15 Feb 2025 18:27:27 +0900</pubDate>
    </item>
    <item>
      <title>SageMaker Unified Studio (preview) Introduction - (1)</title>
      <link>https://suminn0.tistory.com/170</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 AWS reinvent 2024에서는 많은 AI/ML 서비스 기능들이 추가되었다. 그중 오늘은 2024년 12월에 공개된 SageMaker Unified Studio에 대해 소개해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=5ZN-90fi3II&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=5ZN-90fi3II&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=5ZN-90fi3II&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/btwGhn/hyX7Rqj5Tn/f8MnTviw8JpGNdwciSHbr1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/8OWy4/hyX70UXX3r/pOqhdrq4BvJWzAL8UKB4wK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;AWS re:Invent 2024-Next-generation Amazon SageMaker: The center for data, analytics &amp;amp; AI(ANT206-NEW)&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/5ZN-90fi3II&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;SageMaker Unified Studio란?&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에 aws reinvent 2024에서는 분석 및 AI를 위한 차세대 통합 플랫폼으로 SageMaker Unified Studio를 공개하였다. 기존에 있던 SageMaker는 SageMaker AI라는 이름으로 변경되었고 기존에 사용하던 SageMaker 기능은 SageMaker AI 서비스에서 이용할 수 있게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SageMaker Unified Studio는 아직 preview로 공개되었지만 하나의 웹 인터페이스로 AI/ML에 필요한 데이터 분석, 정제, 학습 등 다양한 작업을 할 수 있는 것으로 기대되고 있다. 또한, Amazon Q도 내재되어 있어 더욱더 편리하게 하나의 웹 인터페이스로 기존의 Glue, EMR, Athena 등의 데이터 작업과 SageMaker, Bedrock 등의 AI/ML 작업을 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 웹 인터페이스를 이용하기 위해서는 관리자는 SageMaker Unified Studio 도메인을 생성하고 IAM Identity Center과 IAM 설정 등의 작업이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SageMaker Unified Studio 웹 인터페이스는 IAM User나 SSO 로그인을 통해서 이용할 수 있으며 관리자는 IAM Identity Center에 유저 정보를 등록하는 추가 작업이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/getting-started-access-the-portal.html#set-up-SSO-IDC&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/getting-started-access-the-portal.html#set-up-SSO-IDC&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1738376581918&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Access Amazon SageMaker Unified Studio - Amazon SageMaker Unified Studio&quot; data-og-description=&quot;You only need one method to sign in to Amazon SageMaker Unified Studio. If you have already configured an AWS account or SSO credentials that work with the domain URL you received from your admin, you can skip the steps in this section.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/getting-started-access-the-portal.html#set-up-SSO-IDC&quot; data-og-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/getting-started-access-the-portal.html#set-up-SSO-IDC&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/getting-started-access-the-portal.html#set-up-SSO-IDC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/getting-started-access-the-portal.html#set-up-SSO-IDC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Access Amazon SageMaker Unified Studio - Amazon SageMaker Unified Studio&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;You only need one method to sign in to Amazon SageMaker Unified Studio. If you have already configured an AWS account or SSO credentials that work with the domain URL you received from your admin, you can skip the steps in this section.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/user-management.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/user-management.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1738498511271&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Managing users in Amazon SageMaker Unified Studio - Amazon SageMaker Unified Studio&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/user-management.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/user-management.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/user-management.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/user-management.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Managing users in Amazon SageMaker Unified Studio - Amazon SageMaker Unified Studio&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;Domain units&lt;/u&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;SageMaker unified studio를 시작할 때 기본적으로 domain이 1개 생성되게 되지만, 팀이 업무별로 세분화되어 있고 팀간의 리소스 제한이 필요한 경우 domain units을 사용하여 기본적으로 생성된 domain 안에 child 도메인을 생성하여 별도로 분리할 수 있다. domain units 생성은 웹 인터페이스 상단의 Govern &amp;gt; domain units을 클릭한 후 해당 페이지에서 domain units을 생성할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;추가로 생성한 domain units 이름이나 기존의 domain units 이름을 클릭해서 해당 domain 내에 있는 유저들에 대한 권한을 domain units 단위로 관리할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-users-in-domain-unit.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-users-in-domain-unit.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1738498543949&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Assign authorization policies to users and groups within an Amazon SageMaker Unified Studio domain unit - Amazon SageMaker Unifi&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-users-in-domain-unit.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-users-in-domain-unit.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-users-in-domain-unit.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-users-in-domain-unit.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Assign authorization policies to users and groups within an Amazon SageMaker Unified Studio domain unit - Amazon SageMaker Unifi&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-projects-in-domain-unit.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-projects-in-domain-unit.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1738498546183&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Assign authorization policies to projects within an Amazon SageMaker Unified Studio domain unit - Amazon SageMaker Unified Studi&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-projects-in-domain-unit.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-projects-in-domain-unit.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-projects-in-domain-unit.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/assign-authorization-policies-to-projects-in-domain-unit.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Assign authorization policies to projects within an Amazon SageMaker Unified Studio domain unit - Amazon SageMaker Unified Studi&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;Project&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SageMaker unified studio 에서는 생성한 domain 내 project 단위로 리소스 및 업무 단위를 분리할 수 있다. 또한, project에 멤버를 추가하거나 삭제하여 project 내의 리소스에 접근할 수 있는 권한을 관리할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 인터페이스 내에서 project를 만들 때는 project profile을 이용해서 만들게 되고, 여기서 project profile은 사용할 aws 리소스와 도구들이 미리 정의된 일종의 template라고 볼 수 있다. 현재 해당 서비스에서 제공하고 있는 project profile은 데이터 분석 및 AI-ML 모델 개발, SQL 분석, 생성형 AI 애플리케이션 개발이 있다. 추가로 해당 profile들이 웹 인터페이스에서 보이지 않는 경우 AWS 콘솔에서 생성한 도메인에 들어가 Project profiles에 있는 항목을 활성화 해주는 작업이 필요하며, 여기서 필요한 경우 추가로 커스텀하여 profile을 생성할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/project-profiles.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/project-profiles.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1738497844855&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Project profiles in Amazon SageMaker Unified Studio - Amazon SageMaker Unified Studio&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/project-profiles.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/project-profiles.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/project-profiles.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/sagemaker-unified-studio/latest/adminguide/project-profiles.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Project profiles in Amazon SageMaker Unified Studio - Amazon SageMaker Unified Studio&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 간략하게 SageMaker unified studio와 그 안에서 사용되는 domain units과 projects에 대해서 알아보았다. 다음에는 현재 제공되고 있는 세 가지의 project profile에 대해 알아보고자 한다.&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>sagemaker unified studio</category>
      <author>@Eeap</author>
      <guid isPermaLink="true">https://suminn0.tistory.com/170</guid>
      <comments>https://suminn0.tistory.com/170#entry170comment</comments>
      <pubDate>Sun, 2 Feb 2025 21:21:57 +0900</pubDate>
    </item>
    <item>
      <title>Bedrock Agent API</title>
      <link>https://suminn0.tistory.com/169</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 이전 글에 이어 Bedrock API에 대해 작성하려고 한다. 이전 글에 소개했던 bedrock API, bedrock-rutime API 이외에도 bedrock-agent API, bedrock-agent-runtime API도 존재한다. 오늘은 나머지 두 가지 API에 대해 알아보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1735974885890&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Amazon Bedrock API Reference - Amazon Bedrock&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Amazon Bedrock API Reference - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;b&gt;Bedrock Agent API&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bedrock Agent Endpoint는 말 그대로 Bedrock에 있는 Agent를 만들고 관리하거나 Knowledge Bases(RAG이라고도 불림), prompt, prompt flow 관리 등 다양한 작업을 하는 데 사용이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주로 Knowledge Base를 생성하거나 Agent를 만들고 관리하기 위해 해당 API를 사용하며 Knowledge Base에 쓰이는 Data source를 만들고 데이터를 Knowledge Base에 동기화하는 작업 등에도 주로 쓰이게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html&lt;/a&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;Bedrock Agent Runtime API&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bedrock Agent Runtime Endpoint는 이전에 Bedrock Agent API로 만든 Knowledge Base나 Agent를 실행하기 위해 주로 쓰이는 API이며 이외에 prompt와 관련된 작업도 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock_Runtime.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock_Runtime.html&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Knowledge Base에는 동기화한 데이터 기준으로 조회하는 Retrieve API가 있고 동기화한 데이터와 Foundation Model을 이용하여 질문을 할 수 있는 RetrieveAndGenerate API가 있다. RetrieveAndGenerate 같은 경우 FM 모델도 사용하기 때문에 일반적으로 Retrieve API를 사용했을 떄보단 추가적인 비용이 발생할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-test.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-test.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1735978471659&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Test your knowledge base with queries and responses - Amazon Bedrock&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-test.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-test.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-test.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-test.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Test your knowledge base with queries and responses - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 간단하게 Bedrock Agent를 만들고 호출하는 예제를 만들어보고자 한다. 이때 해당 Agent에는 람다를 이용한 Action Group이나 Knowledge Base를 사용하지 않고 단순히 python code 테스터 용도로 code interpreter 기능을 사용해서 agent를 만들고자 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1735977362328&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import boto3

bedrock = boto3.client('bedrcok',region_name='us-east-1')
bedrock_agent = boto3.client('bedrock-agent',region_name='us-east-1')
bedrock_agent_runtime = boto3.client('bedrock-agent',region_name='us-east-1')

# List Anthropic model lists for finding model arn
bedrock.list_foundation_models(byProvider='Anthropic',byOutputModality='TEXT')

# Set variables
agent_name = &quot;python-interpreter&quot;
instruction = &quot;you are a python code tester. When given python code, you should execute it and check errors and return the result of testing.
model_arn = &quot;&amp;lt;model-arn&amp;gt;&quot; # anthropic.claude-3-sonnet-20240229-v1:0

# create Agent
res = bedrock_agent.create_agent(
	agentName=agent_name,
    instruction=instruction,
    foundationModel=model_arn,
    agentResourceRoleArn=&quot;&amp;lt;service-role-arn&amp;gt;&quot;
)

agent_id = res['agent']['agentId']
print(f&quot;Created agent with Id: {agent_id}&quot;)

# create code interpreter action group
bedrock_agent.create_agent_action_group(
	agentId=agent_id,
    agentVersion=&quot;DRAFT&quot;
    actionGroupName=&quot;CodeInterpreterAction&quot;
    parentActionGroupSignature=&quot;AMAZON.CodeInterpreter&quot;,
    actionGroupState=&quot;ENABLED&quot;
)

# create a draft version
bedrock_agent.prepare_agent(agentId=agent_id)

# create agent alias
bedrock_agent.create_agent_alias(
	agentAliasName = &quot;agent-alias-v1&quot;,
    agentId=agent_id
)

agent_alias = response['agentAlias']['agentAliasId']&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 코드를 통해 Bedrock Agent를 만들고, code interpreter 역할을 할 수 있도록 하기 위해 CreateAgentActionGroup API를 사용하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html#bedrock-agent_CreateAgentActionGroup-request-parentActionGroupSignature&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html#bedrock-agent_CreateAgentActionGroup-request-parentActionGroupSignature&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1735977672957&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;CreateAgentActionGroup - Amazon Bedrock&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html#bedrock-agent_CreateAgentActionGroup-request-parentActionGroupSignature&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html#bedrock-agent_CreateAgentActionGroup-request-parentActionGroupSignature&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html#bedrock-agent_CreateAgentActionGroup-request-parentActionGroupSignature&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html#bedrock-agent_CreateAgentActionGroup-request-parentActionGroupSignature&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;CreateAgentActionGroup - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스팅을 위해 PrepareAgent API를 사용하였으면 Agent를 사용하기 위해서는 Alias도 생성이 필요하여 CreateAgentAlias API를 사용하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_PrepareAgent.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_PrepareAgent.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1735977829806&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;PrepareAgent - Amazon Bedrock&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_PrepareAgent.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_PrepareAgent.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_PrepareAgent.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_PrepareAgent.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;PrepareAgent - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_CreateAgentAlias.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_CreateAgentAlias.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1735977835850&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;CreateAgentAlias - Amazon Bedrock&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_CreateAgentAlias.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_CreateAgentAlias.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_CreateAgentAlias.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/API_agent_CreateAgentAlias.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;CreateAgentAlias - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/agents-deploy.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/agents-deploy.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1735978413716&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Deploy and integrate an Amazon Bedrock agent into your application - Amazon Bedrock&quot; data-og-description=&quot;Deploy and integrate an Amazon Bedrock agent into your application When you first create an Amazon Bedrock agent, you have a working draft version (DRAFT) and a test alias (TSTALIASID) that points to the working draft version. When you make changes to your&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/agents-deploy.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/agents-deploy.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/agents-deploy.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/agents-deploy.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Deploy and integrate an Amazon Bedrock agent into your application - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Deploy and integrate an Amazon Bedrock agent into your application When you first create an Amazon Bedrock agent, you have a working draft version (DRAFT) and a test alias (TSTALIASID) that points to the working draft version. When you make changes to your&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 Agent를 사용하기 위한 준비는 끝났으니 실제로 간단한 파이썬 코드를 이용해서 테스트를 해보고자 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1735978176539&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def test(code):
	res = bedrock_agent_runtime.invoke_agent(
    	agentId=agent_id,
        agentAliasId=agent_alias,
        sessionId=&quot;test-session&quot;,
        inputText=f&quot;please execute this python code and test the code error, finally return the results of testing : {code}&quot;
    )
    completion=&quot;&quot;
    for event in res.get(&quot;completion&quot;):
    	chunk = event[&quot;chunk&quot;]
        completion = completion + chunk[&quot;bytes&quot;].decode()
    return completion
    
test_code=&quot;&quot;&quot;
def fib(n):
	f = [0,1]
    for i in range(2,n):
    	f.append(f[i-1]+f[i-2])
    return f
n = 10
print(fib(n))
&quot;&quot;&quot;

result = test(test_code)
print(&quot;Result: &quot;, result)

# delete Agent after testing
bedrock_agent.delete_agent(agentId=agent_id, skipResourceInUseCheck=True)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 이렇게 간단하게 Agent를 생성하는 예제를 알아보았지만 Bedrock Agent API를 활용해서 Knowledge Base나 Data source 등 다양한 작업들을 할 수 있다. 다만, Knowledge Base를 생성할 때 AWS 콘솔을 이용하면 손쉽게 Vection Store의 경우 OpenSearch Serverless를 quick start로 생성할 수 있지만 코드로 생성할 경우엔 OpenSearch Serverless Collection도 다 하나씩 만들어주고 넣어야하며 약간 더 복잡한 작업을 필요로 한다.&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>Agent</category>
      <category>bedrock</category>
      <category>bedrock agent</category>
      <category>code interpreter</category>
      <author>@Eeap</author>
      <guid isPermaLink="true">https://suminn0.tistory.com/169</guid>
      <comments>https://suminn0.tistory.com/169#entry169comment</comments>
      <pubDate>Sat, 4 Jan 2025 17:15:16 +0900</pubDate>
    </item>
    <item>
      <title>Basic Bedrock API</title>
      <link>https://suminn0.tistory.com/168</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 Amazon Bedrock의 API에 대해 살펴보고 실제로 어떻게 활용하는지 알아보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1734845193726&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Amazon Bedrock API Reference - Amazon Bedrock&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/APIReference/welcome.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Amazon Bedrock API Reference - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bedrock 서비스에서는 현재 총 네 종류의 Service Endpoint를 제공해주고 있다. 오늘은 각각의 Endpoint 들에 대해 간단히 살펴보고 실제로 많이 쓰는 예제 코드를 작성해보고자 한다. 예제 코드의 경우 CLI를 사용하는 방법도 있지만 오늘은 Python SDK인 boto3를 이용해서 작성해보고자 한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;u&gt;&lt;b&gt;Bedrock API&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 Endpoint Actions에는 모델을 배포하고 관리하며, 훈련 작업을 할 수 있는 다양한 작업들을 포함하고 있다. AWS console에서 CloudTrail을 확인해보면 우리는 Bedrock에서 모델을 Custom하는 Job을 실행시키거나 학습시키는 등의 작업을 할때 주로 해당 Endpoint에 해당하는 Actions들을 호출하는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 해당 리전에 포함되는 Foundation Model을 호출해 어떻게 활용하는지 알아보자. ListFoundationModels API는 호출에 필요한 다양한 파라미터를 포함하고 있으며 아래 코드를 통해서는 us-east-1 버지니아 리전에 포함된 Anthropic 제공자로 공급이 되는 Foundation Model을 확인할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1734846159043&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import boto3

# Bedrock client
bedrock = boto3.client('bedrock',region_name=&quot;us-east-1&quot;,)

bedrock.list_foundation_models(byProvider=&quot;Anthropic&quot;,byOutputModality=&quot;TEXT&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://boto3.amazonaws.com/v1/documentation/api/1.35.6/reference/services/bedrock/client/list_foundation_models.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://boto3.amazonaws.com/v1/documentation/api/1.35.6/reference/services/bedrock/client/list_foundation_models.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1734846302520&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;list_foundation_models - Boto3 1.35.6 documentation&quot; data-og-description=&quot;Previous list_evaluation_jobs&quot; data-og-host=&quot;boto3.amazonaws.com&quot; data-og-source-url=&quot;https://boto3.amazonaws.com/v1/documentation/api/1.35.6/reference/services/bedrock/client/list_foundation_models.html&quot; data-og-url=&quot;https://boto3.amazonaws.com/v1/documentation/api/1.35.6/reference/services/bedrock/client/list_foundation_models.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://boto3.amazonaws.com/v1/documentation/api/1.35.6/reference/services/bedrock/client/list_foundation_models.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://boto3.amazonaws.com/v1/documentation/api/1.35.6/reference/services/bedrock/client/list_foundation_models.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;list_foundation_models - Boto3 1.35.6 documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Previous list_evaluation_jobs&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;boto3.amazonaws.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;u&gt;&lt;b&gt;Bedrock Runtime API&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 Bedrock Runtime Endpoint에 대해 알아보자. 이전 Bedrock API가 많은 Actions들을 포함했다면 Bedrock Runtime API에는 많은 Actions들이 존재하지 않으며 이름 그대로 주로 Bedrock 모델을 호출하거나 그런 용도의 API들이 포함되어 있다. 주로 우리는 모델을 호출하기 위해 InvokeModel, Converse API를 사용하게 된다. 두 API의 차이는 InvokeModel은 단일 프롬프트를 통해 원하는 추론 결과를 얻고자 할때 주로 사용하게 되며 Converse API는 2024년 새로 추가된 API로 InvokeModel이 각각의 모델 공급자에 맞게 Inference 파라미터를 수정했다면 Converse API는 하나의 코드 작성으로 여러 모델을 사용할 수 있으며 지속적인 대화형 챗봇 구현이 용이하다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/about-aws/whats-new/2024/05/amazon-bedrock-new-converse-api/?source=post_page-----001c341347ca--------------------------------&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws.amazon.com/about-aws/whats-new/2024/05/amazon-bedrock-new-converse-api/?source=post_page-----001c341347ca--------------------------------&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1734848726656&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;Amazon Bedrock의 신규 Converse API 발표 - AWS&quot; data-og-description=&quot;오늘 Amazon Bedrock의 신규 Converse API가 발표되었습니다. Converse API를 사용하는 개발자는 Amazon Bedrock 모델을 일관된 방식으로 호출할 수 있으므로 추론 파라미터 등을 모델별 차이점에 따라 조정하&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/about-aws/whats-new/2024/05/amazon-bedrock-new-converse-api/?source=post_page-----001c341347ca--------------------------------&quot; data-og-url=&quot;https://aws.amazon.com/ko/about-aws/whats-new/item/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cgD1ir/hyXSthFET9/mifnAHFKlkTkEhiQsSmtzK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bqfZ8I/hyXSrxnWDA/uw7F8K4FkelrIYbqbmm6j0/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/about-aws/whats-new/2024/05/amazon-bedrock-new-converse-api/?source=post_page-----001c341347ca--------------------------------&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/about-aws/whats-new/2024/05/amazon-bedrock-new-converse-api/?source=post_page-----001c341347ca--------------------------------&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cgD1ir/hyXSthFET9/mifnAHFKlkTkEhiQsSmtzK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bqfZ8I/hyXSrxnWDA/uw7F8K4FkelrIYbqbmm6j0/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Amazon Bedrock의 신규 Converse API 발표 - AWS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;오늘 Amazon Bedrock의 신규 Converse API가 발표되었습니다. Converse API를 사용하는 개발자는 Amazon Bedrock 모델을 일관된 방식으로 호출할 수 있으므로 추론 파라미터 등을 모델별 차이점에 따라 조정하&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 예제를 통해 어떻게 사용하는지 살펴보자. 먼저, InvokeModel API는 다음과 같이 사용할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1734847643007&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import boto3
import json
brt = boto3.client(service_name='bedrock-runtime')

body = json.dumps({
    &quot;prompt&quot;: &quot;\n\nHuman: what is AWS ? \n\nAssistant:&quot;,
    &quot;max_tokens_to_sample&quot;: 300,
    &quot;temperature&quot;: 0.1,
    &quot;top_p&quot;: 0.9,
})

modelId = 'anthropic.claude-v2'
accept = 'application/json'
contentType = 'application/json'

response = brt.invoke_model(body=body, modelId=modelId, accept=accept, contentType=contentType)

response_body = json.loads(response.get('body').read())

print(response_body.get('completion'))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때, 주의해야 할 점은 앞서 말한 것처럼 각각의 모델마다 Inference 파라미터가 다르기 때문에 모델에 맞는 파라미터를 참고해서 작성해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/model-parameters.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/model-parameters.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1734847730516&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;파운데이션 모델의 추론 요청 파라미터 및 응답 필드 - Amazon Bedrock&quot; data-og-description=&quot;이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/model-parameters.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/model-parameters.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/model-parameters.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/model-parameters.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;파운데이션 모델의 추론 요청 파라미터 및 응답 필드 - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 리전에서 지원되는 모델의 경우 &lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;해당 링크&lt;/a&gt;를 통해 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Converse API는 다음과 같이 사용할 수 있으며 이미지, 문서 등 다양한 type들을 사용할 수 있다. 더 자세한 코드는 &lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-examples.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;해당 링크&lt;/a&gt;에서 확인할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1734848466265&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import logging
import boto3


from botocore.exceptions import ClientError


logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)


def generate_message(bedrock_client,
                     model_id,
                     input_text,
                     input_document):
    # Message to send.

    message = {
        &quot;role&quot;: &quot;user&quot;,
        &quot;content&quot;: [
            {
                &quot;text&quot;: input_text
            },
            {
                &quot;document&quot;: {
                    &quot;name&quot;: &quot;MyDocument&quot;,
                    &quot;format&quot;: &quot;pdf&quot;,
                    &quot;source&quot;: {
                        &quot;bytes&quot;: input_document
                    }
                }
            }
        ]
    }

    messages = [message]

    # Send the message.
    response = bedrock_client.converse(
        modelId=model_id,
        messages=messages
    )

    return response

def pdf_to_bytes(file_path):
    try:
        with open(file_path, 'rb') as file:
            pdf_bytes = file.read()
        return pdf_bytes
    except IOError as e:
        print(f&quot;파일을 읽는 중 오류가 발생했습니다: {e}&quot;)
        return None

def main():
    model_id = &quot;anthropic.claude-3-sonnet-20240229-v1:0&quot;
    input_text = &quot;What's in this document?&quot;
    input_document = pdf_to_bytes(&quot;bedrock.pdf&quot;)
    
    try:
        bedrock_client = boto3.client(service_name=&quot;bedrock-runtime&quot;)
        response = generate_message(
            bedrock_client, model_id, input_text, input_document)

        output_message = response['output']['message']

        print(f&quot;Role: {output_message['role']}&quot;)

        for content in output_message['content']:
            print(f&quot;Text: {content['text']}&quot;)

        token_usage = response['usage']
        print(f&quot;Input tokens:  {token_usage['inputTokens']}&quot;)
        print(f&quot;Output tokens:  {token_usage['outputTokens']}&quot;)
        print(f&quot;Total tokens:  {token_usage['totalTokens']}&quot;)
        print(f&quot;Stop reason: {response['stopReason']}&quot;)
    finally:
        print(&quot;end&quot;)

if __name__ == &quot;__main__&quot;:
    main()&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Converse API를 활용한다면 InvokeModel을 쓸때처럼 각각의 모델 공급자에 맞게 Inference 파라미터를 수정할 필요가  없고 이미지나 문서 첨부 등을 간단하게 프롬프트에 활용할 수 있다. 다만 해당 API도 모든 모델에 지원이 되는 것이 아니기 때문에 해당 문서를 참고하면 좋을 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1734849295361&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Supported models and model features - Amazon Bedrock&quot; data-og-description=&quot;Cohere Command (Text) and AI21 Labs Jurassic-2 (Text) don't support chat with the Converse API. The models can only handle one user message at a time and can't maintain the history of a conversation. You get an error if you attempt to pass more than one me&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Supported models and model features - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Cohere Command (Text) and AI21 Labs Jurassic-2 (Text) don't support chat with the Converse API. The models can only handle one user message at a time and can't maintain the history of a conversation. You get an error if you attempt to pass more than one me&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 이렇게 간단하게 Bedrock API에 대해 알아보았고 다음에는 Knowledge Base를 만들고 호출하는 Bedrock Agent API에 대해 알아보고자 한다.&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>bedrock</category>
      <category>bedrock api</category>
      <category>converse api</category>
      <category>invokemodel api</category>
      <author>@Eeap</author>
      <guid isPermaLink="true">https://suminn0.tistory.com/168</guid>
      <comments>https://suminn0.tistory.com/168#entry168comment</comments>
      <pubDate>Sun, 22 Dec 2024 15:51:31 +0900</pubDate>
    </item>
    <item>
      <title>Amazon Bedrock</title>
      <link>https://suminn0.tistory.com/167</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 AWS에서 많이 홍보하고 있는 Bedrock 서비스에 대해 알아보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/bedrock/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws.amazon.com/ko/bedrock/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731129654528&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;파운데이션 모델(FM)을 사용하여 생성형 AI 애플리케이션을 구축 - Amazon Bedrock - AWS&quot; data-og-description=&quot;Amazon Bedrock은 AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI, Amazon과 같은 주요 AI 회사의 고성능 FM을 쉽게 이용하여 최신의 생성형 AI 혁신을 빠르게 조정하고 활용할 수 있도록 도와줍니다. 선택&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/ko/bedrock/&quot; data-og-url=&quot;https://aws.amazon.com/ko/bedrock/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/iklP3/hyXwrZa7C3/oNywCNL7QhMTLGAPmp8LXK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cunKk4/hyXsXSZzHK/7njGxgj3MkaawiTEfVnWL0/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109,https://scrap.kakaocdn.net/dn/xPRn8/hyXsXZL7tZ/a4v0jSoesXjechHesBKjy0/img.jpg?width=1200&amp;amp;height=1100&amp;amp;face=0_0_1200_1100&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/bedrock/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/ko/bedrock/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/iklP3/hyXwrZa7C3/oNywCNL7QhMTLGAPmp8LXK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cunKk4/hyXsXSZzHK/7njGxgj3MkaawiTEfVnWL0/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109,https://scrap.kakaocdn.net/dn/xPRn8/hyXsXZL7tZ/a4v0jSoesXjechHesBKjy0/img.jpg?width=1200&amp;amp;height=1100&amp;amp;face=0_0_1200_1100');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;파운데이션 모델(FM)을 사용하여 생성형 AI 애플리케이션을 구축 - Amazon Bedrock - AWS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Amazon Bedrock은 AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI, Amazon과 같은 주요 AI 회사의 고성능 FM을 쉽게 이용하여 최신의 생성형 AI 혁신을 빠르게 조정하고 활용할 수 있도록 도와줍니다. 선택&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;22년부터 시작된 GenAI의 열풍은 많은 회사들로 하여금 AI를 급격하게 발전시키도록 만든 것 같다. 요새 어딜가나 AI는 기본적으로 서비스에 들어가고 애플 핸드폰 조차도 이제 AI가 탑재돼서 출시되는 시대가 된 것 같다. 그만큼 AI 트렌드를 빠르게 따라가서 AI 활용에 대해 공부하는 것 또한 중요해진 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, 오늘은 AI 애플리케이션을 만들기 위해서 Bedrock에서 제공되는 서비스는 어떠한 것이 있는 지 알아보고자 한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;Foundation Models&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;흔히 AI를 공부할 때 보면 FM이라는 용어를 되게 많이 접하게 된다. FM은 쉽게 생각하면 미리 대규모 데이터를 이용해서 학습된 모델이라고 생각하면 된다. 사실 전문적으로 모델을 처음부터 개발하는 사람이 아니라면 ChatGPT 같은 생성형 AI 애플리케이션을 만드는 것은 쉬운 일이 아닐 것이다. 이를 위해서 AI 엔지니어가 쉽게 튜닝해서 새로운 모델을 만들 수 있도록 제공되는 게 FM이고 Amaozon Bedrock 서비스에서는 여러 가지 FM을 제공해주고 있다. Meta의 유명한 Llama부터 Anthropic의 Claude, Amazon 자체의 Titan 등 다양한 모델들이 제공되고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731130307484&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Supported foundation models in Amazon Bedrock - Amazon Bedrock&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Supported foundation models in Amazon Bedrock - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글로벌을 타겟으로 하는 회사만큼 리전마다 제공되는 모델의 종류도 다르고 만약 한국이 아닌 다른 리전에 있는 모델을 이용하고 싶다면 해당 리전에 원하는 모델이 있는 지 먼저 찾아보면 좋을 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731130383505&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Model support by AWS Region - Amazon Bedrock&quot; data-og-description=&quot;Model support by AWS Region Amazon Bedrock model availability varies by AWS Region. All models are supported in the US East (N. Virginia, us-east-1) and the US West (Oregon, us-west-2) Regions, except for the following exceptions: Amazon Titan Text Premier&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Model support by AWS Region - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Model support by AWS Region Amazon Bedrock model availability varies by AWS Region. All models are supported in the US East (N. Virginia, us-east-1) and the US West (Oregon, us-west-2) Regions, except for the following exceptions: Amazon Titan Text Premier&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 우리는 각 모델을 사용하기 전에 Bedrock 서비스의 playground에서 모델을 테스트 해볼 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/playgrounds.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/playgrounds.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731130659236&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Generate responses in the console using playgrounds - Amazon Bedrock&quot; data-og-description=&quot;If the response violates the content moderation policy, Amazon Bedrock doesn't display it. If you have turned on streaming, Amazon Bedrock clears the entire response if it generates content that violates the policy. For more details, navigate to the Amazon&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/playgrounds.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/playgrounds.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/playgrounds.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/playgrounds.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Generate responses in the console using playgrounds - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;If the response violates the content moderation policy, Amazon Bedrock doesn't display it. If you have turned on streaming, Amazon Bedrock clears the entire response if it generates content that violates the policy. For more details, navigate to the Amazon&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;Customize Model for your use case&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇다면 우리는 이제 앞서 언급한 FM을 활용해서 어떻게 우리만의 Custom Model로 만들 수 있을까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방법은 간단하게 우리만의 목적(예를 들어 관광 관련 정부 단체면 관광 정보 추천)을 위해서 관련된 데이터를 모델에 학습을 시키거나 모델의 파라미터를 조정해서 튜닝 작업을 하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731131068758&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Customize your model to improve its performance for your use case - Amazon Bedrock&quot; data-og-description=&quot;You are charged for model training based on the number of tokens processed by the model (number of tokens in training data corpus &amp;times; number of epochs) and model storage charged per month per model. For more information, see Amazon Bedrock pricing.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Customize your model to improve its performance for your use case - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;You are charged for model training based on the number of tokens processed by the model (number of tokens in training data corpus &amp;times; number of epochs) and model storage charged per month per model. For more information, see Amazon Bedrock pricing.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델의 파라미터를 조정해서 튜닝을 할 경우 모델마다 다르기 때문에 아래 문서를 참고하면 좋을 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models-hp.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models-hp.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731131288544&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Custom model hyperparameters - Amazon Bedrock&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models-hp.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models-hp.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models-hp.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models-hp.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Custom model hyperparameters - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 만든 모델은 정말로 내가 원하는 목적에 맞게 추론(inference)를 잘하는 지 확인하는 과정 또한 중요하다. Bedrock 문서에서는 model의 performance를 평가하기 위한 가이드가 잘 나와있다. 해당 문서를 참고해서 evaluation job을 만들고 모델의 성능을 평가하는 것 또한 모델링 과정에서 중요하다. 사실 이 과정을 거쳐서 모델 검증이 잘 되어야 우리가 흔히 말하는 할루시네이션 즉 거짓 정보를 만들어내는 현상도 방지할 수 있다. 사실 아직까지는 할루시네이션 현상을 100% 전부 다 막을 수는 없다고 생각한다. 개인적으로 해당 현상이 일어나는 걸 전부 다 막겠다긴 보다는 그래도 발생할 확률을 줄이는 게 최선이라고 생각한다. 그래서 요새 뒤에서도 언급하겠지만 Prompt Engineering 또한 중요한 과정 중 하나인 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/evaluation.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/evaluation.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731136299362&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Evaluate the performance of models in Amazon Bedrock - Amazon Bedrock&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/evaluation.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/evaluation.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/evaluation.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/evaluation.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Evaluate the performance of models in Amazon Bedrock - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;u&gt;Knowledge bases&lt;/u&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서 말한 할루시네이션 현상을 방지하기 위해 나온 기능으로 Bedrock에서는 Knowledge bases, AI 쪽에서는 흔히 RAG 기법이라고 불리는 검색 증강 생성 기법이 있다. 해당 방식은 모델이 과거 데이터 뿐만 아니라 현재 데이터도 바라볼 수 있게 하고 모델이 계속해서 유사한 데이터를 찾아 분석하고 내가 던진 질문에 대한 답변을 발전시켜 나가서 사실 기반의 정확한 답변을 얻을 수 있도록 하는 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Amazon Bedrock에서는 해당 기능을 Knowledge bases라는 이름으로 제공하고 있고 해당 기능을 활용해서 모델은 더 지능적으로 내가 원하는 답변을 추론할 수 있게 된다. 또한, 해당 기능에서는 web crawling을 통해 데이터를 수집해서 나의 Bedrock 모델이 더 다양하고 연관성 있는 정보를 바탕으로 답변을 추론하도록 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/blogs/machine-learning/implement-web-crawling-in-knowledge-bases-for-amazon-bedrock/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws.amazon.com/ko/blogs/machine-learning/implement-web-crawling-in-knowledge-bases-for-amazon-bedrock/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731132218789&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Implement web crawling in Amazon Bedrock Knowledge Bases | Amazon Web Services&quot; data-og-description=&quot;Amazon Bedrock is a fully managed service that offers a choice of high-performing foundation models (FMs) from leading artificial intelligence (AI) companies like AI21 Labs, Anthropic, Cohere, Meta, Stability AI, and Amazon through a single API, along with&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/ko/blogs/machine-learning/implement-web-crawling-in-knowledge-bases-for-amazon-bedrock/&quot; data-og-url=&quot;https://aws.amazon.com/blogs/machine-learning/implement-web-crawling-in-knowledge-bases-for-amazon-bedrock/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ujMoT/hyXsZQNJOf/YDlI5W1darBLLPLlmRqf1K/img.jpg?width=1121&amp;amp;height=630&amp;amp;face=0_0_1121_630,https://scrap.kakaocdn.net/dn/JAPDT/hyXwn3ydaT/HyxsxfJ3DOXjcxiWSKLha1/img.jpg?width=1121&amp;amp;height=630&amp;amp;face=0_0_1121_630,https://scrap.kakaocdn.net/dn/d0uBU2/hyXsVVdnXy/VxkytOnnuLM26qad6Uaeg0/img.png?width=1044&amp;amp;height=768&amp;amp;face=0_0_1044_768&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/blogs/machine-learning/implement-web-crawling-in-knowledge-bases-for-amazon-bedrock/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/ko/blogs/machine-learning/implement-web-crawling-in-knowledge-bases-for-amazon-bedrock/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ujMoT/hyXsZQNJOf/YDlI5W1darBLLPLlmRqf1K/img.jpg?width=1121&amp;amp;height=630&amp;amp;face=0_0_1121_630,https://scrap.kakaocdn.net/dn/JAPDT/hyXwn3ydaT/HyxsxfJ3DOXjcxiWSKLha1/img.jpg?width=1121&amp;amp;height=630&amp;amp;face=0_0_1121_630,https://scrap.kakaocdn.net/dn/d0uBU2/hyXsVVdnXy/VxkytOnnuLM26qad6Uaeg0/img.png?width=1044&amp;amp;height=768&amp;amp;face=0_0_1044_768');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Implement web crawling in Amazon Bedrock Knowledge Bases | Amazon Web Services&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Amazon Bedrock is a fully managed service that offers a choice of high-performing foundation models (FMs) from leading artificial intelligence (AI) companies like AI21 Labs, Anthropic, Cohere, Meta, Stability AI, and Amazon through a single API, along with&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 여기서 데이터를 저장하기 위해서는 벡터 임베딩 기법을 사용하는데 이는 내가 말한 단어나 문장을 숫자로 변환하는 기법이다. 이러한 벡터 임베딩 정보는 벡터 스토어라는 곳에 저장하여 나중에 데이터가 들어왔을 때 해당 벡터 스토어에서 유사한 관계의 데이터를 찾아 추론을 하게 된다. 이때, AWS 에서 지원되는 벡터 스토어로는 OpenSearch 서비스가 있고 이외에도 RDS의 Aurora 등 다양한 서비스들이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731132427116&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Retrieve data and generate AI responses with knowledge bases - Amazon Bedrock&quot; data-og-description=&quot;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Retrieve data and generate AI responses with knowledge bases - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731132455957&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Prerequisites for your own vector store for a knowledge base - Amazon Bedrock&quot; data-og-description=&quot;If you use MongoDB Atlas, you agree to authorize AWS to access the designated third-party source on your behalf in order to provide vector store services to you. You're responsible for complying with any third-party terms applicable to use and and transfer&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Prerequisites for your own vector store for a knowledge base - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;If you use MongoDB Atlas, you agree to authorize AWS to access the designated third-party source on your behalf in order to provide vector store services to you. You're responsible for complying with any third-party terms applicable to use and and transfer&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;Prompt Engineering&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요새 ChatGPT 같은 GenAI를 많이 사용하는 만큼 원하는 결과를 도출하기 위한 Prompt Engineering도 중요해지고 있다. 사실 우리가 원하는 답은 단순히 지하철을 타고 서울역에서 강남역으로 가기 위한 노선 정보를 묻는 것인데 AI에게 &quot;서울역에서 강남역까지는 어떻게 가야 해?&quot; 라는 단순한 질문을 하면 버스 경로를 추천해줄 때도 있고 택시를 타는 방법도 추천해줄 때가 있다. 이렇듯 정확한 우리의 니즈를 반영하기 위해서는 AI에게 내가 정확하게 어떤 정보를 원하고 있고 어떤 답변을 내주면 좋겠는 지 같이 prompt 안에 넣어야 한다. 이외에도 prompt engineering을 하는 이유는 입력 토큰이라고 불리는(모델마다 다르겠지만 여기선 예시로 한 단어에 한 토큰이라고 가정) 토큰 단위마다 가격을 측정하기도 하기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/bedrock/pricing/?nc1=h_ls&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws.amazon.com/bedrock/pricing/?nc1=h_ls&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731133101480&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;파운데이션 모델(FM)을 사용하여 생성형 AI 애플리케이션을 구축 - Amazon Bedrock 요금 - AWS&quot; data-og-description=&quot;Amazon Bedrock 기술 자료는 FM과 에이전트가 회사의 개인 데이터 소스에서 컨텍스트 정보에 액세스할 수 있도록 완전관리형 엔드 투 엔드 검색 증강 생성(RAG) 워크플로를 제공합니다. 이를 통해 더 &quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/bedrock/pricing/?nc1=h_ls&quot; data-og-url=&quot;https://aws.amazon.com/ko/bedrock/pricing/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cFPusa/hyXsW7EJsw/HJE88DzkIlr6g3qsjVqgh0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/Cb3ay/hyXwtQeYpK/uYzQsIsLFWK3YxCQkjkQl0/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/bedrock/pricing/?nc1=h_ls&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/bedrock/pricing/?nc1=h_ls&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cFPusa/hyXsW7EJsw/HJE88DzkIlr6g3qsjVqgh0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/Cb3ay/hyXwtQeYpK/uYzQsIsLFWK3YxCQkjkQl0/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;파운데이션 모델(FM)을 사용하여 생성형 AI 애플리케이션을 구축 - Amazon Bedrock 요금 - AWS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Amazon Bedrock 기술 자료는 FM과 에이전트가 회사의 개인 데이터 소스에서 컨텍스트 정보에 액세스할 수 있도록 완전관리형 엔드 투 엔드 검색 증강 생성(RAG) 워크플로를 제공합니다. 이를 통해 더&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 Prompt Engineering은 어떻게 해야 잘 한다 할 수 있을까? 간단하게 내가 사용하려고 하는 모델의 가이드를 보면 된다. 대부분의 모델은 Prompt Engineering을 하는 방법에 대한 가이드를 문서로 남겨놓았다. 이를 참고한다면 기존의 단순한 질문에 대한 답보다 더 나은 Prompt 결과를 얻을 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731132941459&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Prompt engineering overview - Anthropic&quot; data-og-description=&quot;A lighter weight version of our prompt engineering tutorial via an interactive spreadsheet.&quot; data-og-host=&quot;docs.anthropic.com&quot; data-og-source-url=&quot;https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview&quot; data-og-url=&quot;https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hdDrj/hyXwi80GUz/at9Ey6PGzinQ02HLWjWDzK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hdDrj/hyXwi80GUz/at9Ey6PGzinQ02HLWjWDzK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Prompt engineering overview - Anthropic&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A lighter weight version of our prompt engineering tutorial via an interactive spreadsheet.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.anthropic.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;Bedrock Agent&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 앞서 말한 RAG이나 Prompt Engineering이나 따로 따로 우리가 하기보다는 하나로 통합돼서 관리되면 더 편리함을 느낄 것이다. 그래서 Amazon Bedrock에서는 Agent라는 기능을 제공해주고 있다. 해당 기능을 사용하면 우리는 앞서 말한 기능들을 더욱 더 편리하게 자동화하고 업무의 생산성을 높일 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/bedrock/agents/?nc1=h_ls&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws.amazon.com/bedrock/agents/?nc1=h_ls&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731133178648&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;AI 에이전트 - Agents for Amazon Bedrock - AWS&quot; data-og-description=&quot;Amazon Bedrock 에이전트는 사용자 지침, 작업 그룹 및 기술 자료를 사용하여 프롬프트 템플릿을 자동으로 생성합니다. 이 템플릿을 기준으로 삼아 자동으로 생성된 프롬프트 템플릿을 세부적으로 &quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/bedrock/agents/?nc1=h_ls&quot; data-og-url=&quot;https://aws.amazon.com/ko/bedrock/agents/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bEYsLP/hyXsUPswaG/tlUPRsNvvU4SuGyANCxyN0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/pPlPB/hyXwhbbT1j/j3myffmQM3awU458JTTsV1/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109,https://scrap.kakaocdn.net/dn/bzOGy7/hyXwl5J65b/VebyjxkopWUFSufx4PTahK/img.png?width=1472&amp;amp;height=840&amp;amp;face=0_0_1472_840&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/bedrock/agents/?nc1=h_ls&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/bedrock/agents/?nc1=h_ls&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bEYsLP/hyXsUPswaG/tlUPRsNvvU4SuGyANCxyN0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/pPlPB/hyXwhbbT1j/j3myffmQM3awU458JTTsV1/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109,https://scrap.kakaocdn.net/dn/bzOGy7/hyXwl5J65b/VebyjxkopWUFSufx4PTahK/img.png?width=1472&amp;amp;height=840&amp;amp;face=0_0_1472_840');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;AI 에이전트 - Agents for Amazon Bedrock - AWS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Amazon Bedrock 에이전트는 사용자 지침, 작업 그룹 및 기술 자료를 사용하여 프롬프트 템플릿을 자동으로 생성합니다. 이 템플릿을 기준으로 삼아 자동으로 생성된 프롬프트 템플릿을 세부적으로&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;Bedrock Guardrail&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로는 Guardrail에 대해 설명하고자 한다. GenAI를 사용할 때 몇몇 유저는 비속어를 섞어서 prompting을 할 수도 있다. 만약 그럴 경우 AI가 해당 데이터를 학습하게 된다면 누군가는 비속어로 된 답변을 얻게 될 것이다. 그걸 방지하기 위해 Bedrock에서는 Guardrail 서비스로 유해한 정보를 filtering하고 유저의 개인 정보 같은 민감한 정보들이 prompting이 되지 않도록 방지할 수 있게끔 제공해주고 있다. 또한, Guardrail을 잘만 사용한다면 앞서 언급한 할루시네이션 현상도 미리 감지하고 예방할 수도 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731133501361&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Stop harmful content in models using Amazon Bedrock Guardrails - Amazon Bedrock&quot; data-og-description=&quot;Amazon Bedrock Guardrails supports English-only. Evaluating text content in other languages can result in unreliable results.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Stop harmful content in models using Amazon Bedrock Guardrails - Amazon Bedrock&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Amazon Bedrock Guardrails supports English-only. Evaluating text content in other languages can result in unreliable results.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 이렇게 Bedrock에 있는 기능들에 대해 다루고 Bedrock이 어떤 서비스인지 알아보았다. 요새 AI가 화두인 만큼 해당 기술에 대한 지식을 키우고 잘 활용하는 능력 또한 매우 중요한 것 같다. 예전에는 개개인이 방대한 정보의 바다 속에서 필요한 정보를 찾기 위해서 구글링을 하면서 많은 시간을 들였는데 요새는 간단한 Prompting 한 번이면 내가 원하는 정보를 찾을 수 있게 된 것 같다. 그만큼 AI를 잘 활용하는 게 매우 중요해졌고 우리는 해당 기술들을 잘 활용하기 위해 계속 끊임없이 공부를 해야할지도 모른다... 그리고 Bedrock 과 같은 서비스도 잘 활용해서 나만의 생산성을 높일 수 있는 도구로 잘 활용하는 것 또한 앞으로의 과제일 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+++&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 AWS에서는 Bedrock workshop이나 sample 등 다양한 소스 코드를 제공해주고 있어서 관심이 있다면 개인 Jupyer Notebook을 통해서 한 번씩 해봐도 좋을 것 같다! (이때, 예상치 못하게 과금이 될 수 있기 때문에 요금은 잘 확인하고 사용을 다 한 리소스는 삭제하면 좋을 것 같다!)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/aws-samples/amazon-bedrock-workshop&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/aws-samples/amazon-bedrock-workshop&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731134075217&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - aws-samples/amazon-bedrock-workshop: This is a workshop designed for Amazon Bedrock a foundational model service.&quot; data-og-description=&quot;This is a workshop designed for Amazon Bedrock a foundational model service. - GitHub - aws-samples/amazon-bedrock-workshop: This is a workshop designed for Amazon Bedrock a foundational model se...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/aws-samples/amazon-bedrock-workshop&quot; data-og-url=&quot;https://github.com/aws-samples/amazon-bedrock-workshop&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/62ckg/hyXsZQNWmO/bMYJxnJEo0Qwdl6CZFnqv1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/R07Q4/hyXs4q4KdK/D9VeL75oDHYKQbp7Kkx9K1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/aws-samples/amazon-bedrock-workshop&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/aws-samples/amazon-bedrock-workshop&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/62ckg/hyXsZQNWmO/bMYJxnJEo0Qwdl6CZFnqv1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/R07Q4/hyXs4q4KdK/D9VeL75oDHYKQbp7Kkx9K1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - aws-samples/amazon-bedrock-workshop: This is a workshop designed for Amazon Bedrock a foundational model service.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;This is a workshop designed for Amazon Bedrock a foundational model service. - GitHub - aws-samples/amazon-bedrock-workshop: This is a workshop designed for Amazon Bedrock a foundational model se...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/aws-samples/amazon-bedrock-samples&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/aws-samples/amazon-bedrock-samples&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731134078927&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - aws-samples/amazon-bedrock-samples: This repository contains examples for customers to get started using the Amazon Bed&quot; data-og-description=&quot;This repository contains examples for customers to get started using the Amazon Bedrock Service. This contains examples for all available foundational models - aws-samples/amazon-bedrock-samples&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/aws-samples/amazon-bedrock-samples&quot; data-og-url=&quot;https://github.com/aws-samples/amazon-bedrock-samples&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dDU4ur/hyXwscInBa/QTW1EAEzqYZipw2h7PAKF1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/vPpyx/hyXwtW1p7J/4imKTAdrfSTSuZK5DQc74k/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/aws-samples/amazon-bedrock-samples&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/aws-samples/amazon-bedrock-samples&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dDU4ur/hyXwscInBa/QTW1EAEzqYZipw2h7PAKF1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/vPpyx/hyXwtW1p7J/4imKTAdrfSTSuZK5DQc74k/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - aws-samples/amazon-bedrock-samples: This repository contains examples for customers to get started using the Amazon Bed&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;This repository contains examples for customers to get started using the Amazon Bedrock Service. This contains examples for all available foundational models - aws-samples/amazon-bedrock-samples&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>Agent</category>
      <category>bedrock</category>
      <category>FM</category>
      <category>Guardrail</category>
      <category>knowledge bases</category>
      <category>Prompt Engineering</category>
      <category>rag</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>@Eeap</author>
      <guid isPermaLink="true">https://suminn0.tistory.com/167</guid>
      <comments>https://suminn0.tistory.com/167#entry167comment</comments>
      <pubDate>Sat, 9 Nov 2024 15:37:22 +0900</pubDate>
    </item>
    <item>
      <title>Amazon SageMaker 개발 환경</title>
      <link>https://suminn0.tistory.com/166</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 Amazon SageMaker가 어떤 서비스이며 어떤 기능들이 있는지 알아보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/sagemaker/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws.amazon.com/ko/sagemaker/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729399819612&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;기계 학습 - Amazon Web Services&quot; data-og-description=&quot;데이터 준비 및 모델 훈련부터 모델 배포까지 전체 ML 개발 여정 동안 지원을 받으세요. Amazon Q Developer는 코드 제안을 생성하고, 질문에 답하고, 오류 발생 시 문제 해결 지원을 제공할 수 있습니&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/ko/sagemaker/&quot; data-og-url=&quot;https://aws.amazon.com/ko/sagemaker/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bbLTu7/hyXlLjdPIf/ukiQ3yGYrfYQGzn1hRVcPk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/o0YnC/hyXhVVojRU/S4ECU8vuBIyBpLgtFKpKzK/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/sagemaker/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/ko/sagemaker/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bbLTu7/hyXlLjdPIf/ukiQ3yGYrfYQGzn1hRVcPk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/o0YnC/hyXhVVojRU/S4ECU8vuBIyBpLgtFKpKzK/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;기계 학습 - Amazon Web Services&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;데이터 준비 및 모델 훈련부터 모델 배포까지 전체 ML 개발 여정 동안 지원을 받으세요. Amazon Q Developer는 코드 제안을 생성하고, 질문에 답하고, 오류 발생 시 문제 해결 지원을 제공할 수 있습니&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Amazon SageMaker는 소개 페이지에 나와있는 것처럼 개발자 및 데이터 사이언티스트가 다양한 규모의 ML 모델을 쉽고 빠르게 구축하며 배포할 수 있도록 지원하고 있는 완전 관리형 서비스이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, Amazon SageMaker를 이용하면 데이터를 라벨링하는 과정부터 모델 학습, 모델 평가, 배포, 추론 과정을 AWS 환경에서 구축하여 운영할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 Amazon SageMaker에는 다양한 기능들이 있기 때문에 모든 기능들을 한번에 살펴보는 것을 사실상 힘들 수도 있다. 그래서 오늘은 간단하게 Amazon SageMaker에서 제공하는 ML 환경에 대해 알아보고자 한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/studio-updated.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;u&gt;&lt;b&gt;Amazon SageMaker Studio&lt;/b&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 기존에 있는 Amazon SageMaker Studio 환경이 Amazon SageMaker Studio Classic으로 명명되지 그리 크게 오래되지 않았다. 현재는 이전에 있던 Amazon SageMaker Studio를 Studio Classic이라고 부르고 쓰고 있고 최근에 나온 새로운 환경의 웹 기반 ML 워크플로우 환경을 Amazon SageMaker Studio라고 부르고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Amazon SageMaker Studio에서는 애플리케이션은 아래와 같이 JupyterLab, Code Editor, RStudio, Canvas, Studio Classic이 있다. 사용자는 Amazon SageMaker Studio의 애플리케이션을 활용해서 자신만의 머신 러닝 모델링을 위한 코드를 개발하고 관리할 수 있으며 JumpStart를 활용해서 기존에 이미 prebuilt로 준비된 솔루션(ex. FM)을 사용할 수도 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eAVAMn/btsKb7t9nGB/MkpKSabOtpfGYvPnILTxt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eAVAMn/btsKb7t9nGB/MkpKSabOtpfGYvPnILTxt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eAVAMn/btsKb7t9nGB/MkpKSabOtpfGYvPnILTxt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeAVAMn%2FbtsKb7t9nGB%2FMkpKSabOtpfGYvPnILTxt0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;900&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;이외에도 SageMaker Studio는 고객이 이미 가지고 있는 Amazon EFS를 마운팅 할 수 있도록 지원하고 있고 만약 사용하고 있지 않는 (즉, Idle 상태) 애플리케이션을 종료할 수 있는 기능도 갖추고 있다. 추가적으로 Lifecycle configuration이나 Local Mode를 지원함으로써 고객의 초기 셋팅이나 로컬 환경에서 구동해볼 수 있는 기능을 제공하고 있다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/studio.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;u&gt;&lt;b&gt;Amazon SageMaker Studio Classic&lt;/b&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Amazon SageMaker Studio Classic은 사실 앞서 설명한 Studio와 크게 다르지 않다. 단지 예전 버전이어서 현재 Studio보다는 기능이 조금 덜 들어가 있는 수준이다. 마찬가지로 Studio Classic에서도 Jupyter 노트북을 활용하여 데이터 준비부터 학습, 배포까지 관리할 수 있다. 기존에 사용하고 있던 사용자들은 Studio Classic을 사용할 수 있지만 &lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/studio-updated-migrate.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;공식 문서&lt;/a&gt;에 마이그레이션과 참고에 안내를 한 것처럼 지원 범위가 좁혀지고 있기 때문에 새로운 사용자는 Studio를 활용하는 방법이 더 나은 선택일 수도 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n6wZv/btsKdM3iEIB/8WrLX1mDCloIfwbn9ufkx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n6wZv/btsKdM3iEIB/8WrLX1mDCloIfwbn9ufkx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n6wZv/btsKdM3iEIB/8WrLX1mDCloIfwbn9ufkx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn6wZv%2FbtsKdM3iEIB%2F8WrLX1mDCloIfwbn9ufkx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;734&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;734&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/nbi.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Amazon SageMaker Notebooks&lt;/a&gt;&lt;/u&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Amazon SageMaker Notebook instance는 JupyterLab이나 Jupyter를 실행할 수 있는 컴퓨팅 인스턴스이다. 사용자는 앞서 언급했던 SageMaker Studio를 활용하는 방식 이외에도 Notebook instance를 통해서 Jupyter 환경에서 코드를 개발할 수 있고 자신이 원하는 인스턴스 타입을 고르거나 VPC 환경을 셋팅하는 등의 작업을 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Amazon SageMaker Notebook의 Jupyter환경에서 사용자는 AWS가 제공하는 Amazon SageMaker Python SDK와 AWS SDK for python(boto3), AWS CLI, Conda, Pandas등 다양한 라이브러리를 활용해서 모델을 개발할 수 있다. 추가적으로 Git repositories를 등록해서 초반에 자신의 git repository를 셋팅해놓을 수 있고 Lifecycle Configuration을 통해 초기에 설정할 환경 (패키지 설치 같은)을 셋팅할 수 있다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/canvas.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;u&gt;&lt;b&gt;Amazon SageMaker Canvas&lt;/b&gt;&lt;/u&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Amazon SageMaker에서는 또 다른 환경으로 Canvas라는 환경을 지원하고 있다. 이 환경에서는 사용자는 이전에 JupyterLab으로 코딩을 하는 등의 작업 필요 없이 단순히 클릭만으로 (즉, 노코드 환경) 데이터를 넣고 모델을 구축할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 이러한 환경은 개발에 대한 경험이 크지 않고 빠르게 모델을 배포하고 예측 결과를 도출하고 싶어하는 사용자에게 적합한 기능이라고 생각한다. Python 코드를 보고 공식문서를 뒤져가면서 함수명과 적합한 파라미터 명, 데이터 parsing 하는 등의 작업은 많은 시간 투자를 요구할 수 있다. 그럴 때 Amazon SageMaker Canvas를 이용한다면 손쉽게 가지고 있는 데이터를 이용해서(다양한 &lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/canvas-importing-data.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Data connector&lt;/a&gt;를 제공해주고 있기 때문) AWS에서 제공해주는 FM을 학습시키고 개인에게 맞는 모델을 개발(추가적인 custom 작업인 파라미터 튜닝 등)하고 Inference를 하기 위해 활용할 수 있다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/rstudio.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;&lt;u&gt;Amazon SageMaker RStudio&lt;/u&gt;&lt;/b&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로는 RStudio에 대해 알아보려고 한다. RStudio는 이름 그대로 R을 위한 개발 환경을 제공해주는 기능으로 코드를 실행하거나 디버깅 및 작업 관리 등을 할 수 있다. R언어 개발자는 손쉽게 SageMaker RStudio를 활용해 AWS 환경에서 모델 구축을 할 수 있다. 또한, 다양한 코드 샘플도 제공해주고 있기 때문에 R을 쉽게 활용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/aws/amazon-sagemaker-examples/tree/main/r_examples&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/aws/amazon-sagemaker-examples/tree/main/r_examples&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729402711308&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;amazon-sagemaker-examples/r_examples at main &amp;middot; aws/amazon-sagemaker-examples&quot; data-og-description=&quot;Example   Jupyter notebooks that demonstrate how to build, train, and deploy machine learning models using   Amazon SageMaker. - aws/amazon-sagemaker-examples&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/aws/amazon-sagemaker-examples/tree/main/r_examples&quot; data-og-url=&quot;https://github.com/aws/amazon-sagemaker-examples/tree/main/r_examples&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/f6jxD/hyXhSEm6hn/KVD8J04k0UgYYjnk5vjCk1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/xTVNT/hyXhZKctga/GCYAtqsCdL2LPhnQbk2K4K/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/aws/amazon-sagemaker-examples/tree/main/r_examples&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/aws/amazon-sagemaker-examples/tree/main/r_examples&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/f6jxD/hyXhSEm6hn/KVD8J04k0UgYYjnk5vjCk1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/xTVNT/hyXhZKctga/GCYAtqsCdL2LPhnQbk2K4K/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;amazon-sagemaker-examples/r_examples at main &amp;middot; aws/amazon-sagemaker-examples&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Example   Jupyter notebooks that demonstrate how to build, train, and deploy machine learning models using   Amazon SageMaker. - aws/amazon-sagemaker-examples&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 추가적으로 RStudio를 사용하기 위해서는 &lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/rstudio-license.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;라이선스를 받는 과정&lt;/a&gt; 등이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 오늘 글에서 다 다루지 못했지만 SageMaker는 개발 환경 제공 이외에도 AutoML이나 Data Wrangler, Pipelines 등 다양한 기능들을 제공해주고 있다. 또한, Studio나 RStudio 등의 환경을 사용하기 위해서 사용자는 Domain과 User Profile이라는 컴포넌트가 필요하다. 이 글에서는 해당 내용에 대한 글을 작성하진 않았지만 추후에 더 많은 기능들을 소개하고 실제로 구축도 해보면서 언급할 계획이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 ML, AI가 핫해지면서 많은 사람들이 ML을 이용해서 모델을 개발하고 있는데 Amazon SageMaker는 ML을 하기에 최적화된 환경(FM이나 개발 환경, 서버 인프라 제공)을 제공해주고 있어서 사용자가 더 빠르게 모델을 개발할 수 있게 만들고 온전히 개발과 모델 튜닝에만 집중할 수 있도록 도움을 주고 있다는 생각이 든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비록 이러한 클라우드 환경이 단순히 비용만 놓고 봤을때 비쌀 수는 있지만 해당 인프라 환경을 개인이 구축하고 사용하기엔 어려움도 있고 관리도 어려울 수 있다고 생각한다. 또한, AWS에서는 자세한 공식 문서나 샘플 코드도 같이 제공해주니까 학생일 때도 활용하기 쉽고 접근하기도 쉬웠던 것 같다. 그래서 앞으로도 많은 사람들이 잘 활용할 수 있게 샘플에 대한 설명 글이나 활용 가이드에 대해 작성해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+++ 공식 문서도 참고할 수 있지만 더 추가적으로 활용하면 좋은 링크들을 아래 공유하고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/blogs/tech/category/artificial-intelligence/sagemaker/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws.amazon.com/ko/blogs/tech/category/artificial-intelligence/sagemaker/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/aws/sagemaker-python-sdk&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/aws/sagemaker-python-sdk&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/aws/amazon-sagemaker-operator-for-k8s&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/aws/amazon-sagemaker-operator-for-k8s&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/aws/studio-lab-examples&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/aws/studio-lab-examples&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Cloud/AWS</category>
      <category>aws</category>
      <category>ML</category>
      <category>SageMaker</category>
      <category>studio</category>
      <author>@Eeap</author>
      <guid isPermaLink="true">https://suminn0.tistory.com/166</guid>
      <comments>https://suminn0.tistory.com/166#entry166comment</comments>
      <pubDate>Sun, 20 Oct 2024 14:57:49 +0900</pubDate>
    </item>
    <item>
      <title>글또 10기를 시작하며</title>
      <link>https://suminn0.tistory.com/165</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://geultto.github.io/blog/geultto-summary/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://geultto.github.io/blog/geultto-summary/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1728131845607&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;글또(개발자 글쓰기 모임) 소개 | 글또 Document&quot; data-og-description=&quot;글또 소개&quot; data-og-host=&quot;geultto.github.io&quot; data-og-source-url=&quot;https://geultto.github.io/blog/geultto-summary/&quot; data-og-url=&quot;https://geultto.github.io/blog/geultto-summary/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bgfJZA/hyXecgWzlU/r9zumUIMQlVvm5NBXs3kZk/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160,https://scrap.kakaocdn.net/dn/vGx7v/hyXaCawHhh/cN8I5vKJEwBj6W0mMzHjPk/img.png?width=460&amp;amp;height=460&amp;amp;face=0_0_460_460&quot;&gt;&lt;a href=&quot;https://geultto.github.io/blog/geultto-summary/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://geultto.github.io/blog/geultto-summary/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bgfJZA/hyXecgWzlU/r9zumUIMQlVvm5NBXs3kZk/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160,https://scrap.kakaocdn.net/dn/vGx7v/hyXaCawHhh/cN8I5vKJEwBj6W0mMzHjPk/img.png?width=460&amp;amp;height=460&amp;amp;face=0_0_460_460');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;글또(개발자 글쓰기 모임) 소개 | 글또 Document&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;글또 소개&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;geultto.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에 글또의 마지막 기수라고도 불리는 10기에 운이 좋게 참여하게 되었는데 오늘은 왜 글또에 지원했고 앞으로 글또를 통해 어떤 글을 쓸 지에 대해 쓰려고 한다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;왜 글또인가?&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에도 글또라는 모임에 대해서 몰랐던 건 아니다. 지인 중에도 글또를 참여하는 사람이 있었고 글또를 통해 무엇을 얻어가고 달성했는지도 봤다. 사실 글또에 이전부터 참여하고 싶었지만 격주마다 글을 쓸 자신이 없었고 글을 사람들이 읽기 좋게 정리하는 것 또한 나에겐 어려운 일이었다. 그래서 항상 지원하는 것에 대해 망설였던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 회사에 입사하고 나니 공부해야할 범위도 넓어졌고 학습한 내용을 초반부터 잘 정리해놓지 않으면 나중에는 까먹어서 또 다시 공부하고 이런 상황이 반복될 것 같다라는 생각이 들었다. 그래서 글또가 이번이 마지막이기도 하고 글또를 통해 글을 잘 정리해서 나 또한 공부하는데 도움이 되고 다른 사람들도 내 글을 보고 얻어가는 것이 많았으면 해서 지원하게 되었다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;앞으로의 목표&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 회사에 입사한 지 얼마되지 않았지만 요새는 평생 직장이라는 개념이 사라져서 그런지 앞으로의 커리어에 대해 벌써부터 많이 고민하게 되는 것 같다. AI라는 기술이 화두가 된지 얼마되지 않았지만 벌써 ChatGPT는 복잡한 알고리즘 문제나 수능 수학 문제 같은 어려운 문제들을 나보다 더 잘푸는 지경까지 도달하게 되었다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 이전에는 DevOps 엔지니어가 되는 것을 꿈꾸어왔지만 요즘 드는 생각은 general하게 모든 분야를 잘 받아들이고 빠르게 학습해서 적용하는 엔지니어가 앞으로도 살아남을 수 있을 것 같다는 생각이 든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근에 정한 앞으로의 목표는 트렌드에 맞게 기술을 빠르게 습득하고 적용한 뒤 더 나아가 활용까지 할 수 있는 엔지니어가 되는 것을 목표로 하고 있다. 이를 위해서는 새로운 기술을 공부하고 그것을 나의 것으로 만들어서 정리하는 기술이 중요하다고 생각한다. 그래서 5월달에 멈췄던 글을 이제부터라도 조금씩 다시 글을 쓰려하고 있다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;글의 주제&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글의 주제는 요새 공부하고 있는 아래 카테고리들을 주제로 작성하려고 한다. 아마 주로 AWS 공식 문서를 참고하고 글을 작성하고 시간이 되면 직접 실습도 해보면서 가이드 문서도 잘 작성해보려고 한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;AI (GenAI, Amazon Bedrock)&lt;/li&gt;
&lt;li&gt;ML(Amazon SageMaker)&lt;/li&gt;
&lt;li&gt;Big data (Apache Spark, Apache Hadoop, Apache Flink, Amazon EMR)&lt;/li&gt;
&lt;li&gt;Container (Kubernetes)&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>일상</category>
      <author>@Eeap</author>
      <guid isPermaLink="true">https://suminn0.tistory.com/165</guid>
      <comments>https://suminn0.tistory.com/165#entry165comment</comments>
      <pubDate>Sat, 5 Oct 2024 22:08:43 +0900</pubDate>
    </item>
    <item>
      <title>tcpdump와 wireshark를 이용한 패킷 분석하기</title>
      <link>https://suminn0.tistory.com/164</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 간단하게 tcpdump와 wireshark를 이용해서 내 패킷이 loss가 되고 있는건지 확인해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러기 위해선 acl을 수정하면서 가동할 서버가 필요하고 이를 위해 AWS EC2를 활용해서 진행해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 들어가기 앞서 tcpdump와 wireshark에 대해 알아보자.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;TCPdump란?&lt;/u&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;tcpdump란 unix 계열 운영체제에서 제공해주는 커맨드로 네트워크 인터페이스를 통과하는 패킷의 내용을 캡처하고 분석할 수 있게 해주는 도구이다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 tcpdump는 어떻게 사용하는 걸까? 리눅스에서 사용하는 커맨드는 주로 man이라는 명령어를 이용해서 해당 커맨드에 대한 옵션 정보나 디테일 한 정보를 볼 수 있다. 커맨드 창으로 보기 좀 불편한 경우엔 &lt;a href=&quot;https://linux.die.net/man/8/tcpdump&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;해당 링크&lt;/a&gt;를 통해 tcpdump에 자세한 내용을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 wireshark를 이용해서 로컬에서 보내는 요청이 EC2 인스턴스로 잘 전송되는지 확인하기 위해서 아래와 같은 명령어를 사용해서 패킷 파일을 저장하려고 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1716010752081&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo tcpdump -i en0 -w test-ec2.pcap # 이때 permission 문제로 sudo로 해야 사용할 수 있다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 저장된 파일을 wireshark를 이용해서 네트워크 패킷을 분석할 수 있다.&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;Wireshark란?&lt;/u&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;tcpdump가 CLI로 네트워크 패킷을 봤다면 wireshark는 사용자에게 더 나은 편리성을 제공하기 위해 GUI 기반으로 분석 도구를 제공해주고 있다. wireshark를 이용해서 특정 네트워크 인터페이스에서 지나가는 패킷을 볼 수도 있고 저장된 파일을 이용해서 분석할 수도 있다.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;wireshark는 &lt;a href=&quot;https://www.wireshark.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;해당 링크&lt;/a&gt;를 통해 window, macOS에서 다운받을 수 있다.&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;패킷 분석 과정&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;패킷을 분석해보기 앞서 일단 EC2 하나를 public 노출을 시켜서 띄울 수 있도록 구성하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3812&quot; data-origin-height=&quot;1866&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Nxd4Q/btsHtJbDi1T/5wIdLYIbNP28qKBmvWsUR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Nxd4Q/btsHtJbDi1T/5wIdLYIbNP28qKBmvWsUR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Nxd4Q/btsHtJbDi1T/5wIdLYIbNP28qKBmvWsUR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNxd4Q%2FbtsHtJbDi1T%2F5wIdLYIbNP28qKBmvWsUR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3812&quot; height=&quot;1866&quot; data-origin-width=&quot;3812&quot; data-origin-height=&quot;1866&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보안 그룹은 아래처럼 ssh를 이용해서 접근만 가능하도록 구성을 하였다. (추후 80번 포트에 대해 추가할 예정이다)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3170&quot; data-origin-height=&quot;1288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dDdWcZ/btsHs1DYDuc/CMEtUfWGq2HGoR5fGuzxQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dDdWcZ/btsHs1DYDuc/CMEtUfWGq2HGoR5fGuzxQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dDdWcZ/btsHs1DYDuc/CMEtUfWGq2HGoR5fGuzxQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDdWcZ%2FbtsHs1DYDuc%2FCMEtUfWGq2HGoR5fGuzxQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3170&quot; height=&quot;1288&quot; data-origin-width=&quot;3170&quot; data-origin-height=&quot;1288&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음 위에서 언급했던 tcpdump 명령어를 떠서 패킷을 캡쳐할 수 있도록 하고 패킷 캡처를 중단하고 싶다면 ctrl+c를 누르면된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;170&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TkX71/btsHtKuGdfZ/hiYTm1V2f2O0lXKYJQCmBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TkX71/btsHtKuGdfZ/hiYTm1V2f2O0lXKYJQCmBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TkX71/btsHtKuGdfZ/hiYTm1V2f2O0lXKYJQCmBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTkX71%2FbtsHtKuGdfZ%2FhiYTm1V2f2O0lXKYJQCmBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1256&quot; height=&quot;170&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이젠 ssh로 해당 서버에 접속한 후 아래 명령어를 통해 간단한 80번 포트의 채널을 띄워서 telnet 명령어로 해당 서버의 80번 포트에 접근이 가능한지 확인해보도록 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3RMKa/btsHtJbDWQK/1VLoYzF5PcJcCKtwtU83DK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3RMKa/btsHtJbDWQK/1VLoYzF5PcJcCKtwtU83DK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3RMKa/btsHtJbDWQK/1VLoYzF5PcJcCKtwtU83DK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3RMKa%2FbtsHtJbDWQK%2F1VLoYzF5PcJcCKtwtU83DK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1138&quot; height=&quot;436&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 아래처럼 다른 커맨드 창을 띄워서 해당 서버 포트로 telnet을 날려보면 응답이 떨어지지 않을텐데 시간이 조금 지났다면 ctrl+c로 시도를 중단하도록 해서 wireshark로 패킷을 한번 보도록 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2716&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dv6LK2/btsHua0Kyak/vRHuh0mFBnATykWoAkPjo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dv6LK2/btsHua0Kyak/vRHuh0mFBnATykWoAkPjo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dv6LK2/btsHua0Kyak/vRHuh0mFBnATykWoAkPjo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdv6LK2%2FbtsHua0Kyak%2FvRHuh0mFBnATykWoAkPjo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2716&quot; height=&quot;320&quot; data-origin-width=&quot;2716&quot; data-origin-height=&quot;320&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래처럼 wireshark를 실행시킨 후 파일 버튼을 눌러서 저장했던 패킷 파일을 open하도록 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3824&quot; data-origin-height=&quot;2148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RQSkS/btsHtpLgATY/mTv1jrUwEcq3ZB2oxF8e11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RQSkS/btsHtpLgATY/mTv1jrUwEcq3ZB2oxF8e11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RQSkS/btsHtpLgATY/mTv1jrUwEcq3ZB2oxF8e11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRQSkS%2FbtsHtpLgATY%2FmTv1jrUwEcq3ZB2oxF8e11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3824&quot; height=&quot;2148&quot; data-origin-width=&quot;3824&quot; data-origin-height=&quot;2148&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 ssh 연결을 맺었기 때문에 아래처럼 ssh 연결에 대한 네트워크 패킷이 나오게 되고 자세한 info를 보면 client와 server간의 보안을 위한 연결을 설정한 것을 알 수 있다. (이외에도 네트워크 인터페이스에는 많은 패킷이 왔다갔다 하므로 filtering을 거는 것을 추천한다)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3830&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgxeT8/btsHtsgZuyT/E1sZnsJ7dNhsyT392wI5B0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgxeT8/btsHtsgZuyT/E1sZnsJ7dNhsyT392wI5B0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgxeT8/btsHtsgZuyT/E1sZnsJ7dNhsyT392wI5B0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgxeT8%2FbtsHtsgZuyT%2FE1sZnsJ7dNhsyT392wI5B0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3830&quot; height=&quot;1020&quot; data-origin-width=&quot;3830&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 더 아래로 내려보면 내가 telnet으로 80번 포트에 대한 요청을 보냈던 패킷의 내용을 볼 수 있다. 아래처럼 계속 재전송 요청이 되고 있고 seq number가 초기의 0값으로 계속 보내고 있다는 것을 미루어 보아 나의 요청이 막히고 있다는 것을 알 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3770&quot; data-origin-height=&quot;1294&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cD3QUT/btsHtcZKlqb/ZlKjNNG54uQg3Xe2XO4kwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cD3QUT/btsHtcZKlqb/ZlKjNNG54uQg3Xe2XO4kwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cD3QUT/btsHtcZKlqb/ZlKjNNG54uQg3Xe2XO4kwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcD3QUT%2FbtsHtcZKlqb%2FZlKjNNG54uQg3Xe2XO4kwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3770&quot; height=&quot;1294&quot; data-origin-width=&quot;3770&quot; data-origin-height=&quot;1294&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 다시 AWS 보안 그룹으로 넘어가서 80번 포트에 대한 요청을 허용하고 다시 telnet을 날려서 패킷을 분석해보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3138&quot; data-origin-height=&quot;1260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqgd0y/btsHu21Zmd6/okgVTD913MuLO228VTUgjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqgd0y/btsHu21Zmd6/okgVTD913MuLO228VTUgjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqgd0y/btsHu21Zmd6/okgVTD913MuLO228VTUgjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdqgd0y%2FbtsHu21Zmd6%2FokgVTD913MuLO228VTUgjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3138&quot; height=&quot;1260&quot; data-origin-width=&quot;3138&quot; data-origin-height=&quot;1260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위처럼 보안 그룹을 설정하고 다시 똑같이 tcpdump 명령어를 실행하고 telnet을 실행해보면 이번에 커맨드 창에서 Connected가 됐다는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2736&quot; data-origin-height=&quot;624&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blvyhj/btsHunyVy4b/TbppNT4TEaInfhOhQSx6lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blvyhj/btsHunyVy4b/TbppNT4TEaInfhOhQSx6lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blvyhj/btsHunyVy4b/TbppNT4TEaInfhOhQSx6lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fblvyhj%2FbtsHunyVy4b%2FTbppNT4TEaInfhOhQSx6lk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2736&quot; height=&quot;624&quot; data-origin-width=&quot;2736&quot; data-origin-height=&quot;624&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;wireshark로 해당 패킷 파일을 확인해보면 아래처럼 EC2서버로부터 SYN와 ACK를 받았다는 것을 알 수 있다. 이는 내가 telnet으로 연결 설정에 성공했다는 것을 의미하며 이는 더이상 나의 패킷이 loss되지 않았다는 것을 알 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3798&quot; data-origin-height=&quot;1926&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dNYtwB/btsHuMMgUkB/Aguh6cn38kfJRxduF3arQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dNYtwB/btsHuMMgUkB/Aguh6cn38kfJRxduF3arQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dNYtwB/btsHuMMgUkB/Aguh6cn38kfJRxduF3arQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdNYtwB%2FbtsHuMMgUkB%2FAguh6cn38kfJRxduF3arQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3798&quot; height=&quot;1926&quot; data-origin-width=&quot;3798&quot; data-origin-height=&quot;1926&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;u&gt;결론 및 생각 정리&lt;/u&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이외에도 wireshark를 이용해서 다양한 분석을 할 수 있는 것 같다. 송수신 패킷 양과 속도 등 다양한 정보를 볼 수 있다.(패킷을 분석할 수 있는게 다양해서 필요에 따라 보고 활용하면 좋을 것 같다.. 계층 별로도 패킷 정보를 볼 수 있다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Kubernetes 환경 구축하는 과정에서 네트워킹 트러블슈팅 할 때 패킷 분석에 대해 좀 더 알고 미리 공부했으면 쉽게 패킷 까보고 트러블 슈팅할 수 있었을텐데.. 미리 알았으면 좋았을걸이라는 생각이 들었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 학생일때 이렇게 패킷을 까보고 뭐가 문젠지 분석하기보다는 이론 공부만 했던 것 같은데 알고 있던 내용을 이렇게 한번씩 해보는 것도 좋은 시도인 것 같다라는 생각이 들었다. 이외에도 리눅스에서 트러블슈팅하는 것이 궁금해서 &lt;u&gt;DevOps와 SE를 위한 리눅스 커널 이야기&lt;/u&gt;라는 책을 사서 보고 있는데 해당 내용이 실무에서 리눅스에서 트러블 슈팅하기 위해서 어떤 커맨드를 사용하고 분석하는지 잘 알려주어서 좋은 책인 것 같다(비록 내용이 아직 나에겐 넘 어려워서 일단 읽고 이런게 있구나..하는 정도로만 이해하고 있다..)&lt;/p&gt;</description>
      <category>기타</category>
      <category>loss</category>
      <category>Packet</category>
      <category>tcpdump</category>
      <category>Wireshark</category>
      <category>네트워크</category>
      <category>리눅스 커널</category>
      <category>트래픽</category>
      <author>@Eeap</author>
      <guid isPermaLink="true">https://suminn0.tistory.com/164</guid>
      <comments>https://suminn0.tistory.com/164#entry164comment</comments>
      <pubDate>Sat, 18 May 2024 15:14:10 +0900</pubDate>
    </item>
  </channel>
</rss>