<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AWS  |  鉄駆ブログ</title>
	<atom:link href="https://ichi-station.com/tag/aws/feed/" rel="self" type="application/rss+xml" />
	<link>https://ichi-station.com</link>
	<description></description>
	<lastBuildDate>Sat, 22 Oct 2022 07:57:33 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.6</generator>

<image>
	<url>https://ichi-station.com/wp-content/uploads/2022/04/cropped-blog-favicon512x512-4-32x32.png</url>
	<title>AWS  |  鉄駆ブログ</title>
	<link>https://ichi-station.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【厳選】UdemyでAWSが学べるオススメ講座3選</title>
		<link>https://ichi-station.com/udemy-aws-courses/</link>
					<comments>https://ichi-station.com/udemy-aws-courses/#respond</comments>
		
		<dc:creator><![CDATA[いっちー]]></dc:creator>
		<pubDate>Fri, 10 Dec 2021 02:35:09 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Udemy]]></category>
		<guid isPermaLink="false">https://ichi-station.com/?p=3192</guid>

					<description><![CDATA[AWSに代表されるクラウドの技術需要は近年急速に高まり、 Web系の開発現場ではインフラにクラウドを採用する事例が多くなっています。 この記事では上記の疑問にお答えするために、 UdemyでAWSが学べるオススメ講座3選 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>AWSに代表されるクラウドの技術需要は近年急速に高まり、</p>



<p>Web系の開発現場ではインフラにクラウドを採用する事例が多くなっています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/10/youngman_29.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>AWSを学びたいんだけど、どうやって勉強したらいいんだろう？</p>
</div></div>



<p>この記事では上記の疑問にお答えするために、</p>



<p>UdemyでAWSが学べるオススメ講座3選を紹介します。</p>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-yellow-border-color"><div class="caption-box-label block-box-label box-label fab-edit"><span class="caption-box-label-text block-box-label-text box-label-text"><strong>この記事の想定読者</strong></span></div><div class="caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-check block-box"><div class="iconlist-title"></div>
<ul><li>AWSの学習教材を探している方</li><li>継続しやすい教材を求めている方</li><li>AWS学習のために何から手をつけていいか分からない方</li></ul>
</div>
</div></div>



<p>上記の観点で教材を探している方は、ぜひ参考にしてみてください！</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2022/01/illust0131_02_アートボード-3.jpg" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>Udemyは動画でAWSが学べるため視覚的に理解しやすく、</p>



<p>1つの授業も約10〜20分と細かく区切られており、</p>



<p>コツコツ継続して学びやすいです！</p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2"><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Udemyとは？</a></li><li><a href="#toc2" tabindex="0">ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得</a></li><li><a href="#toc3" tabindex="0">米シリコンバレーDevOps監修！超AWS完全入門+本番運用向け上級編ベストプラクティスとTerraform</a></li><li><a href="#toc4" tabindex="0">AWSで作るWEBアプリケーション 実践講座</a></li><li><a href="#toc5" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">Udemyとは？</span></h2>



<p><a rel="noopener" href="https://click.linksynergy.com/deeplink?id=Z8EgTF1veV0&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fja%2F" data-type="URL" data-id="https://click.linksynergy.com/deeplink?id=Z8EgTF1veV0&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fja%2F" target="_blank">Udemy</a>とは、世界最大のオンライン学習プラットフォームです。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/11/udemy-security-courses-1-1024x556.jpg" alt=""/></figure>



<p><strong>10万を超えるオンライン講座</strong>が登録されており、プログラミングやデザインなどさまざまな分野のカリキュラムを動画で学べます。</p>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-yellow-border-color"><div class="caption-box-label block-box-label box-label https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png"><span class="caption-box-label-text block-box-label-text box-label-text"><strong>Udemyの特徴</strong></span></div><div class="caption-box-content block-box-content box-content">
<ul><li>動画カリキュラムで学習するため、書籍よりもビジュアルで理解しやすい</li><li>セールが開催されると最大約90%オフで講座を購入することができる</li><li>講座に満足できなかった場合の30日間返金保証がある</li><li>専用のスマホアプリがあり、講座をダウンロードすればオフライン再生ができる</li><li>倍速再生に対応しており、学習のスピードアップができる</li><li>講座内で講師に質問ができる。また他の人の質問も確認できる</li><li>IT/ビジネス/デザイン/マーケティング/音楽などさまざまな分野の講座が準備されている</li></ul>
</div></div>



<p>動画カリキュラムなので本と比べて視覚的に理解しやすく、</p>



<p>さらに返金保証があるため安心してコースを買うことができます！</p>



<div class="is-horizontal is-content-justification-center is-layout-flex wp-container-1 wp-block-buttons">
<div class="wp-block-button is-style-fill"><a rel="noopener" class="wp-block-button__link has-yellow-background-color has-background" href="https://click.linksynergy.com/deeplink?id=Z8EgTF1veV0&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourses%2Fsearch%2F%3Fsrc%3Dukw%26q%3DAWS" target="_blank"><strong>UdemyのAWS講座一覧</strong></a></div>
</div>



<h2><span id="toc2">ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得</span></h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="360" src="https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-1-1024x360.jpg" alt="UdemyでAWSが学べるオススメ講座3選" class="wp-image-3197" srcset="https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-1-1024x360.jpg 1024w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-1-300x105.jpg 300w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-1-768x270.jpg 768w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-1-1536x540.jpg 1536w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-1.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-table alignwide"><table><tbody><tr><td>コース時間</td><td>11時間</td></tr><tr><td>評価</td><td>4.4/5.0(2021年12月現在)</td></tr><tr><td>講師</td><td>山浦清透</td></tr><tr><td>対象者</td><td>・はじめてAWSを学ぶ方<br>・インフラにあまり詳しくない方<br>・AWSを使用してネットワーク・サーバを構築したい方</td></tr></tbody></table></figure>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-yellow-border-color"><div class="caption-box-label block-box-label box-label fab-edit"><span class="caption-box-label-text block-box-label-text box-label-text"><strong>学習内容</strong></span></div><div class="caption-box-content block-box-content box-content">
<ul><li>AWSの主要サービスの特徴や使い方のレクチャー(VPC, EC2, RDS, S3など)</li><li>EC2を使用したWordPress構築</li><li>WebやDBレイヤの冗長化</li><li>S3/CloudFrontを使用した画像配信</li></ul>



<p></p>
</div></div>



<p>Webエンジニアの山浦清透さんが講師を務めるこの講座では、</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-yellow-border-color">
<ul><li>基礎編でWordPressでサービス構築を行いながら、ネットワークの基礎</li><li>発展編で構築したWordPressの冗長化や画像配信、監視、運用時のノウハウ</li></ul>
</div>



<p>を学びます。</p>



<p>実際に<strong>WordPressでブログシステムを作りながら主要AWSサービスの使い方を学ぶ</strong>ことで、</p>



<p>より実践的な知識が身に付きます。</p>



<p class="has-text-align-center"><strong><a rel="noopener" href="https://click.linksynergy.com/deeplink?id=Z8EgTF1veV0&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Faws-and-infra%2F" data-type="URL" data-id="https://click.linksynergy.com/deeplink?id=Z8EgTF1veV0&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Faws-and-infra%2F" target="_blank">>> <meta charset="utf-8">詳細をUdemyで確認する &lt;&lt;</a></strong></p>



<h2><span id="toc3">米シリコンバレーDevOps監修！超AWS完全入門+本番運用向け上級編ベストプラクティスとTerraform</span></h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="352" src="https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-2-1024x352.jpg" alt="UdemyでAWSが学べるオススメ講座3選" class="wp-image-3198" srcset="https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-2-1024x352.jpg 1024w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-2-300x103.jpg 300w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-2-768x264.jpg 768w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-2-1536x528.jpg 1536w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-2.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-table alignwide"><table><tbody><tr><td>コース時間</td><td>12時間</td></tr><tr><td>評価</td><td>4.6/5.0(2021年12月現在)</td></tr><tr><td>講師</td><td>CS Career Kaizen (元Microsoftエンジニア)</td></tr><tr><td>対象者</td><td>・はじめてAWSを学ぶ方<br>・プログラミングの経験が1-3ヶ月以上あるぶ方<br>・サーバーやIPアドレスなど、図解説で初歩的なところから学んでいきたい方</td></tr></tbody></table></figure>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-yellow-border-color"><div class="caption-box-label block-box-label box-label fab-edit"><span class="caption-box-label-text block-box-label-text box-label-text"><strong>学習内容</strong></span></div><div class="caption-box-content block-box-content box-content">
<ul><li>AWSコアサービスのハンズオン<ul><li>EC2を使ってサーバーをパブリックサブネットに立ち上げてSSHで接続する</li><li>SNS（Simple Notification Service）を使ったメール通知</li><li>ELB（Elastic Load Balancer）を使ったトラフィックの負荷分散</li><li>他サービスのハンズオン多数</li></ul></li><li>本番運用ベストプラクティス<ul><li>踏み台サーバーを活用した3レイヤーSubnetの構築など</li></ul></li></ul>



<p></p>
</div></div>



<p>この講座ではAWS超初心者の方を対象に、</p>



<p>クラウドの特徴やAWSのコアサービス（IAM、VPC、EC2など）をハンズオンで知識とスキルを身に着けます。</p>



<p>またKMSを使ってEC2のEBSボリュームを暗号化するなどの</p>



<p>本番運用ベストプラクティスも講座内で学べるので、</p>



<p><strong>業務に活かせる実践的な講座をお探しの方におすすめ</strong>です。</p>



<p class="has-text-align-center"><meta charset="utf-8"><strong><a rel="noopener" href="https://click.linksynergy.com/deeplink?id=Z8EgTF1veV0&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Faws-nyumon-beginner-cloud-practitioner-ec2-vpc-rds-s3-elb-lambda-iam%2F" data-type="URL" data-id="https://click.linksynergy.com/deeplink?id=Z8EgTF1veV0&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Faws-nyumon-beginner-cloud-practitioner-ec2-vpc-rds-s3-elb-lambda-iam%2F" target="_blank">>> <meta charset="utf-8">詳細をUdemyで確認する &lt;&lt;</a></strong></p>



<h2><span id="toc4">AWSで作るWEBアプリケーション 実践講座</span></h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="324" src="https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-3-1024x324.jpg" alt="UdemyでAWSが学べるオススメ講座3選" class="wp-image-3199" srcset="https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-3-1024x324.jpg 1024w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-3-300x95.jpg 300w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-3-768x243.jpg 768w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-3-1536x486.jpg 1536w, https://ichi-station.com/wp-content/uploads/2021/12/udemy-aws-courses-3.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-table alignwide"><table><tbody><tr><td>コース時間</td><td>10時間</td></tr><tr><td>評価</td><td>4.5/5.0(2021年12月現在)</td></tr><tr><td>講師</td><td>津郷晶也</td></tr><tr><td>対象者</td><td>・AWS上にアプリケーションを構築したい方<br>・ハンズオン形式での講座を探している方</td></tr></tbody></table></figure>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-yellow-border-color"><div class="caption-box-label block-box-label box-label fab-edit"><span class="caption-box-label-text block-box-label-text box-label-text"><strong>学習内容</strong></span></div><div class="caption-box-content block-box-content box-content">
<ul><li>AWSを利用してWebアプリケーションを構築するハンズオン（VPC/EC2/RDSなど）</li><li>料金アラート設定方法</li><li>AWSの基礎知識（AWSの特徴/関わる用語と概念/主要サービスの説明など）</li></ul>
</div></div>



<p>エンジニアの津郷さんが講師を務めるこの講座では、実際にWebアプリを組み上げてAWSで構築することで、</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-yellow-border-color">
<ul><li>どこから手をつけていいかわからない</li><li>AWSを使う際にいくらお金がかかるか不安</li></ul>
</div>



<p>などの悩みを解消します。</p>



<p>講座内では、AWS上に実業務を想定したWebアプリケーション（Node.js + MySQL）の構築を</p>



<p>ハンズオン形式で行います。</p>



<p>講座内で料金アラート設定を学び実際にアラートを入れていくので、</p>



<p><strong>AWS使用の際に料金面で不安がある方にオススメ</strong>です。</p>



<p class="has-text-align-center"><meta charset="utf-8"><strong><a rel="noopener" href="https://click.linksynergy.com/deeplink?id=Z8EgTF1veV0&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fwebapplication-on-aws%2F" data-type="URL" data-id="https://click.linksynergy.com/deeplink?id=Z8EgTF1veV0&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fwebapplication-on-aws%2F" target="_blank">>> <meta charset="utf-8">詳細をUdemyで確認する &lt;&lt;</a></strong></p>



<h2><span id="toc5">さいごに</span></h2>



<p>この記事ではUdemyでAWSが学べるオススメ講座3選というテーマでお伝えしました。</p>



<p>Udemyは合計で10万本以上の講座が登録されており、この記事では紹介しきれなかったAWSの講座が他にもあります。</p>



<div class="is-horizontal is-content-justification-center is-layout-flex wp-container-2 wp-block-buttons">
<div class="wp-block-button is-style-fill"><a rel="noopener" class="wp-block-button__link has-yellow-background-color has-background" href="https://click.linksynergy.com/deeplink?id=Z8EgTF1veV0&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourses%2Fsearch%2F%3Fsrc%3Dukw%26q%3DAWS" target="_blank"><strong>UdemyのAWS講座一覧</strong></a></div>
</div>



<p>読者の皆様に最適なAWSの講座が見つかりますように(<em>*´∀｀*</em>)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ichi-station.com/udemy-aws-courses/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CloudFormation, AWS CLIでRDS Proxyを作成する方法</title>
		<link>https://ichi-station.com/rds-proxy-cloudformation-aws-cli/</link>
					<comments>https://ichi-station.com/rds-proxy-cloudformation-aws-cli/#respond</comments>
		
		<dc:creator><![CDATA[いっちー]]></dc:creator>
		<pubDate>Thu, 03 Jun 2021 10:16:37 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[AWS CLI]]></category>
		<category><![CDATA[CloudFormation]]></category>
		<guid isPermaLink="false">https://ichi-station.com/?p=2189</guid>

					<description><![CDATA[こんにちは。いっちー(@tetestkake_blog)です！ AWSリソース構築の際、画面からリソースを作成する作業を効率化したいなと思うことはありませんか？ CloudFormation, AWS CLIを使用すると [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>こんにちは。いっちー(<a rel="noopener" href="https://twitter.com/tetsukake_blog" target="_blank">@tetestkake_blog</a>)です！</p>



<p>AWSリソース構築の際、画面からリソースを作成する作業を効率化したいなと思うことはありませんか？</p>



<p>CloudFormation, AWS CLIを使用すると、画面から設定項目を入力せずともにAWSリソースの作成ができ便利です。</p>



<p>この記事ではRDS Proxyを例に取り、CloudFormation, AWS CLIでリソースを作成する方法をサンプル付きで紹介します！</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>RDS Proxyってなに？という方は以下の記事をまずご覧ください。</p>
</div></div>



<figure class="wp-block-embed is-type-wp-embed is-provider-鉄オタエンジニアの駆け出し日記 wp-block-embed-鉄オタエンジニアの駆け出し日記"><div class="wp-block-embed__wrapper">
<a href="https://ichi-station.com/aws-rds-proxy-lambda-aurora/" title="【AWS】RDS Proxyを使用してLambdaからAuroraに接続する" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://ichi-station.com/wp-content/uploads/2021/05/【AWS】RDS-Proxyを使用してLambdaからAuroraに接続する-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" decoding="async" srcset="https://ichi-station.com/wp-content/uploads/2021/05/【AWS】RDS-Proxyを使用してLambdaからAuroraに接続する-160x90.png 160w, https://ichi-station.com/wp-content/uploads/2021/05/【AWS】RDS-Proxyを使用してLambdaからAuroraに接続する-300x169.png 300w, https://ichi-station.com/wp-content/uploads/2021/05/【AWS】RDS-Proxyを使用してLambdaからAuroraに接続する-120x68.png 120w, https://ichi-station.com/wp-content/uploads/2021/05/【AWS】RDS-Proxyを使用してLambdaからAuroraに接続する-320x180.png 320w, https://ichi-station.com/wp-content/uploads/2021/05/【AWS】RDS-Proxyを使用してLambdaからAuroraに接続する.png 560w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【AWS】RDS Proxyを使用してLambdaからAuroraに接続する</div><div class="blogcard-snippet internal-blogcard-snippet">この記事ではRDS Proxyを使用してLambdaからAuroraに接続する方法を、サンプルプログラムを用いて解説します。RDS Proxyを使用することで、DBへのコネクションをいい感じに調整してくれます。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://ichi-station.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">ichi-station.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.05.28</div></div></div></div></a>
</div></figure>



<p>※CloudFormation, AWS CLIどちらのサンプルを実行しても同じようなRDS Proxyを作成できます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4"><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">CloudFormationでRDS Proxyを作成</a><ol><li><a href="#toc2" tabindex="0">RDS Proxyを作成するためのテンプレートファイルを作成</a></li><li><a href="#toc3" tabindex="0">作成したテンプレートファイルを使ってRDS Proxyを作成</a></li></ol></li><li><a href="#toc4" tabindex="0">AWS CLIでRDS Proxyを作成</a><ol><li><a href="#toc5" tabindex="0">Proxy作成コマンドを叩く</a></li><li><a href="#toc6" tabindex="0">Proxyターゲット作成コマンドを叩く</a></li><li><a href="#toc7" tabindex="0">[補足] LambdaにRDS Proxyを紐づける場合</a></li></ol></li><li><a href="#toc8" tabindex="0">さいごに</a><ol><li><a href="#toc9" tabindex="0">お知らせ</a></li><li><a href="#toc10" tabindex="0">参考資料</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">CloudFormationでRDS Proxyを作成</span></h2>



<p>CloudFormationを使い、以下の手順でRDS Proxyを作成します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-amber-border-color">
<ol><li>RDS Proxyを作成するためのテンプレートファイルを作成</li><li>作成したテンプレートファイルを使ってRDS Proxyを作成</li></ol>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>CloudFormationってなに？という方は以下の記事をまずご覧ください。</p>
</div></div>



<figure class="wp-block-embed is-type-wp-embed is-provider-鉄オタエンジニアの駆け出し日記 wp-block-embed-鉄オタエンジニアの駆け出し日記"><div class="wp-block-embed__wrapper">
<a href="https://ichi-station.com/aws-cloudformation-vpc/" title="【初心者向け】AWS CloudFormationでVPCを作成する" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://ichi-station.com/wp-content/uploads/2021/06/【初心者向け】AWS-CloudFormationでVPCを作成する-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://ichi-station.com/wp-content/uploads/2021/06/【初心者向け】AWS-CloudFormationでVPCを作成する-160x90.png 160w, https://ichi-station.com/wp-content/uploads/2021/06/【初心者向け】AWS-CloudFormationでVPCを作成する-300x169.png 300w, https://ichi-station.com/wp-content/uploads/2021/06/【初心者向け】AWS-CloudFormationでVPCを作成する-120x68.png 120w, https://ichi-station.com/wp-content/uploads/2021/06/【初心者向け】AWS-CloudFormationでVPCを作成する-320x180.png 320w, https://ichi-station.com/wp-content/uploads/2021/06/【初心者向け】AWS-CloudFormationでVPCを作成する.png 560w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】AWS CloudFormationでVPCを作成する</div><div class="blogcard-snippet internal-blogcard-snippet">この記事ではAWSのCloudFormationを使用してVPCを構築する手順を解説します。CloudFormationを使用するとインフラ構成をコード管理できて様々なメリットがあります。ハンズオン形式でyamlのサンプルを載せてあり、記事の通りに試すとVPCが構築できます。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://ichi-station.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">ichi-station.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.06.02</div></div></div></div></a>
</div></figure>



<h3><span id="toc2">RDS Proxyを作成するためのテンプレートファイルを作成</span></h3>



<p>まずはCloudFormationにてリソースの構築に必要な、RDS Proxy用テンプレートを作成します。</p>



<p>テンプレートはyamlやjsonで記述します。以下はRDS Proxy用サンプルテンプレートです。</p>



<pre class="wp-block-code"><code>AWSTemplateFormatVersion: 2010-09-09

Parameters:
  ProxyName:
    Type: String
    Default: &lt;Proxyの名前>
  ProxyTargetDBClusterIdentifiers:
    Type: CommaDelimitedList
  SecretReaderRoleArn:
    Type: String
    Default: &lt;シークレットを参照できるIAM RoleのARN>
  ProxySecretArn:
    Type: String
    Default: &lt;接続情報用シークレットのARN>
  SubnetIds:
    Type: String
    Default: &lt;サブネットID1>,&lt;サブネットID2>

Resources:
  TestDBProxy:
    Type: AWS::RDS::DBProxy
    Properties:
      DebugLogging: false
      DBProxyName: !Ref ProxyName
      EngineFamily: MYSQL
      IdleClientTimeout: 120
      RequireTLS: false
      RoleArn:
        !Ref SecretReaderRoleArn
      Auth:
        - {AuthScheme: SECRETS, SecretArn: !Ref ProxySecretArn, IAMAuth: DISABLED}
      VpcSubnetIds:
        Fn::Split: &#91;",", !Ref SubnetIds]
  ProxyTargetGroup:
    Type: AWS::RDS::DBProxyTargetGroup
    Properties:
      DBProxyName: !Ref TestDBProxy
      # Proxyが接続するRDS Auroraクラスターの識別子
      DBClusterIdentifiers: !Ref ProxyTargetDBClusterIdentifiers
      TargetGroupName: default
      ConnectionPoolConfigurationInfo:
          MaxConnectionsPercent: 100
          MaxIdleConnectionsPercent: 50
          ConnectionBorrowTimeout: 120
</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>上記サンプルは<a rel="noopener" href="https://github.com/yutaiii/blog-sample-code/tree/master/rds-proxy-cloudformation-aws-cli" data-type="URL" data-id="https://github.com/yutaiii/blog-sample-code/tree/master/rds-proxy-cloudformation-aws-cli" target="_blank">こちら</a>にアップロードしてあるのでご自由にお使いください！</p>
</div></div>



<h3><span id="toc3">作成したテンプレートファイルを使ってRDS Proxyを作成</span></h3>



<p>上記テンプレートを用いてスタックを作成します。</p>



<p>スタックは、</p>



<p>CloudFormation &gt; スタック &gt; スタックの作成 &gt; 新しいリソースを利用（標準）</p>



<p>から作成します。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="153" src="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-1024x153.png" alt="" class="wp-image-2168" srcset="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-1024x153.png 1024w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-300x45.png 300w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-768x115.png 768w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-1536x230.png 1536w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-2048x306.png 2048w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>yamlで定義したDefaultの値から変更する場合は、「スタックの詳細を指定」セクションから変更します。</p>



<p>最後のレビュー画面で設定項目に問題がないことを確認して、「スタックの作成」ボタンをクリックし、</p>



<p>スタックのステータスが「CREATE_IN_PROGRESS」から「CREATE_COMPLETE」になったら作成完了です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>作成の完了までは10分程度かかります。</p>



<p>スタックを作成してあとは待つだけなので楽チンですね！</p>
</div></div>



<h2><span id="toc4">AWS CLIでRDS Proxyを作成</span></h2>



<p>次はAWS CLIを使用したRDS Proxyの作成方法を解説します。</p>



<p>手順は以下です。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-amber-border-color">
<ol><li>Proxy作成コマンドを叩く</li><li>Proxyターゲット作成コマンドを叩く</li></ol>



<p></p>
</div>



<h3><span id="toc5">Proxy作成コマンドを叩く</span></h3>



<p>まずはProxy本体を作成するコマンドを叩きます。サンプルは以下です。</p>



<pre class="wp-block-code"><code>$ aws rds create-db-proxy \
--db-proxy-name "&lt;任意の名前>" \
--engine-family "MYSQL" \
--auth '&#91;{"Description": "&lt;説明>", "AuthScheme": "SECRETS", "SecretArn": "&lt;SecretsのARN>", "IAMAuth": "DISABLED"}]' \
--role-arn "&lt;RoleのARN>" \
--vpc-subnet-ids "&lt;SubnetId1>" "&lt;SubnetId2>" ......</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>コマンドが長くなってしまったので\（バックスラッシュ）で改行してあります。</p>
</div></div>



<div class="wp-block-cocoon-blocks-icon-box information-box common-icon-box block-box">
<p>&#8211;engine-familyではPOSTGRESQLも選択可能<br>&#8211;auth.IAMAuthではREQUIREDも選択可能</p>
</div>



<h3><span id="toc6">Proxyターゲット作成コマンドを叩く</span></h3>



<p>次に以下のコマンドでProxyターゲットを作成します。</p>



<pre class="wp-block-code"><code>$ aws rds register-db-proxy-targets \
--db-proxy-name &lt;Proxy名> \
--db-cluster-identifiers &lt;DBクラスタの名前></code></pre>



<div class="wp-block-cocoon-blocks-icon-box information-box common-icon-box block-box">
<p>&#8211;db-instance-identifiersのオプションを指定することも可能</p>
</div>



<h3><span id="toc7">[補足] LambdaにRDS Proxyを紐づける場合</span></h3>



<p>作成したRDS ProxyをLambdaにアタッチする場合は、</p>



<p>Lambda > 設定 > データベースプロキシ > データベースプロキシの追加</p>



<p>から、コマンド経由で作成したProxyをアタッチします。</p>



<p>なお、AWS CLIで作成したProxyにおいて、</p>



<p><span class="marker-under-red">コンソールではProxyがAvailableになっているが、作成後すぐはLambdaからの接続に失敗する事象を確認</span>しました。</p>



<p><span class="marker-under-red">10分ほど待つと問題なく疎通できた</span>ので、裏で何かを構築していた途中だったのかもしれないです。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>気長に待ちましょう&#8230;!</p>
</div></div>



<h2><span id="toc8">さいごに</span></h2>



<p>この記事ではCloudFormation, AWS CLIでRDS Proxyを作成する方法に関して解説しました。</p>



<p>コンソールから項目を設定しなくてもリソースが構築できる便利な代物なので、</p>



<p>インフラ環境構築の際にはCloudFormation, AWS CLIを使ってみてはいかがでしょうか？</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>AWSの学習には「<a rel="noopener" href="https://amzn.to/3wSc1LJ" data-type="URL" data-id="https://amzn.to/3wSc1LJ" target="_blank">Amazon Web Services 基礎からのネットワーク＆サーバー構築</a>」がおすすめです！</p>
</div></div>



<h3><span id="toc9">お知らせ</span></h3>



<p>にほんブログ村のランキングに参加しています。よろしければ下のボタンをポチッとしていただけると嬉しいです＼(^^)／</p>



<a rel="noopener" href="https://it.blogmura.com/ranking/in?p_cid=11090436" target="_blank"><img decoding="async" src="https://b.blogmura.com/it/88_31.gif" width="88" height="31" border="0" alt="にほんブログ村 IT技術ブログへ"></a>



<h3><span id="toc10">参考資料</span></h3>



<ul><li>create-db-proxy<ul><li><a rel="noopener" href="https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-proxy.html" target="_blank">https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-proxy.html</a></li></ul></li><li>register-db-proxy-targets<ul><li><a rel="noopener" href="https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/register-db-proxy-targets.html" target="_blank">https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/register-db-proxy-targets.html</a></li></ul></li><li>RDS Proxyと戯れた話【AWS】<ul><li><a rel="noopener" href="https://qiita.com/ttkn9a/items/2d325fc5e170721102d2" target="_blank">https://qiita.com/ttkn9a/items/2d325fc5e170721102d2</a></li></ul></li><li>【AWS】RDS ProxyをCloudFormationで構築する<ul><li><a rel="noopener" href="https://qiita.com/homines22/items/be6c9565ddd615d1d9ac" target="_blank">https://qiita.com/homines22/items/be6c9565ddd615d1d9ac</a></li></ul></li><li>AWS CloudFormation Documentation AWS::RDS::DBProxy<ul><li><a rel="noopener" href="https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html" target="_blank">https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html</a></li></ul></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://ichi-station.com/rds-proxy-cloudformation-aws-cli/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】AWS CloudFormationでVPCを作成する</title>
		<link>https://ichi-station.com/aws-cloudformation-vpc/</link>
					<comments>https://ichi-station.com/aws-cloudformation-vpc/#respond</comments>
		
		<dc:creator><![CDATA[いっちー]]></dc:creator>
		<pubDate>Wed, 02 Jun 2021 11:48:49 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[CloudFormation]]></category>
		<guid isPermaLink="false">https://ichi-station.com/?p=2165</guid>

					<description><![CDATA[こんにちは。いっちー(@tetestkake_blog)です！ 今回はAWSのCloudFormationを使用してVPCを構築する方法を解説します！ CloudFormationを使用すると、jsonやyamlで定義し [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>こんにちは。いっちー(<a rel="noopener" href="https://twitter.com/tetsukake_blog" target="_blank">@tetestkake_blog</a>)です！</p>



<p>今回はAWSのCloudFormationを使用してVPCを構築する方法を解説します！</p>



<p>CloudFormationを使用すると、jsonやyamlで定義したファイルをアップロードするだけで、AWSリソースを自動で作成してくれます。</p>



<p>ハンズオン形式でCloudFormationの使い方を見ていきましょう。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>インフラの複製やコード管理化など、利点が非常に高いサービスです！</p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6"><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">CloudFormationとは？</a></li><li><a href="#toc2" tabindex="0">CloudFormaionを使用するメリット </a></li><li><a href="#toc3" tabindex="0">VPC構築ハンズオン</a><ol><li><a href="#toc4" tabindex="0">Step 1. インフラ構成yamlファイルを作成</a></li><li><a href="#toc5" tabindex="0">Step 2. コンソールからyamlをアップロードしてVPCを作成</a></li><li><a href="#toc6" tabindex="0">Step 3. スタックを削除して作成したリソースを削除</a></li></ol></li><li><a href="#toc7" tabindex="0">さいごに</a><ol><li><a href="#toc8" tabindex="0">お知らせ</a></li><li><a href="#toc9" tabindex="0">参考資料</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">CloudFormationとは？</span></h2>



<p>yamlやjsonでインフラを定義するとAWS環境の構築をしてくれるサービスです。</p>



<p>また、AWS Cloud Development Kit (AWS CDK) を使用すると、TypeScript、Python、Java、.NET を使用してクラウド環境を定義できます。</p>



<h2><span id="toc2">CloudFormaionを使用するメリット </span></h2>



<p>CloudFormaionを使用すると、以下のようなメリットがあります。</p>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-amber-border-color"><div class="caption-box-label block-box-label box-label fab-thumbs-up"><span class="caption-box-label-text block-box-label-text box-label-text">CloudFormaionを使用するメリット</span></div><div class="caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-hand-o-right block-box"><div class="iconlist-title"></div>
<ul><li>インフラ構成をコード管理できる</li><li>インフラの複製が容易</li><li>スタックを消せば作成したリソースは一括削除できる</li></ul>
</div>
</div></div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>インフラをコード化できるため、バージョン管理(Gitなど)が可能となるのはメリットが大きいですね！</p>
</div></div>



<h2><span id="toc3">VPC構築ハンズオン</span></h2>



<p>ここからは実際にVPCをCloudFormationで構築していくハンズオンです。</p>



<p>以下の手順でVPCを構築します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-amber-border-color">
<ol><li>インフラ構成yamlファイルを作成</li><li>コンソールからyamlをアップロードしてVPCを作成</li><li>スタックを削除して作成したリソースを削除</li></ol>
</div>



<h3><span id="toc4">Step 1. インフラ構成yamlファイルを作成</span></h3>



<p>VPC構築用のyamlファイルを作成します。</p>



<p>create_vpc.yaml</p>



<pre class="wp-block-code"><code># 任意。お作法として指定
AWSTemplateFormatVersion: "2010-09-09"

Parameters:
  VpcName:
    Type: String
    # デフォルトに値を設定すると、コンソールで値が入力された状態になる
    Default: "sample-vpc"

# スタックに含めるリソースを宣言
Resources:
  # Logical ID
  # 他のリソースから参照する場合はこのIDを利用
  SampleVPC:
    # Resource type
    # service-provider::service-name::data-type-name
    Type: AWS::EC2::VPC
    Properties:
      # CIDRブロック
      CidrBlock: 10.0.0.0/16
      Tags:
        # VPCの名前
        - Key: Name
          # ParametersのVpcNameを読み込む
          Value: !Ref VpcName</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>上記yamlファイルは<a rel="noopener" href="https://github.com/yutaiii/blog-sample-code/tree/master/aws-cloudformation-vpc" data-type="URL" data-id="https://github.com/yutaiii/blog-sample-code/tree/master/aws-cloudformation-vpc" target="_blank">github</a>にもアップロードしてあります！</p>
</div></div>



<h3><span id="toc5">Step 2. コンソールからyamlをアップロードしてVPCを作成</span></h3>



<p>作成したyamlファイルをコンソールからアップロードして、実際にVPCを作成します。</p>



<p>CloudFormation > スタック > スタックの作成 > 新しいリソースを利用（標準）</p>



<p>から作成します。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="153" src="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-1024x153.png" alt="" class="wp-image-2168" srcset="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-1024x153.png 1024w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-300x45.png 300w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-768x115.png 768w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-1536x230.png 1536w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28-2048x306.png 2048w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.44.28.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>以下の項目を設定します。</p>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-amber-border-color"><div class="caption-box-label block-box-label box-label fab-info-circle"><span class="caption-box-label-text block-box-label-text box-label-text">設定項目</span></div><div class="caption-box-content block-box-content box-content">
<ul><li>テンプレートの準備<ul><li>テンプレートの準備完了</li></ul></li><li>テンプレートソース<ul><li>テンプレートファイルのアップロード</li></ul></li><li>テンプレートファイルのアップロード<ul><li>先ほど作成したyamlファイルをアップロード</li></ul></li></ul>
</div></div>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="686" src="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.45.34-1024x686.png" alt="" class="wp-image-2170" srcset="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.45.34-1024x686.png 1024w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.45.34-300x201.png 300w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.45.34-768x514.png 768w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.45.34-1536x1029.png 1536w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-11.45.34-2048x1372.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p> 上記項目が設定できたら次へを押します。</p>



<p>スタックの詳細を指定では以下の項目を設定します。</p>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-amber-border-color"><div class="caption-box-label block-box-label box-label fab-info-circle"><span class="caption-box-label-text block-box-label-text box-label-text">設定項目</span></div><div class="caption-box-content block-box-content box-content">
<ul><li>スタックの名前<ul><li>任意の名前を入力</li></ul></li><li>VpcName<ul><li>入力した名前がVPC名になる</li><li>yamlでデフォルト値を定義したので、「sample-vpc」と既に入力されている</li></ul></li></ul>
</div></div>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="438" src="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.11.03-1024x438.png" alt="" class="wp-image-2172" srcset="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.11.03-1024x438.png 1024w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.11.03-300x128.png 300w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.11.03-768x328.png 768w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.11.03-1536x657.png 1536w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.11.03-2048x876.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>上記を入力して次へ進みます。</p>



<p>スタックオプションの設定画面では特に何も入力せず次へ進みます。</p>



<p>最後のレビュー画面で設定項目に問題がないことを確認して、「スタックの作成」ボタンをクリックします。</p>



<p>ステータスが「CREATE_IN_PROGRESS」から「CREATE_COMPLETE」になったら作成完了です。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="435" src="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54-1024x435.png" alt="" class="wp-image-2173" srcset="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54-1024x435.png 1024w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54-300x127.png 300w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54-768x326.png 768w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54-1536x652.png 1536w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54-2048x869.png 2048w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>VPCのコンソールに行き、VPCが新規作成されていたらOKです。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="133" src="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.16.02-1024x133.png" alt="" class="wp-image-2174" srcset="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.16.02-1024x133.png 1024w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.16.02-300x39.png 300w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.16.02-768x100.png 768w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.16.02-1536x199.png 1536w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.16.02-2048x266.png 2048w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.16.02.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3><span id="toc6">Step 3. スタックを削除して作成したリソースを削除</span></h3>



<p>せっかく作成したVPCですが、削除してみましょう、</p>



<p>CloudFormationでは、スタックを削除すると作成したリソースも全て削除してくれます。</p>



<p>削除はスタックの詳細画面内「削除」ボタンから行います。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="435" src="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54のコピー-1024x435.png" alt="" class="wp-image-2176" srcset="https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54のコピー-1024x435.png 1024w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54のコピー-300x127.png 300w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54のコピー-768x326.png 768w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54のコピー-1536x652.png 1536w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54のコピー-2048x869.png 2048w, https://ichi-station.com/wp-content/uploads/2021/06/スクリーンショット-2021-06-02-12.14.54のコピー.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>イベントのステータスが「DELETE_COMPLETE」になっていたらVPCの画面に行き、VPCが削除されていたら完了です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>ハンズオンはここまでです。お疲れ様でした！</p>
</div></div>



<h2><span id="toc7">さいごに</span></h2>



<p>今回はAWSのCloudFormationを使ってVPCを構築する方法を解説しました。</p>



<p>CloudFormationを使用すると、インフラをコード管理できたり複製や管理が容易になったりとメリットがあります。</p>



<p>インフラ構築の機会にCloudFormationを使ってみてはいかがでしょうか？</p>



<h3><span id="toc8">お知らせ</span></h3>



<p>にほんブログ村のランキングに参加しています。よろしければ下のボタンをポチッとしていただけると嬉しいです＼(^^)／</p>



<a rel="noopener" href="https://it.blogmura.com/ranking/in?p_cid=11090436" target="_blank"><img decoding="async" src="https://b.blogmura.com/it/88_31.gif" width="88" height="31" border="0" alt="にほんブログ村 IT技術ブログへ"></a>



<h3><span id="toc9">参考資料</span></h3>



<ul><li>AWS CloudFormationの特徴<ul><li><a rel="noopener" href="https://aws.amazon.com/jp/cloudformation/features/" target="_blank">https://aws.amazon.com/jp/cloudformation/features/</a></li></ul></li><li>【CloudFormation入門】5分と6行で始めるAWS CloudFormationテンプレートによるインフラ構築<ul><li><a rel="noopener" href="https://dev.classmethod.jp/articles/cloudformation-beginner01/" target="_blank">https://dev.classmethod.jp/articles/cloudformation-beginner01/</a></li></ul></li><li>CloudFormationの全てを味わいつくせ！「AWSの全てをコードで管理する方法〜その理想と現実〜」 #cmdevio<ul><li><a rel="noopener" href="https://dev.classmethod.jp/articles/aws-all-iac/" target="_blank">https://dev.classmethod.jp/articles/aws-all-iac/</a></li></ul></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://ichi-station.com/aws-cloudformation-vpc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【AWS】RDS Proxyを使用してLambdaからAuroraに接続する</title>
		<link>https://ichi-station.com/aws-rds-proxy-lambda-aurora/</link>
					<comments>https://ichi-station.com/aws-rds-proxy-lambda-aurora/#respond</comments>
		
		<dc:creator><![CDATA[いっちー]]></dc:creator>
		<pubDate>Fri, 28 May 2021 10:23:40 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Aurora]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Lambda]]></category>
		<category><![CDATA[RDS Proxy]]></category>
		<guid isPermaLink="false">https://ichi-station.com/?p=2128</guid>

					<description><![CDATA[こんにちは。いっちー(@tetestkake_blog)です！ AWSを使っていると、LambdaからRDBへのアクセスで難儀することがあります。 それを解決するRDS ProxyがGA（一般提供）になりましたね！（ずい [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>こんにちは。いっちー(<a rel="noopener" href="https://twitter.com/tetsukake_blog" data-type="URL" data-id="https://twitter.com/tetsukake_blog" target="_blank">@tetestkake_blog</a>)です！</p>



<p>AWSを使っていると、LambdaからRDBへのアクセスで難儀することがあります。</p>



<p>それを解決するRDS ProxyがGA（一般提供）になりましたね！（ずいぶん前ですが）</p>



<p>この記事ではRDS Proxyを使用してLambdaからAuroraに接続する方法を解説します。</p>



<p>本文中や<a rel="noopener" href="https://github.com/yutaiii/blog-sample-code/tree/master/aws-rds-proxy-lambda-aurora" data-type="URL" data-id="https://github.com/yutaiii/blog-sample-code/tree/master/aws-rds-proxy-lambda-aurora" target="_blank">github</a>にサンプルプログラムも載せておいたので、実装の際の参考にしてみてください。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>RDS Proxyを使用することによりLambdaからRDSへのアクセスが改善されます！</p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8"><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">LambdaからRDSへのアクセスはアンチパターン</a></li><li><a href="#toc2" tabindex="0">RDS Proxyはコネクションをいい感じに調整してくれる</a></li><li><a href="#toc3" tabindex="0">検証用Auroraを立てる</a></li><li><a href="#toc4" tabindex="0">Auroraに接続し、データをSELECTするLambda関数を作成</a><ol><li><a href="#toc5" tabindex="0">pymysqlはLambdaエディタかimportできないので、zip化してアップロード</a></li></ol></li><li><a href="#toc6" tabindex="0">RDS Proxyを作成</a><ol><li><a href="#toc7" tabindex="0">Secrets ManagerにRDSの接続情報を設定</a></li><li><a href="#toc8" tabindex="0">RDS Proxyがシークレットを読み取ることができるIAMロールを作成</a></li><li><a href="#toc9" tabindex="0">RDS ProxyをLambda関数にアタッチ</a></li></ol></li><li><a href="#toc10" tabindex="0">RDS Proxyを経由したリクエストの確認</a></li><li><a href="#toc11" tabindex="0">まとめ</a><ol><li><a href="#toc12" tabindex="0">参考資料</a></li><li><a href="#toc13" tabindex="0">AWS学習おすすめ書籍</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">LambdaからRDSへのアクセスはアンチパターン</span></h2>



<p>LambdaからRDSへのアクセスはアンチパターンと言われています。（調べるまで知りませんでした）</p>



<p>その理由は、Lambdaはリクエストごとに起動し、その都度RDSに対してコネクションを張ろうとするため、</p>



<p><span class="marker-under-red">コネクション上限を超えたLambdaからのアクセスはエラーとなってしまうため</span>です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>Lambda起動の頻度が高いほどコネクションが多くなってしまうのですね。。。</p>
</div></div>



<h2><span id="toc2">RDS Proxyはコネクションをいい感じに調整してくれる</span></h2>



<p>そこで登場するのがRDS Proxyです。公式ドキュメントには以下のように説明があります。</p>



<blockquote class="wp-block-quote"><p>Amazon RDS Proxy を使用すると、データベース接続のプーリングと共有をアプリケーションに許可してスケーラビリティを向上させることができます。RDS Proxy は、アプリケーション接続を維持しながら、スタンバイ DB インスタンスに自動的に接続することで、データベース障害に対するアプリケーションの耐障害性を高めます。RDS Proxy を使用すると、データベースに AWS Identity and Access Management (IAM) 認証を適用し、AWS Secrets Manager に認証情報を安全に保存することもできます。</p><cite>https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/rds-proxy.html</cite></blockquote>



<p>ざっくりまとめると、RDS Proxyはコネクションをいい感じに調整してくれるサービスです。</p>



<p>今回は以下の手順でLambda + RDS Proxy + Auroraの接続を確認します。</p>



<ol><li>検証用Auroraを立てる</li><li>Auroraに接続し、データをSELECTするLambda関数を作成</li><li>RDS Proxyを作成</li><li>RDS ProxyをLambdaに追加し、同じくSELECTできるか確認する</li></ol>



<h2><span id="toc3">検証用Auroraを立てる</span></h2>



<p>まずは検証用のAuroraを立てます。検証用なのでスペックは低めです。</p>



<p>Amazon RDS &gt; データベースの作成</p>



<p>からデータベースを作成します。</p>



<p>項目は以下を設定しました。</p>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-amber-border-color"><div class="caption-box-label block-box-label box-label fab-exclamation-circle"><span class="caption-box-label-text block-box-label-text box-label-text">設定項目</span></div><div class="caption-box-content block-box-content box-content">
<ul><li>データベース作成方法を選択<ul><li>標準作成</li></ul></li><li>エンジンのオプション<ul><li>エンジンのタイプ<ul><li>Amazon Aurora</li></ul></li><li>バージョン<ul><li>Aurora (MySQL 5.7) 2.07.2</li></ul></li></ul></li><li>DB インスタンスサイズ<ul><li>db.t2.small<ul><li>今回はサンプルなので最小で</li></ul></li></ul></li></ul>



<p></p>
</div></div>



<p>作成を押してしばらく待つとRDSのステータスが「作成中」-&gt; 「利用可能」に変わったので、作成成功です。</p>



<p>DBにはサンプルテーブルを作成してサンプルの値を入れておきます。（後からLambdaで参照する際に使用）</p>



<pre class="wp-block-code"><code>CREATE TABLE `fruits` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
​
INSERT INTO `fruits` (`id`, `name`)
VALUES
	(1,'orange'),
	(2,'apple'),
	(3,'banana');</code></pre>



<h2><span id="toc4">Auroraに接続し、データをSELECTするLambda関数を作成</span></h2>



<p>AWS Lambda &gt; 関数の作成</p>



<p>からLambda関数を作成します。</p>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-amber-border-color"><div class="caption-box-label block-box-label box-label fab-info-circle"><span class="caption-box-label-text block-box-label-text box-label-text">設定項目</span></div><div class="caption-box-content block-box-content box-content">
<ul><li>ランタイム<ul><li>Python 3.8</li></ul></li><li>詳細設定<ul><li>VPC、サブネット、セキュリティグループはAuroraと同じものを指定</li></ul></li></ul>
</div></div>



<p>コードは特定のテーブルから内容をSELECTするシンプルなPythonスクリプトを作成しました。</p>



<p>lambda_function.py</p>



<pre class="wp-block-code"><code>import sys
import json
import pymysql

# rds settings
# お試しなので直書き
# secrets managerなどから値を取得する方がベター
# インスタンス直
host = "&lt;インスタンス直のエンドポイント&gt;"
user = "&lt;ユーザー名&gt;"
passwd = "&lt;パスワード&gt;"
db_name = "&lt;DB名&gt;"

def lambda_handler(event, context):
    print("start!!")
    
    try:
        conn = pymysql.connect(host=host, user=user, passwd=passwd, db=db_name, connect_timeout=5)
    except Exception as e:
        print("error")
        print(e)
    
    with conn.cursor() as cur:
        cur.execute("SELECT * FROM fruits")
        for row in cur:
            print(row)
    
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }</code></pre>



<h3><span id="toc5">pymysqlはLambdaエディタかimportできないので、zip化してアップロード</span></h3>



<p>DB接続用に使用しているpymysqlは、Lambdaのエディタからimport文を書いただけでは使えず、</p>



<p>以下の手順を踏む必要があります。</p>



<ol><li>pymysqlをローカルにインストール</li><li>zip化してLambdaにアップロード</li></ol>



<p>pymysqlをローカルにインストールするには以下のコマンドを使用します。</p>



<pre class="wp-block-code"><code># カレントにインストール
pip3 install pymysql -t .</code></pre>



<p>zipにまとめるには以下のコマンドを使用します。この際に作成したlambda_function.pyも含めます。（同じディレクトリに配置）</p>



<pre class="wp-block-code"><code># zipにまとめる
zip -r app.zip /path/to/workdir/*</code></pre>



<p>※仮にapp.zipという名前をつけてあります</p>



<p>こうしてできたzipファイルをコンソールからアップロードします。</p>



<p>Lambdaの該当関数 &gt; コードタブ &gt;  アップロード元 &gt; .zipファイル</p>



<p>からアップロードします。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="484" height="374" src="https://ichi-station.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-27-15.23.49.png" alt="" class="wp-image-2135" srcset="https://ichi-station.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-27-15.23.49.png 484w, https://ichi-station.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-27-15.23.49-300x232.png 300w" sizes="(max-width: 484px) 100vw, 484px" /></figure>



<p>「Test」ボタンから関数を実行し、以下の実行結果が表示されたらOKです。</p>



<pre class="wp-block-code"><code>start!!
(1, 'orange')
(2, 'apple')
(3, 'banana')</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>これでLambda -&gt; RDSの接続は完成です。</p>



<p>この後は、間にRDS Proxyを挟んでLambda -&gt; RDS Proxy -&gt; RDSとします。</p>
</div></div>



<h2><span id="toc6">RDS Proxyを作成</span></h2>



<p>さて、本題であるRDS Proxyを作成していきます。</p>



<p>手順は以下です。</p>



<ol><li>Secrets ManagerにRDSの接続情報を保存</li><li>RDS Proxyがシークレットを読み取ることができるIAMロールを作成</li><li>プロキシをLambda関数にアタッチ</li></ol>



<h3><span id="toc7">Secrets ManagerにRDSの接続情報を設定</span></h3>



<p>RDS ProxyがRDSにアクセスするために、Secrets ManagerにRDSの接続情報を設定します。</p>



<p>AWS Secrets Manager &gt; シークレット &gt; 新しいシークレットを保存する</p>



<p>から作成します。</p>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-amber-border-color"><div class="caption-box-label block-box-label box-label fab-info-circle"><span class="caption-box-label-text block-box-label-text box-label-text">設定項目</span></div><div class="caption-box-content block-box-content box-content">
<ul><li>シークレットの種類を選択<ul><li>RDSデータベースの認証情報</li></ul></li><li>暗号化キー<ul><li>DefaultEncryptionKey</li></ul></li><li>使用するDBの選択、ユーザー名、パスワードなどは先ほど作成したAuroraの情報を指定</li></ul>
</div></div>



<p>ARNの値は後から使用するので控えておきます。</p>



<h3><span id="toc8">RDS Proxyがシークレットを読み取ることができるIAMロールを作成</span></h3>



<p>RDS Proxyがシークレットを読み取ることができるIAMロールを作成していきます。</p>



<p>Identity and Access Management (IAM) &gt; ポリシーの作成</p>



<p>から、ロールに紐付けるポリシーを作成します。</p>



<p>以下サンプルです。</p>



<pre class="wp-block-code"><code>{
    "Version": "2012-10-17",
    "Statement": &#91;
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": &#91;
                "secretsmanager:GetResourcePolicy",
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": &#91;
                "&lt;SecretsManagerのARN&gt;"
            ]
        }
    ]
}</code></pre>



<p>次に、</p>



<p>IAM &gt; ロールの作成</p>



<p>からロールを作成します。</p>



<p>先ほど作成したポリシーをロールにアタッチします。また、以下の信頼関係を定義します。</p>



<pre class="wp-block-code"><code>{
    "Version": "2012-10-17",
    "Statement": &#91;
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>信頼関係を定義しないと、RDS Proxyの設定画面にて作成したIAMが候補に上がってこないので注意が必要です！（私は小一時間ハマりました、、、）</p>
</div></div>



<h3><span id="toc9">RDS ProxyをLambda関数にアタッチ</span></h3>



<p>RDS ProxyをLambda関数にアタッチします。いよいよですね。</p>



<p>lambda &gt; 設定 &gt; データベースプロキシ &gt; データベースプロキシの追加</p>



<p>からRDS Proxyを追加します。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="453" src="https://ichi-station.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-27-23.33.52-1024x453.png" alt="" class="wp-image-2144" srcset="https://ichi-station.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-27-23.33.52-1024x453.png 1024w, https://ichi-station.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-27-23.33.52-300x133.png 300w, https://ichi-station.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-27-23.33.52-768x340.png 768w, https://ichi-station.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-27-23.33.52-1536x680.png 1536w, https://ichi-station.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-27-23.33.52-2048x906.png 2048w, https://ichi-station.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-27-23.33.52.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-amber-border-color"><div class="caption-box-label block-box-label box-label fab-info-circle"><span class="caption-box-label-text block-box-label-text box-label-text">設定項目</span></div><div class="caption-box-content block-box-content box-content">
<ul><li>RDS DB インスタンス<ul><li>Proxyを噛ませたいDBインスタンスを指定</li></ul></li><li>シークレット<ul><li>先ほど作成したシークレットを指定</li></ul></li><li>IAM ロール<ul><li>先ほど作成したIAMロールを指定</li></ul></li><li>認証<ul><li>この例では「パスワード」を選択</li></ul></li></ul>
</div></div>



<p>作成後にはプロキシ経由のエンドポイントが払い出されるのでメモしておきます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>構築物はここまででひとまず完了です！</p>
</div></div>



<h2><span id="toc10">RDS Proxyを経由したリクエストの確認</span></h2>



<p>それでLambdaを実行してDBにアクセスできるか確認します。</p>



<p>その前にRDS Proxy経由のエンドポイントが払い出されたので、Lambdaのコードを変更します。</p>



<pre class="wp-block-code"><code># インスタンス直
# host = "&lt;インスタンス直のエンドポイント&gt;"
# proxy経由
host = "&lt;proxyのエンドポイント&gt;"</code></pre>



<p>これでLambdaを実行してみると、、、</p>



<pre class="wp-block-code"><code>(&lt;class 'pymysql.err.OperationalError'&gt;, OperationalError(2013, 'Lost connection to MySQL server during query'), &lt;traceback object at 0x7ff4d20dba40&gt;)
&#91;ERROR] UnboundLocalError: local variable 'conn' referenced before assignment</code></pre>



<p>上記のエラーが出ました。</p>



<p>こちらのエラーは何故かDBを再起動（停止→起動）したら治りました。</p>



<p>原因はわかっていません。。。（自分だけ！？）</p>



<p>繋がるようになったので、Lambdaを実行してみます。以下の結果が表示されたらOKです。</p>



<pre class="wp-block-code"><code>start!!
(1, 'orange')
(2, 'apple')
(3, 'banana')</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>PDS Proxy経由でRDSにアクセスできましたね！お疲れ様でした！</p>



<p>結局RDBを再起動する前の接続エラーの原因は不明でした。。。</p>
</div></div>



<h2><span id="toc11">まとめ</span></h2>



<p>この記事ではRDS Proxyを使用してLambdaからAuroraに接続する方法に関して紹介しました。</p>



<p>RDS Proxyを使用するとコネクション周りを自動でいい感じに調整してくれるので、</p>



<p>LambdaからRDBに接続する際の参考にしてみてください！</p>



<h3><span id="toc12">参考資料</span></h3>



<ul><li>AWS LambdaでAmazon RDS Proxyを使用する<ul><li><a rel="noopener" href="https://aws.amazon.com/jp/blogs/news/using-amazon-rds-proxy-with-aws-lambda/" target="_blank">https://aws.amazon.com/jp/blogs/news/using-amazon-rds-proxy-with-aws-lambda/</a></li></ul></li></ul>



<ul><li>Lambda から RDS にアクセスする方法 (python)<ul><li><a rel="noopener" href="https://qiita.com/aidy91614/items/92987d547c318e0483f5" target="_blank">https://qiita.com/aidy91614/items/92987d547c318e0483f5</a></li></ul></li><li>[Python] MySQLに接続してデータ操作を行う<ul><li><a rel="noopener" href="https://dev.classmethod.jp/articles/lambda-my-first-step/" target="_blank">https://dev.classmethod.jp/articles/lambda-my-first-step/</a></li></ul></li><li>[AWS]RDS Proxyを使用してにLambdaからRDSへアクセスするお話<ul><li><a rel="noopener" href="https://www.dcom-web.co.jp/lab/java/awsrds-proxy_lambda_rds" target="_blank">https://www.dcom-web.co.jp/lab/java/awsrds-proxy_lambda_rds</a></li></ul></li><li>[動画公開] RDSプロキシは未来を変えるか #devio2020<ul><li><a rel="noopener" href="https://dev.classmethod.jp/articles/20200626-abou-rds-proxy/" target="_blank">https://dev.classmethod.jp/articles/20200626-abou-rds-proxy/</a></li></ul></li></ul>



<h3><span id="toc13">AWS学習おすすめ書籍</span></h3>



<ul><li><a rel="noopener" href="https://amzn.to/3xyeoDC" data-type="URL" data-id="https://amzn.to/3xyeoDC" target="_blank">Amazon Web Services パターン別構築・運用ガイド 改訂第2版</a></li><li><a rel="noopener" href="https://amzn.to/3CisnRn" data-type="URL" data-id="https://amzn.to/3CisnRn" target="_blank">Amazon Web Services 基礎からのネットワーク＆サーバー構築　改訂3版</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://ichi-station.com/aws-rds-proxy-lambda-aurora/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AWS STSを使用して、GCPの認証情報を使ってS3にアクセスする</title>
		<link>https://ichi-station.com/gcp-aws-sts/</link>
					<comments>https://ichi-station.com/gcp-aws-sts/#respond</comments>
		
		<dc:creator><![CDATA[いっちー]]></dc:creator>
		<pubDate>Fri, 19 Mar 2021 11:54:16 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[GCP]]></category>
		<category><![CDATA[STS]]></category>
		<guid isPermaLink="false">https://ichi-station.com/?p=1729</guid>

					<description><![CDATA[こんにちは！いっちー(@tetestkake_blog)です。 今回は「AWS STSを使用して、GCPの認証情報を使ってS3にアクセスする」というテーマを解説します。 GCPをメインに開発をしている際にも、他システムと [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>こんにちは！いっちー(@<a rel="noopener" href="https://twitter.com/tetsukake_blog" target="_blank">tetestkake_blog</a>)です。</p>



<p>今回は「AWS STSを使用して、GCPの認証情報を使ってS3にアクセスする」というテーマを解説します。</p>



<p>GCPをメインに開発をしている際にも、他システムと連携する際にAWSのリソースにアクセスしたい場合があります。</p>



<p>その場合はAWS側でIAMを払い出して、それを使用してアクセスしても良いのですが、</p>



<p>AWS STSを使うとIAMを使用せずともS3へのアクセスを実現できることがわかったので、</p>



<p>今回はその方法について解説します。</p>



<div class="wp-block-cocoon-blocks-caption-box-1 caption-box block-box has-border-color has-amber-border-color"><div class="caption-box-label block-box-label box-label fab-thumbs-up"><span class="caption-box-label-text block-box-label-text box-label-text">この記事がおすすめの読者</span></div><div class="caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-hand-o-right block-box"><div class="iconlist-title"></div>
<ul><li>GCPをメインで使っているが、AWSにアクセスする必要が出てきた人</li><li>STSがどんな役割を果たすのかが気になる人</li><li>連携の際にIAMを切り出して渡したくない人</li></ul>
</div>
</div></div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>STSを使用して権限周りをよりセキュアにしていきましょう！</p>
</div></div>



<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=ichistation-22&#038;language=ja_JP&#038;o=9&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=as_ss_li_til&#038;asins=B084QQ7TCF&#038;linkId=151cb58a452672659e8892876c4177b0"></iframe>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10"><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">AWS STSとは？</a></li><li><a href="#toc2" tabindex="0">実装例</a><ol><li><a href="#toc3" tabindex="0">GCPでサービスアカウントを新規作成</a></li><li><a href="#toc4" tabindex="0">AWSでロールを作成</a></li><li><a href="#toc5" tabindex="0">GCEのインスタンスを立ててプログラムを配置</a></li></ol></li><li><a href="#toc6" tabindex="0">さいごに</a><ol><li><a href="#toc7" tabindex="0">おすすめ書籍</a></li><li><a href="#toc8" tabindex="0">お知らせ</a></li><li><a href="#toc9" tabindex="0">参考リンク</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">AWS STSとは？</span></h2>



<p>AWS STSとはAmazon Security Token Serviceの略で、</p>



<p>一時的な認証情報を発行するサービスになります。</p>



<p>一時的な認証情報には、</p>



<ul><li>アクセスキー</li><li>シークレットアクセスキー</li><li>セッショントークン</li></ul>



<p>から構成され、これらの認証情報を使って許可されたリソースへのアクセスを実現します。</p>



<p>今回はAWS STSを使用して、GCPのサービスアカウントを使用してAWSのS3にアクセスする実装例を紹介します。</p>



<h2><span id="toc2">実装例</span></h2>



<p>それでは実装例を見ていきます。サンプルプログラムも配置したので参考にしてみてください。</p>



<p>まずはプログラム配置をする前段階のサービスアカウントの準備などを行います。</p>



<h3><span id="toc3">GCPでサービスアカウントを新規作成</span></h3>



<p>ますはGCPでサービスアカウントを作成します。</p>



<p>IAMと管理 &gt; サービスアカウント &gt; サービスアカウントの作成から作成します。</p>



<p>名前などの必要な情報を入れて、権限の設定では</p>



<p>「Service Account → Service Account Token Creator」を選択します。</p>



<p>サービスアカウントを作成できたら詳細ページに移動して（サービスアカウントをクリックすると詳細ページに移動）、</p>



<p>詳細に表示されている「一意のID」の値を控えておきます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="499" src="https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.18.33-1024x499.png" alt="" class="wp-image-1736" srcset="https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.18.33-1024x499.png 1024w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.18.33-300x146.png 300w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.18.33-768x374.png 768w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.18.33.png 1174w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>この値は後ほどAWSにてロールを設定する際に使用します。</p>



<h3><span id="toc4">AWSでロールを作成</span></h3>



<p>ここからはAWSの設定です。コンソールにログインして</p>



<p>「IAM > ロール > ロールの作成」からロールを作成します。</p>



<p>ウェブIDを選択し、IDプロバイダーをGoogleにします。</p>



<p>AudienceにはGCPで作成したサービスアカウントの「一意のID」を記入します。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="499" src="https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.29.05-1024x499.png" alt="" class="wp-image-1737" srcset="https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.29.05-1024x499.png 1024w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.29.05-300x146.png 300w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.29.05-768x374.png 768w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.29.05-1536x748.png 1536w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.29.05.png 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>「次のステップ：アクセス権限」をクリックします。</p>



<p>今回はS3に配置したファイルの読み取りを確認したいので、「AmazonS3ReadOnlyAccess」を付与します。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="400" src="https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.40.47-1024x400.png" alt="" class="wp-image-1739" srcset="https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.40.47-1024x400.png 1024w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.40.47-300x117.png 300w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.40.47-768x300.png 768w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.40.47-1536x600.png 1536w, https://ichi-station.com/wp-content/uploads/2021/03/スクリーンショット-2021-03-16-23.40.47.png 2002w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>タグはオプションなので今回はスキップして、ロールを作成します。</p>



<p> ロールのARNはプログラムから使用するので控えておきます。</p>



<h3><span id="toc5">GCEのインスタンスを立ててプログラムを配置</span></h3>



<p>ようやくロール周りの設定ができたので、GCEにサーバーを立ててプログラムからアクセスします。</p>



<p>GCPのサーバーに配置するプログラムはGoで記述しました。</p>



<p>GCPサーバーにはGoやGitをインストールしましたがここでは詳細については割愛します。</p>



<p>今回はS3にサンプルファイルを設置してそれを読み取るプログラムを作成しました。</p>



<p>main.go</p>



<pre class="wp-block-code"><code>package main

import (
	"fmt"
	"io/ioutil"

	"cloud.google.com/go/compute/metadata"
	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/credentials"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/s3"
	"github.com/aws/aws-sdk-go/service/sts"
)

func main() {
	awsRoleArn := "&lt;作成したロールのARN>"

	// メタデータサーバーから値を取得
	instanceName := getMetadata("instance", "name")
	projectId := getMetadata("project", "project-id")
	projectAndInstanceName := fmt.Sprintf("%s.%s", projectId, instanceName)
	token := getMetadata("instance", "service-accounts/default/identity?format=standard&amp;audience=gcp")

	sess, err := session.NewSession(&amp;aws.Config{
		Region: aws.String("&lt;リージョン>"),
	})
	if err != nil {
		fmt.Println("NewSession Error", err)
		return
	}

	// STS Clientを作成
	svc := sts.New(sess)
	result, err := svc.AssumeRoleWithWebIdentity(&amp;sts.AssumeRoleWithWebIdentityInput{
		RoleArn:          &amp;awsRoleArn,
		RoleSessionName:  &amp;projectAndInstanceName,
		WebIdentityToken: &amp;token,
	})
	if err != nil {
		fmt.Println("AssumeRoleWithWebIdentity Error", err)
		return
	}

	accessKeyId := *result.Credentials.AccessKeyId
	secretAccessKey := *result.Credentials.SecretAccessKey
	sessionToken := *result.Credentials.SessionToken
	expiration := result.Credentials.Expiration

	fmt.Println(fmt.Sprintf("accesskey:%s, secretkey:%s, sessiontoken:%s, expiration:%v", accessKeyId, secretAccessKey, sessionToken, expiration))

	creds := credentials.NewStaticCredentials(accessKeyId, secretAccessKey, sessionToken)
	sess2, err := session.NewSession(&amp;aws.Config{
		Credentials: creds,
		Region:      aws.String("&lt;リージョン>")},
	)
	if err != nil {
		fmt.Println("NewSession with credentials Error", err)
		return
	}
	client := s3.New(sess2)

	bucketName := "&lt;バケット名>"
	objectKey := "&lt;ファイル名>"
	obj, err := client.GetObject(&amp;s3.GetObjectInput{
		Bucket: aws.String(bucketName),
		Key:    aws.String(objectKey),
	})
	if err != nil {
		fmt.Println(err)
		return
	}

	// 内容を読み込んで表示
	byteArray, _ := ioutil.ReadAll(obj.Body)
	fmt.Println(string(byteArray))
}

func getMetadata(path, parameter string) string {
	data, _ := metadata.Get(fmt.Sprintf("%s/%s", path, parameter))
	return data
}</code></pre>



<p>少しづつ解説していきます。</p>



<p>以下ではメタデータサーバーから値を取得しています。これはのちにSTSクライアントを作成する際に使用します。</p>



<pre class="wp-block-code"><code>// メタデータサーバーから値を取得
instanceName := getMetadata("instance", "name")
projectId := getMetadata("project", "project-id")
projectAndInstanceName := fmt.Sprintf("%s.%s", projectId, instanceName)
token := getMetadata("instance", "service-accounts/default/identity?format=standard&amp;audience=gcp")</code></pre>



<p>以下の部分で取得したメタデータを使用してSTSクライアントを作成しています。</p>



<pre class="wp-block-code"><code>// STS Clientを作成
svc := sts.New(sess)
result, err := svc.AssumeRoleWithWebIdentity(&amp;sts.AssumeRoleWithWebIdentityInput{
	RoleArn:          &amp;awsRoleArn,
	RoleSessionName:  &amp;projectAndInstanceName,
	WebIdentityToken: &amp;token,
})</code></pre>



<p>resultにて返ってきた値から一時的なアクセストークンやシークレットアクセストークンを取得できます。</p>



<pre class="wp-block-code"><code>accessKeyId := *result.Credentials.AccessKeyId
secretAccessKey := *result.Credentials.SecretAccessKey
sessionToken := *result.Credentials.SessionToken
expiration := result.Credentials.Expiration

fmt.Println(fmt.Sprintf("accesskey:%s, secretkey:%s, sessiontoken:%s, expiration:%v", accessKeyId, secretAccessKey, sessionToken, expiration))</code></pre>



<p>クレデンシャルはaccessKeyId、secretAccessKey、sessionTokenを作って作成します。</p>



<pre class="wp-block-code"><code>creds := credentials.NewStaticCredentials(accessKeyId, secretAccessKey, sessionToken)
sess2, err := session.NewSession(&amp;aws.Config{
	Credentials: creds,
	Region:      aws.String("&lt;リージョン>")},
)
if err != nil {
	fmt.Println("NewSession with credentials Error", err)
	return
}
client := s3.New(sess2)</code></pre>



<p>その後は通常のS3を操作する方法で実装を進めることができます。</p>



<p>最終行でS3のファイルの内容を表示しています。</p>



<pre class="wp-block-code"><code>bucketName := "&lt;バケット名>"
objectKey := "&lt;ファイル名>"
obj, err := client.GetObject(&amp;s3.GetObjectInput{
	Bucket: aws.String(bucketName),
	Key:    aws.String(objectKey),
})
if err != nil {
	fmt.Println(err)
	return
}

// 内容を読み込んで表示
byteArray, _ := ioutil.ReadAll(obj.Body)
fmt.Println(string(byteArray))</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ichi-station.com/wp-content/uploads/2021/01/icon_200x200.png" alt="いっちー" class="speech-icon-image"/></figure><div class="speech-name">いっちー</div></div><div class="speech-balloon">
<p>プログラム実行時にファイルの内容が表示されたら成功です！</p>



<p>お疲れ様でした。</p>
</div></div>



<h2><span id="toc6">さいごに</span></h2>



<p>今回は「AWS STSを使用して、GCPの認証情報を使ってS3にアクセスする」というテーマを解説しました。</p>



<p>AWS側からセキュリティなどの理由でIAMを払い出したくない時など、今回紹介したSTSを使った方法が使用できるので、その際はぜひ試してみてください！</p>



<h3><span id="toc7">おすすめ書籍</span></h3>



<p><a rel="noopener" href="https://amzn.to/3tDDShf" data-type="URL" data-id="https://amzn.to/3tDDShf" target="_blank">図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書</a></p>



<p><a rel="noopener" href="https://amzn.to/30UZMjz" data-type="URL" data-id="https://amzn.to/30UZMjz" target="_blank">Amazon Web Services 基礎からのネットワーク＆サーバー構築　改訂3版 </a></p>



<h3><span id="toc8">お知らせ</span></h3>



<p>にほんブログ村のランキングに参加しています。よろしければ下のボタンをポチッとしていただけると嬉しいです＼(^^)／</p>



<a rel="noopener" href="https://it.blogmura.com/ranking/in?p_cid=11090436" target="_blank"><img decoding="async" src="https://b.blogmura.com/it/88_31.gif" width="88" height="31" border="0" alt="にほんブログ村 IT技術ブログへ"></a><br><a href="https://it.blogmura.com/ranking/in?p_cid=11090436">にほんブログ村</a>



<h3><span id="toc9">参考リンク</span></h3>



<p><a rel="noopener" href="https://blog.serverworks.co.jp/tech/2016/05/18/sts/" data-type="URL" data-id="https://blog.serverworks.co.jp/tech/2016/05/18/sts/" target="_blank">【そんなときどうする？】別のアカウントにセキュアにアクセスしたい！　いまさらきけないSTSとは？</a></p>



<p><a rel="noopener" href="https://blog.doit-intl.com/assume-an-aws-role-from-a-google-cloud-without-using-iam-keys-55012b0fa74a" data-type="URL" data-id="https://blog.doit-intl.com/assume-an-aws-role-from-a-google-cloud-without-using-iam-keys-55012b0fa74a" target="_blank">Assume an AWS Role from a Google Cloud Instances without using IAM keys</a></p>



<p><a rel="noopener" href="https://github.com/doitintl/janus/blob/master/janus.py" data-type="URL" data-id="https://github.com/doitintl/janus/blob/master/janus.py" target="_blank">GitHub doitintl/janus</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ichi-station.com/gcp-aws-sts/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
