<?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>プログラミング | Goal-Path（ゴールパス） info</title>
	<atom:link href="https://goal-path.com/info/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>https://goal-path.com/info</link>
	<description>属人経営を仕組みへ導く構造設計パートナー</description>
	<lastBuildDate>Sat, 04 Nov 2023 02:19:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://media.goal-path.com/wp-content/uploads/2023/04/11084850/cropped-goal-path_logo-32x32.png</url>
	<title>プログラミング | Goal-Path（ゴールパス） info</title>
	<link>https://goal-path.com/info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>独学でも挫折しないプログラミング初心者の勉強法と７つのコツ</title>
		<link>https://goal-path.com/info/how_to_learn_programing/</link>
					<comments>https://goal-path.com/info/how_to_learn_programing/#respond</comments>
		
		<dc:creator><![CDATA[ともはろ@Goal-Path代表]]></dc:creator>
		<pubDate>Tue, 02 Aug 2022 10:00:00 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[ナレッジ]]></category>
		<category><![CDATA[学習]]></category>
		<guid isPermaLink="false">https://info.actpose.com/?p=1064</guid>

					<description><![CDATA[本記事は、以下のような方向けに作成しています。 プログラミングをスクールに通わず独学で勉強したいけれど、本当に出来るか不安 上記のような方のために、実際にプログラミングを独学で学習してWebサービスを立ち上げた私自信の体 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事は、以下のような方向けに作成しています。</p>



<p class="has-watery-green-background-color has-background"><span class="bold"><span class="marker-under">プログラミングをスクールに通わず独学で勉強し</span></span><span class="bold"><span class="marker-under">たいけれど、本当に出来るか不安</span></span></p>



<p>上記のような方のために、<span class="marker-under"><span class="bold">実際にプログラミングを独学で学習してWebサービスを立ち上げた私自信の体験から</span></span>、以下の内容について記事にしてますのでぜひご覧ください。。</p>



<p class="has-watery-green-background-color has-background"><span class="bold"><span class="marker-under">簡単な言語を選びコツを抑えて勉強すれば、独学でプログラミングを身につけることは可能</span></span><span class="marker-under"><span class="bold"><br>本記事で独学でも挫</span></span><span class="bold"><span class="marker-under">折せずに勉強する</span></span><span class="marker-under"><span class="bold">コツを紹介します</span></span></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">独学とプログラミングスクールとの比較</a><ol><li><a href="#toc2" tabindex="0">独学のメリット</a><ol><li><a href="#toc3" tabindex="0">学習の経費が抑えられる</a></li><li><a href="#toc4" tabindex="0">時間や場所の融通が効く</a></li><li><a href="#toc5" tabindex="0">自分で調べて解決する力が付く</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></li><li><a href="#toc10" tabindex="0">独学で勉強する7つのコツ</a><ol><li><a href="#toc11" tabindex="0">ゴールを設定する</a></li><li><a href="#toc12" tabindex="0">本での勉強は最低限にする</a></li><li><a href="#toc13" tabindex="0">プログラミング学習サイトを利用する</a><ol><li><a href="#toc14" tabindex="0">progate</a></li><li><a href="#toc15" tabindex="0">ドットインストール</a></li><li><a href="#toc16" tabindex="0">Paizaラーニング</a></li></ol></li><li><a href="#toc17" tabindex="0">インターネット上にあるコードを参考にする</a><ol><li><a href="#toc18" tabindex="0">Qiita</a></li><li><a href="#toc19" tabindex="0">Zenn</a></li><li><a href="#toc20" tabindex="0">github</a></li></ol></li><li><a href="#toc21" tabindex="0">一気に全てのコードを書こうとしない</a></li><li><a href="#toc22" tabindex="0">時間確保しスケジュールを立てる</a></li><li><a href="#toc23" tabindex="0">学習状況を発信してモチベーションを維持する</a></li></ol></li><li><a href="#toc24" tabindex="0">独学にオススメのプログラミング言語</a><ol><li><a href="#toc25" tabindex="0">Python</a></li><li><a href="#toc26" tabindex="0">Ruby</a></li><li><a href="#toc27" tabindex="0">PHP</a></li><li><a href="#toc28" tabindex="0">HTML &amp; CSS</a></li><li><a href="#toc29" tabindex="0">JavaScript</a></li></ol></li><li><a href="#toc30" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">独学とプログラミングスクールとの比較</span></h2>



<p>プログラミングを学習する上で、大きく『独学する』と『プログラミングスクールに通う』の２つの選択肢があります。ここではまず、<span class="marker-under"><span class="bold">プログラミングスクールと比較した独学のメリットとデメリットについて紹介</span></span>します。デメリットよりもメリットの方に魅力を感じる場合は、ぜひ独学でプログラミング学習を始めてみましょう。</p>



<h3 class="wp-block-heading"><span id="toc2">独学のメリット</span></h3>



<p>独学のメリットは、主に下記の３つが挙げられます。</p>



<ul class="wp-block-list">
<li>学習の経費が抑えられる</li>



<li>時間や場所の融通が効く</li>



<li>自分で調べて解決する力が付く</li>
</ul>



<h4 class="wp-block-heading"><span id="toc3">学習の経費が抑えられる</span></h4>



<p>独学のメリットの一つとして、学習するための経費が抑えられることが挙げられます。</p>



<p>プログラミングスクールは、<span class="marker-under"><span class="bold">しっかりとしたカリキュラムを作成して講師を用意してくれる半面、その相場は２０万円〜50万円程度</span></span>となります。<br>これに対して、<span class="marker-under"><span class="bold">独学であればオンラインの学習サービス、参考書籍であれば、使うとしても1〜２万円程度</span></span>で十分学習することができます。</p>



<h4 class="wp-block-heading"><span id="toc4">時間や場所の融通が効く</span></h4>



<p>２つめのメリットは、時間や場所の融通が効くことです。</p>



<p>プログラミングスクールは、決められた受講時間に行かなければならず、スクールに通うための場所的な制約もあります。これに対して、独学であれば<span class="bold"><span class="marker-under">自</span></span><span class="marker-under"><span class="bold">分のスキマ時間に場所を選ばないので、忙しい方でもず学習を進めることが可能</span></span>です。</p>



<h4 class="wp-block-heading"><span id="toc5">自分で調べて解決する力が付く</span></h4>



<p>３つめのメリットは、独学をすると自分で分からないことを調べて、解決する力が身につくことです。</p>



<p>もし、プログラミングで仕事をするようになった場合、<span class="marker-under"><strong>技術は常にアップデートされていくのでプログラミングの勉強はずっとし続けなければならない</strong></span>ものです。また、<span class="marker-under"><strong>分からないことも自分で調べて解決しなければなりません</strong></span>。<br>プログラミングスクールでは、カリキュラムや講師で手取り足取り教えてくれる反面、上記のプロセスを経験する機会は少なくなります。一方で、<span class="marker-under"><span class="bold">独学ではわからないことは自分で調べて解決する力が身につくので、現場に出た際でもこの力が役に立つ</span></span>でしょう。</p>



<h3 class="wp-block-heading"><span id="toc6">独学のデメリット</span></h3>



<p>独学のデメリットは、主に下記の３つが挙げられます。</p>



<ul class="wp-block-list">
<li>質問する相手がいない</li>



<li>学習するのに時間がかかる</li>



<li>途中で挫折しやすい</li>
</ul>



<h4 class="wp-block-heading"><span id="toc7">質問する相手がいない</span></h4>



<p>独学のデメリットとして、分からなかったときに質問する相手がいないことがあげられます。</p>



<p>プログラミングを実際に勉強していると、必ず分からないことがあります。その際に、最も早く解決策を導き出せる方法は、熟練の方に質問することです。プログラミングスクールに通う場合は講師の方に質問することができますが、<span class="marker-under"><span class="bold">独学の場合はインターネットで調査して自分で導き出さなければなりません</span></span>。</p>



<p>これに対して、<span class="marker-under"><span class="bold">本記事では学習する上での教材の選び方、分からないことに対する調査の仕方に関するコツを紹介していきます。</span></span></p>



<h4 class="wp-block-heading"><span id="toc8">学習するのに時間がかかる</span></h4>



<p>独学は、プログラミングスクールと比較すると学習する時間がかかります。</p>



<p>プログラミングスクールでは上述したように質問する相手がいるので、分からないことにぶつかった際にもスムーズに進めることが出来ますが、独学では自分で調べて、調べた内容を理解して、ようやく解決できるので、<span class="marker-under"><span class="bold">理解は深まる一方で時間がかかります</span></span>。</p>



<p>また、独学の場合カリキュラムのようなものもないので、<span class="bold"><span class="marker-under">学習の進め方が良くない場合は学習時間がかかってしまう</span></span>でしょう。</p>



<p>これに対して、<span class="marker-under"><span class="bold">本記事では独学する上での学習の進め方のコツについて紹介</span></span>していきます。</p>



<h4 class="wp-block-heading"><span id="toc9">途中で挫折しやすい</span></h4>



<p>独学のデメリットとして、学習している途中で挫折しやすいことが挙げられます。</p>



<p>プログラミングスクールでは決められた受講時間に必ず行くことになるので、自動的に学習を継続させることができます。一方で、独学の場合は<span class="marker-under"><span class="bold">自分で学習するスケジュールや時間をコントロールしなければならず、また継続するためのモチベーションを維持しなければ、途中で挫折してしまうリスクがあります</span></span>。</p>



<p>これに対して、<span class="marker-under"><span class="bold">本記事では簡単に独学できる言語やモチベーションを維持するコツについて紹介</span></span>していきます。</p>



<h2 class="wp-block-heading"><span id="toc10">独学で勉強する7つのコツ</span></h2>



<p>ここでは、独学で勉強していくためのコツを７つ紹介します。</p>



<ul class="wp-block-list">
<li>ゴールを設定する</li>



<li>本での勉強は最低限にする</li>



<li>プログラミング学習サイトを利用する</li>



<li>インターネット上にあるコードを参考にする</li>



<li>一気に全てのコードを書こうとしない</li>



<li>時間確保しスケジュールを立てる</li>



<li>学習状況を発信してモチベーションを維持する</li>
</ul>



<h3 class="wp-block-heading"><span id="toc11">ゴールを設定する</span></h3>



<p>プログラミングを勉強する際に、とにかく勉強する、というのが一番ダメです。プログラミングで勉強しなければならないことは、本当に無限に近いぐらい多いからです。開始する前には、必ずゴールを設定しましょう。ゴールは人によって異なりますが、例えば以下のようなものとなります。</p>



<ul class="has-watery-green-background-color has-background wp-block-list">
<li><span class="bold">ブログやホームページを作る</span></li>



<li><span class="bold">Webアプリケーションやモバイルアプリケーションを作る</span></li>



<li><span class="bold">ゲームを作る</span></li>



<li><span class="bold">業務効率化するための自動化ソフトをつくる</span></li>



<li><span class="bold">転職やフリーランスとして働くためのポートフォリオを作る</span></li>
</ul>



<p>上記のようなゴールを設定して、<span class="marker-under"><span class="bold">ゴールを達成するために必要なプログラミング言語を選び、必要な知識だけを勉強するようにしましょう</span></span>。そうすることで、最短で必要なスキルを身につけることが出来ます。<br>また、<span class="marker-under"><span class="bold">本記事ではゴールを達成するために初心者にオススメなプログラミング言語をこの後で紹介</span></span>してますので、ぜひ最後までお読みください。</p>



<h3 class="wp-block-heading"><span id="toc12">本での勉強は最低限にする</span></h3>



<p>勉強するとなると、本を買って本で学んだ内容をノートにとって、といったような勉強を思い浮かべがちですが、プログラミングの学習にとっては本で学ぶより<span class="marker-under"><span class="bold">とにかく手を動かしてコードを書くことが大事</span></span>です。<br>それでも本当に最初の最初は、学ばなければならない<span class="marker-under"><span class="bold">全体像を掴むために本を読むことも有効</span></span>です。本で勉強する際には、<span class="bold"><span class="marker-under">覚える、</span></span><span class="marker-under"><span class="bold">理解する意識は最低限にしてスピードを優先</span></span>させましょう。理解度としては40％ぐらい、『ふ〜ん。こういうことをするんだ』ぐらいで大丈夫なので、最短で全体像を掴むように本を使って勉強しましょう。</p>



<h3 class="wp-block-heading"><span id="toc13">プログラミング学習サイトを利用する</span></h3>



<p>プログラミングはとにかく手を動かして覚えることが大切ですが、実はその前に<span class="marker-under"><span class="bold">ローカルPC上にプログラミングが出来る環境を用意すること自体も難しく、ここで挫折する人も多い</span></span>です。プログラミングは、『こう書いたらこう動く』という体感が面白いところであり、環境構築ではそれを実感する手前の部分なので、これも挫折してしまう要因となります。</p>



<p>そこで、まずWeb上でプログラミングをすることが出来るプログラミング学習サイトを利用しましょう。<span class="marker-under"><span class="bold">プログラミング学習サイトを利用すれば、ローカルPC上に環境構築する必要なくプログラミングのコードを記述し動作させることが可能</span></span>です。</p>



<p>ここでは、プログラミングサイトとして以下の3つを紹介します。</p>



<h4 class="wp-block-heading"><span id="toc14">progate</span></h4>



<p>progateは、HTML、CSS、JavaScript、Ruby、Python、PHPなどWeb開発に関する言語を学習できるプログラミング学習サイトです。講義はすべてスライド形式となり、自分のペースで進められることが特徴です。内容が比較的簡単なため、初心者の取っ掛かりとしては非常に良いサービスです。</p>




<a rel="noopener noreferrer" target="_blank" href="https://prog-8.com/" title="Progate(プロゲート) | Learn to code, learn to be creative." class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://prog-8.com/images/ogp/default.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Progate(プロゲート) | Learn to code, learn to be creative.</div><div class="blogcard-snippet external-blogcard-snippet">Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://prog-8.com/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">prog-8.com</div></div></div></div></a>



<h4 class="wp-block-heading"><span id="toc15">ドットインストール</span></h4>



<p>ドットインストールは、Web開発に関する言語の他に、Unityによるゲーム制作やKotlinやSwiftといったスマホアプリ開発用の言語も学べるプログラミング学習サイトです。短い動画によって学習をすすめることができることが特徴です。</p>




<a rel="noopener noreferrer" target="_blank" href="https://dotinstall.com/" title="ドットインストール" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://dotinstall.com/img/og-image.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">ドットインストール</div><div class="blogcard-snippet external-blogcard-snippet">3分動画で初心者や独学の方でも無理なく勉強が続くプログラミング学習サービスです。Web制作の基礎から子供向けのゲーム制作レッスン、さらにシステム開発に使われるPHP、Ruby、Pythonなどの入門レッスンまで幅広く言語を体験できます。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://dotinstall.com/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">dotinstall.com</div></div></div></div></a>



<h4 class="wp-block-heading"><span id="toc16">Paizaラーニング</span></h4>



<p>Paizaラーニングは、エンジニアの就職・転職のサポートサイトである「Paiza」が提供しているプログラミング学習サイトです。言語は、Web開発系の言語、機械学習やデータサイエンスに強いPython、現場に根強く人気のあるJavaやC#など、幅広く学ぶことができます。</p>




<a rel="noopener noreferrer" target="_blank" href="https://paiza.jp/works" title="プログラミング入門に最適！初心者でも楽しく学べる動画学習サービス【paizaラーニング】" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://paiza.jp/images/ogp/og_paiza_works.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">プログラミング入門に最適！初心者でも楽しく学べる動画学習サービス【paizaラーニング】</div><div class="blogcard-snippet external-blogcard-snippet">paizaラーニングはプログラミング初心者のための動画学習サービスです。1回3分の分かりやすい動画と演習課題で基礎からしっかり理解できます。面倒な環境構築も不要、ブラウザだけで学習が始められます。無料で学べる講座もたくさん！プログラミングに...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://paiza.jp/works/mobile/top" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">paiza.jp</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc17">インターネット上にあるコードを参考にする</span></h3>



<p>本やプログラミング学習サイトで一通りの基礎を学習したら、今度は<span class="bold"><span class="marker-under">ゴールを達成するために実際にコードを書いていきます</span></span>。この際、ゼロからコードを書こうとすると何から手をつけて良いか分からなくなってしまうでしょう。しかし、インターネット上にもゴールとしているアウトプットに比較的近い内容のソースコードがほとんどの場合はあります。<span class="bold"><span class="marker-under">効率的にゴールに近づくためには、他の人が先人を切って書いてくれたソースコードを真似することから始めましょう</span></span>。</p>



<p>ここでは、先輩が書いたソースコードを閲覧できるサイトとして、以下の3つを紹介します。</p>



<h4 class="wp-block-heading"><span id="toc18">Qiita</span></h4>



<p>Qiitaは、エンジニアに関する知識を記録・共有するためのサービスです。 プログラミングに関するTips、ノウハウ、だけでなく、ソースコードも記事の中に公開されているケースが多いです。また、プログラミングのソースコードだけではなく、環境構築の方法や周辺の知識についても書かれている記事が多くあるので、特殊な内容でもまずQiitaで検索してみることをオススメします。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/" title="エンジニアに関する知識を記録・共有するためのサービス - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://cdn.qiita.com/assets/qiita-ogp-3b6fcfdd74755a85107071ffc3155898.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">エンジニアに関する知識を記録・共有するためのサービス - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Qiitaは、エンジニアに関する知識を記録・共有するためのサービスです。 プログラミングに関するTips、ノウハウ、メモを簡単に記録 &amp; 公開することができます。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>



<h4 class="wp-block-heading"><span id="toc19">Zenn</span></h4>



<p>Zennもエンジニアが技術・開発についての知見を共有するためのWebサービスです。Qiitaと比較すると、Zennは一部有料の記事があるため、より体系的な、もしくは専門的なソースコードとその解説も存在します。もしQiitaで見つからなければ、Zennの方でも調べてみましょう。</p>




<a rel="noopener noreferrer" target="_blank" href="https://zenn.dev/" title="Zenn｜エンジニアのための情報共有コミュニティ" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://static.zenn.studio/images/logo-only-dark.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Zenn｜エンジニアのための情報共有コミュニティ</div><div class="blogcard-snippet external-blogcard-snippet">Zennはエンジニアが技術・開発についての知見をシェアする場所です。本の販売や、読者からのバッジの受付により対価を受け取ることができます。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://zenn.dev" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">zenn.dev</div></div></div></div></a>



<h4 class="wp-block-heading"><span id="toc20">github</span></h4>



<p>githubとは元々はバージョン管理をするためのWebサービスです。バージョン管理をするためにソースコードをgithub上にアップロードする流れになっているため、公開しているものであれば、他の人が書いたソースコードを見ることが出来ます。最初はgithubは難しいと感じるかもしれませんが、少しプログラミングになれてきた段階であれば、周辺のファイルごとソースコードを見ることができ、非常に多くのことを学ぶことが出来るためオススメです。</p>




<a rel="noopener noreferrer" target="_blank" href="https://github.co.jp/" title="GitHub Japan" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://github.githubassets.com/images/modules/open_graph/github-logo.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">GitHub Japan</div><div class="blogcard-snippet external-blogcard-snippet">GitHubはソフトウェア開発のプラットフォームです。GitHubには8000万件以上ものプロジェクトがホスティングされており、2700万人以上のユーザーがプロジェクトを探したり、フォークしたり、コントリビュートしたりしています。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://github.co.jp/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">github.co.jp</div></div></div></div></a>



<p>また、githubで検索する際には以下の記事が参考になりますのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://style.potepan.com/articles/33031.html" title="GitHubの検索機能を活用してファイルやソースコードを探す方法 | ポテパンスタイル" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://style.potepan.com/wp-content/themes/potepan-style/include/head/img.php?text=&#039;GitHubの検索機能を活用してファイルやソースコードを探す方法&#039;" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">GitHubの検索機能を活用してファイルやソースコードを探す方法 | ポテパンスタイル</div><div class="blogcard-snippet external-blogcard-snippet">GitHubでは、プロジェクトやソースファイルをローカルにダウンロードしてこなくても、ブラウザ上の検索機能を使ってファイルやソースコードを探すことが可能です。本記事では、GitHub初心者の方向けに、様々な検索機能の利用方法をご紹介していき</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://style.potepan.com/articles/33031.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">style.potepan.com</div></div></div></div></a>



<p><br>さらに、どうしても真似したいソースコードが見つからない場合は、自分だで悩むのではなく質問が出来るサービスなどを利用しましょう。プログラミングの質問が出来るサービスとしては、下記の『teratail』がオススメです。</p>




<a rel="noopener noreferrer" target="_blank" href="https://teratail.com/" title="teratail【テラテイル】｜ITエンジニア特化型Q&amp;Aサイト" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://teratail.com/img/ogpImages/imgFacebookShare.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">teratail【テラテイル】｜ITエンジニア特化型Q&Aサイト</div><div class="blogcard-snippet external-blogcard-snippet">teratail（テラテイル）はプログラミングに特化したQ&amp;Aサイトです。実現したい機能や作業中に発生したエラーについて質問すると、他のエンジニアから回答を得られます。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://teratail.com" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">teratail.com</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc21">一気に全てのコードを書こうとしない</span></h3>



<p>ゴールのアウトプットを作る際のコツは、一気に全てのコードを書こうとしないことです。<span class="marker-under"><span class="bold">一つのアウトプットは、小さな機能の組み合わせで出来ます。</span></span><br><span class="marker-under"><span class="bold">この小さな機能を小さなゴールとして細分化してき、小さなゴール</span><span class="bold">の</span><span class="bold">一つ一つを達成することで最終的なゴールのアウトプットを仕上げていく</span></span>イメージでコードを書いていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc22">時間確保しスケジュールを立てる</span></h3>



<p>独学では、プログラミングスクールのように時間が決まっておらず、カリキュラムが用意されていないため、学習を継続させるためには時間の確保とスケジュールを立てることが重要となります。</p>



<p>時間の確保ですが、毎日必ず割り当てられる時間を決めましょう。プログラミング学習は何百時間もかかる長期戦になるので、<span class="marker-under"><span class="bold">勉強する仕組みを生活の中に組み込んでコツコツ進めることが効率的</span></span>となります。朝起きた後や、仕事終わりの<span class="marker-under"><span class="bold">１時間でも良いので、無理のない時間で確実に出来るように時間を確保</span></span>しましょう。</p>



<p>また、<span class="bold"><span class="marker-under">１日の中で確保した時間の中で小さなゴールを達成できるようにスケジュールを立てましょう</span></span>。例えば、Webサービスを作成することをゴールとしていのならば、『ログインページのHTMLを書く』や『一つの関数を作成する』ぐらい小さな内容で良いです。<span class="marker-under"><span class="bold">小さなゴールを設定することで毎日達成感を得る上に、着実に最終ゴールに近づくことが出来る</span></span>でしょう。</p>



<h3 class="wp-block-heading"><span id="toc23">学習状況を発信してモチベーションを維持する</span></h3>



<p>独学では学習するモチベーションを継続させることが大事になりますが、オススメの方法は学習状況を発信することです。発信する媒体は、ブログやSNS、何でも構いませんが、<span class="marker-under"><span class="bold">他の人からフィードバックを受けやすい媒体を選ぶことがオススメ</span></span>です。何もない方は、twitterがオススメですので、まずアカウントを作ってみてツイートしてみてください。いいねや返信をもらうと、日々のモチベーションの継続に繋がります。<span class="bold"><span class="marker-under">モチベーションを継続させるために、学習した内容は他の人に発信することを心がけ、発信する時間も十分に確保</span></span>しましょう。</p>



<h2 class="wp-block-heading"><span id="toc24">独学にオススメのプログラミング言語</span></h2>



<p>学習する言語は、目標を設定し作りたいものが決まったら選びましょう。ここでは、初心者でも比較的簡単に学習できる言語について紹介します。</p>



<ul class="wp-block-list">
<li>Python</li>



<li>Ruby</li>



<li>PHP</li>



<li>HTML &amp; CSS</li>



<li>JavaScript</li>
</ul>



<h3 class="wp-block-heading"><span id="toc25">Python</span></h3>



<p>Pythonは<span class="bold"><span class="marker-under">機械学習やAI</span></span>を活用したアプリケーションの開発や<span class="marker-under"><span class="bold">Webサービス</span></span>の開発に適しているプログラミング言語です。少ないコードで簡潔にプログラムを書くことができるため、初心者でも簡単に学習することが出来ます。また、<span class="marker-under"><span class="bold">専門的なライブラリが豊富</span></span>にあるため色々なことが出来ます。そのため、どんな制作物を作る場合でも、とりあえず選んでおいて間違いない言語です。</p>



<h3 class="wp-block-heading"><span id="toc26">Ruby</span></h3>



<p>RubyはWebアプリケーションフレームワークであるRuby on Railsがあり、<span class="marker-under"><span class="bold">Webサービスの開発</span></span>でよく使われている言語です。<strong>Ruby on Rails</strong>の特徴として、短期間・低コストでWEBアプリの機能開発が可能であり、学習難易度が低いため初心者でも簡単に学べる言語となっています。また、多くの企業で採用されており、<span class="marker-under"><span class="bold">転職やフリーランス、副業の案件数が多い</span></span>のも特徴なので、エンジニアとして働き始めたい方にはオススメの言語です。</p>



<h3 class="wp-block-heading"><span id="toc27">PHP</span></h3>



<p>PHPも主に<span class="marker-under"><span class="bold">Webサービス開発</span></span>で使われており、WEBサイト制作に必須の言語・HTMLをコード中に埋め込んでWebアプリケーションを作成できることが特徴の言語です。こちらも、学習難易度が低いため初心者でも簡単に学べる言語です。また、<span class="marker-under"><span class="bold">ブログなどを作る際に最も使われている</span><b><span class="bold">コンテンツマネジメントシステム・</span></b><span class="bold">WordPressもPHPで開発されたシステム</span></span>です。<span class="marker-under"><span class="bold">ブログ作成やWordPressのカスタマイズ</span></span>などが目的の場合はPHPを選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc28">HTML &amp; CSS</span></h3>



<p>HTMLはWebページを作成するための言語、CSSとはWebページの文字の色や大きさ、背景、配置といったスタイル（見た目）を設定する言語です。これらは厳密にはプログラミング言語というわけではありませんが、<span class="marker-under"><span class="bold">Webページを作成するためには絶対に避け通れない言語</span></span>となっています。難易度的にも簡単ですので、Webページを作成する方は必ずHTMLとCSSを学習しましょう。</p>



<h3 class="wp-block-heading"><span id="toc29">JavaScript</span></h3>



<p>JavaScriptは、クリックした際の動作をつけたり、文字や画像やの表示・非表示を切り替えたり、動画を再生したりと、<span class="marker-under"><span class="bold">Webページ上で動作を出来るようにするためのプログラミング言語</span></span>です。他のプログラミング言語で「Java」という言語がありますがこれとは全く異なる言語です。JavaScriptは使用している人の母数が多いためインターネット上にも情報も多く出回っており、初心者の方でも学習しやすい言語です。<span class="marker-under"><span class="bold">Webサイトに動きのある機能を持たせたいという方</span></span>は、JavaScriptを学びましょう。</p>



<h2 class="wp-block-heading"><span id="toc30">さいごに</span></h2>



<p>これで、独学でも挫折しないためのプログラミング勉強法と５つのコツについての紹介を終わります。</p>



<p>プログラミングを独学する上でゴールを決めることやスケジュール立てることが重要となりますが、これらを管理する上でタスク管理ツールを活用することが有効となります。そして、学習用のタスク管理ツールとして、<span class="bold"><span class="marker-under">私が運営するアプリケーション『Goal-Path』をおすすめします</span></span>。</p>



<p><span class="fz-24px"><span class="bold">Goal-Pathをおすすめするポイント</span></span></p>



<p class="has-watery-green-background-color has-background"><span class="bold">１．やること、スケジュールを見える化</span><br>   ガントチャートとToDoボードによって小さなゴールとやるべきことがひと目で分かります。<br><span class="bold">２．自動でスケジュール作成</span><br>   スケジュール作成や日程調整を自動化することで時間を削減します。<br><span class="bold">３．タスク完了時のSNS投稿機能</span><br>   タスク完了時に、その内容をSNSに投稿することができ、モチベーションを継続できます。</p>



<p>これらの機能が<span class="marker-under"><span class="bold">無料で使用</span></span>できますので興味がある方はぜひ以下のリンクからご利用してみてください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/" title="Goal-Path | 活躍する人を育てるプラットフォーム" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/image/goal-path_twitter_card_image.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Goal-Path | 活躍する人を育てるプラットフォーム</div><div class="blogcard-snippet external-blogcard-snippet">Goal-Path(ゴールパス)では、簡単に企業研修やオンライン講座をつくることができます。教育コンテンツとプロセス効率化ツールを掛け合わせた最新のシステムで、活躍する人を育てるプラットフォームです。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>



<p>また、Goal-Pathは成功したスケジュールを他の誰かに販売できるプラットフォームとなっています。</p>



<p>私が<span class="marker-under"><span class="bold">Webアプリケーションを作成するまでに学んだprogateでの学習スケジュール</span></span>を下記にて紹介しておりますので、興味のある方はぜひご利用ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/3" title="Pythonで開発するWEBアプリの基礎知識を最短で取得するプラン(HTML + CSS + Python)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_phtyon_html_css_basic.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Pythonで開発するWEBアプリの基礎知識を最短で取得するプラン(HTML + CSS + Python)</div><div class="blogcard-snippet external-blogcard-snippet">このプランによって、Python、HTML、CSSのプログラミング基礎を学習して、WEBアプリ開発の基礎を身に付けることが出来ます。またこのプランは、progateの学習コースを1ヶ月以内(有料プランの月額分)で、お金をかけずに最短•最速で...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/3" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>



<p>また、実際に<span class="marker-under"><span class="bold">Webアプリケーションを作成する手順</span></span>についても下記にて紹介しておりますので、Webアプリを学習のゴールにしたい方はこちらも合わせてぜひご覧ください！</p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/1" title="【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_web_application_docker_django_aws_nginx_mysql_Y0IZtD9.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)</div><div class="blogcard-snippet external-blogcard-snippet">このプランによって、Django x Nginx x mysqlのWEBアプリをdockerコンテナ環境でイチから作成し、AWSにてインターネットに公開することが出来るようになります。このプランは、初心者・独学でもWEBアプリの作成・公開ま...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/1" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>
]]></content:encoded>
					
					<wfw:commentRss>https://goal-path.com/info/how_to_learn_programing/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AWSのRDSでMySQLのデータベースを無料枠内で作成する方法</title>
		<link>https://goal-path.com/info/programing-how-to-use-rds/</link>
					<comments>https://goal-path.com/info/programing-how-to-use-rds/#respond</comments>
		
		<dc:creator><![CDATA[ともはろ@Goal-Path代表]]></dc:creator>
		<pubDate>Thu, 21 Jul 2022 11:00:00 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">https://info.actpose.com/?p=833</guid>

					<description><![CDATA[本記事は、以下の目的で作成しています。 目次 AWSのRDSとは？特徴とメリットRDSとは？RDSの特徴とメリット管理性安定したパフォーマンス可用性と耐久性スケーラビリティ低コストセキュリティDBエンジンについてRDSの [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事は、以下の目的で作成しています。</p>



<ul class="has-watery-green-background-color has-background wp-block-list">
<li><span class="marker-under"><span class="bold">AWSのRDSについて、特徴と使い方が分かる</span></span></li>



<li><span class="bold"><span class="marker-under">RDSでMySQLのデータベースを作成して、EC2と接続する方法が分かる</span></span></li>
</ul>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">AWSのRDSとは？特徴とメリット</a><ol><li><a href="#toc2" tabindex="0">RDSとは？</a></li><li><a href="#toc3" tabindex="0">RDSの特徴とメリット</a><ol><li><a href="#toc4" tabindex="0">管理性</a></li><li><a href="#toc5" tabindex="0">安定したパフォーマンス</a></li><li><a href="#toc6" tabindex="0">可用性と耐久性</a></li><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><li><a href="#toc10" tabindex="0">DBエンジンについて</a></li></ol></li><li><a href="#toc11" tabindex="0">RDSのデータベースサーバーを作成する</a><ol><li><a href="#toc12" tabindex="0">サブネットグループを作成する</a></li><li><a href="#toc13" tabindex="0">データベースを新規作成する</a></li></ol></li><li><a href="#toc14" tabindex="0">EC2とRDS上のMySQLのデータベースを接続する</a><ol><li><a href="#toc15" tabindex="0">EC2インスタンスを準備する</a></li><li><a href="#toc16" tabindex="0">セキュリティグループを設定する</a></li><li><a href="#toc17" tabindex="0">MySQLのデータベースと接続する</a></li></ol></li><li><a href="#toc18" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">AWSのRDSとは？特徴とメリット</span></h2>



<p>ここでは、RDSとはなにか？そして、RDSの特徴とメリット、データベースについて解説していきます。</p>



<h3 class="wp-block-heading"><span id="toc2">RDSとは？</span></h3>



<p>AWSはAmazon Web Serviceの略でAmazonによって提供されるクラウドコンピューティングを使用したサービスです。<span class="marker-under">RDS（Relational Database Service）は、このAWSが提供しているデータベースサービス</span>の一つです。データベースサーバーとしてRDSを使用することで、データ通信の高速化、障害発生に対する耐久性の確保、容易なサーバー追加による拡張が可能となります。</p>



<h3 class="wp-block-heading"><span id="toc3">RDSの特徴とメリット</span></h3>



<p>RDSには、以下のような特徴とメリットがあります。</p>



<ul class="wp-block-list">
<li>管理性</li>



<li>安定したパフォーマンス</li>



<li>可用性と耐久性</li>



<li>スケーラビリティ</li>



<li>低コスト</li>



<li>セキュリティ</li>
</ul>



<p>それぞれ見ていきましょう。</p>



<h4 class="wp-block-heading"><span id="toc4">管理性</span></h4>



<p>ハードウェアのサーバの中でデータベースを作成する場合、サーバーとなるマシンを手配して、設営して、その後に設定をして、といった工程が発生する為、サーバーを構築するまでにある程度の時間を要します。<br><span class="marker-under">RDSインスタンスは、AWSのGUIからDBエンジンの選択やパラメータを設定することで簡単に作成できます。また、数分のうちにデータベースインスタンスを作成しアプリケーションを接続することが可能</span>です。インスタンスの容量や設定を変更したい場合でも、同様にAWSのGUIから簡単に更新できます。</p>



<h4 class="wp-block-heading"><span id="toc5">安定したパフォーマンス</span></h4>



<p>RDS は、更新用データベース（マスター）からレプリケーションされた参照専用のデータベースを複数用意します。これによって<span class="marker-under">大量の読み込みリクエストが来た場合でもパフォーマンスを落とさずに安定、かつ高速に処理することが出来ます</span>。</p>



<h4 class="wp-block-heading"><span id="toc6">可用性と耐久性</span></h4>



<p>RDSは、<span class="marker-under">複数のAZに設置することで、可用性と耐久性を確保することが可能</span>です。AZ（アベイラビリティゾーン）とは、冗長的な電力源、ネットワーク、接続機能を備えるために、AWS リージョン内でそれぞれ切り離されたデータセンターのことです。複数のAZにRDSを配置することで、１つのAZに障害が発生した場合でも他のAZが生きている状態を作リ出すことができます。</p>



<h4 class="wp-block-heading"><span id="toc7">スケーラビリティ</span></h4>



<p>RDSでは、<span class="marker-under">ストレージ要件の拡大に合わせて、簡単にストレージの追加・拡張ができます</span>。またストレージを追加する際には、データベースのダウンタイムの発生なしで安心して拡張できます。</p>



<h4 class="wp-block-heading"><span id="toc8">低コスト</span></h4>



<p><span class="marker-under">コストは従量課金制</span>となっています。スペックに応じて、使った分だけ費用を支払う形になるので、<span class="marker-under">イニシャルの費用、ランニング費用を共に抑える事が可能</span>です。また、<span class="marker-under">RDSでは１年間の無料利用枠が存在</span>します。利用できるスペックは限定されていますが、初心者の方は無料でお金の心配をすることなく利用することも可能です。</p>



<h4 class="wp-block-heading"><span id="toc9">セキュリティ</span></h4>



<p>RDSでは、<span class="marker-under">VPCやサブネット、セキュリティグループを適切に設定することで高いセキュリティを確保</span>することが出来ます。また、KMSやAWS CloudHSMといった<span class="marker-under">他の暗号化サービスを使うことで、さらにセキュリティを向上</span>させることも可能です。</p>



<h3 class="wp-block-heading"><span id="toc10">DBエンジンについて</span></h3>



<p>RDSでは、DB（データベース）エンジンとして複数から選択することが可能です。具体的には以下から選択することが可能です。</p>



<ul class="wp-block-list">
<li><span class="bold">Oracle</span></li>



<li><span class="bold">MySQL</span></li>



<li><span class="bold">MariaDB</span></li>



<li><span class="bold">SQL Server</span></li>



<li><span class="bold">PostgreSQL</span></li>



<li><span class="bold">Amazon Aurora</span></li>
</ul>



<p>本記事では、DBエンジンとして<strong>MySQL&nbsp;5.7</strong>を選択します。<br>理由としては、<span class="marker-under">MySQLは世界でもっとも利用されているとても一般的なデータベース管理システムであり、初心者の方でも扱いやすい</span>からです。<br>また、<span class="marker-under">MySQLのDBエンジンはAWSの無料利用枠内で使用することができ、コストを抑えることが出来る</span>からです。</p>



<h2 class="wp-block-heading"><span id="toc11">RDSのデータベースサーバーを作成する</span></h2>



<p>RDSのデータベースサーバーを作成していきます。はじめに、AWSにログインして右上のメニューから、「アジアパシフィック（東京）」のリージョンを選択しておいてください。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/08050838/selectRegion.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/08050838/selectRegion.png" alt="AWSで東京リージョンを選択する" style="aspect-ratio:301/520"/></a></figure>



<h3 class="wp-block-heading"><span id="toc12">サブネットグループを作成する</span></h3>



<p>RDSインスタンスを作成するにあたり、サブネットをRDSインスタンスに割り当てるためにはサブネットグループを作成する必要があります。<br><span class="marker-under">サブネットとはAWSユーザー専用のプライベートなクラウド環境であるVPC（Virtual Private Cloud）において、IPアドレスをブロックごとに分割したネットワーク群</span>です。<br>まだ、RDS用のサブネットを作成していない方は、下記の記事を参照して作成してください。</p>




<a href="https://goal-path.com/info/programing-aws-vpc-setting/" title="【初心者向け】AWSのVPCとは？ALB+EC2+RDSの基本構成での設定方法" 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 loading="lazy" decoding="async" width="160" height="90" src="https://media.goal-path.com/wp-content/uploads/2022/07/12115736/programing-aws-vpc-setting-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/12115736/programing-aws-vpc-setting-160x90.jpg 160w, https://media.goal-path.com/wp-content/uploads/2022/07/12115736/programing-aws-vpc-setting-300x169.jpg 300w, https://media.goal-path.com/wp-content/uploads/2022/07/12115736/programing-aws-vpc-setting-768x432.jpg 768w, https://media.goal-path.com/wp-content/uploads/2022/07/12115736/programing-aws-vpc-setting-120x68.jpg 120w, https://media.goal-path.com/wp-content/uploads/2022/07/12115736/programing-aws-vpc-setting-320x180.jpg 320w, https://media.goal-path.com/wp-content/uploads/2022/07/12115736/programing-aws-vpc-setting-376x212.jpg 376w, https://media.goal-path.com/wp-content/uploads/2022/07/12115736/programing-aws-vpc-setting.jpg 1000w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】AWSのVPCとは？ALB+EC2+RDSの基本構成での設定方法</div><div class="blogcard-snippet internal-blogcard-snippet">AWSのVPCを、ALB+EC2+RDSの基本構成において、セキュリティを確保しつつ構築する方法について紹介します。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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/info" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">goal-path.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.07.20</div></div></div></div></a>



<p>サブネットを作成したら、サブネットグループを作成していきます。<br>まず、AWSのコンソール画面から「RDS」と検索して、RDSのコンソール画面に移動します。画面左のメニューから「サブネットグループ」を選択し、ルートテーブル一覧画面の右上にある「DBサブネットグループを作成」をクリックするとサブネットグループの作成ページに移動します。<br>下記図の「サブネットグループの詳細」において、「名前」と「説明」に、「app-rds-subnet-group」と入力し、「VPC」は作成したサブネットを含むVPCを選択します。</p>



<figure class="wp-block-image aligncenter size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/20064222/setSubnetGroupDetails.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/20064222/setSubnetGroupDetails.png" alt="AWSのRDSにおいてサブネットグループの詳細を設定する"/></a></figure>



<p>「サブネットを追加」に対して、「アベイラビリティゾーン」には複数のアベイラビリティゾーンを選択し、サブネットもそれぞれのアベイラビリティゾーンに対応したRDS用のサブネットを選択します。例として、本記事では下記図のように設定します。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/20064212/setSubnetGroupSubnet.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/20064212/setSubnetGroupSubnet.png" alt="AWSのRDSにおいてサブネットグループにサブネットを追加する" style="aspect-ratio:535/421"/></a></figure>



<p>最下にある「作成」をクリックし、サブネットグループを作成します。下記の画像のようにリストアップされれば、サブネットグループの作成は完了です。</p>



<h3 class="wp-block-heading"><span id="toc13">データベースを新規作成する</span></h3>



<p>RDSのデータベースを新規作成していきます。RDSのコンソール画面で、「データベースの作成」をクリックすると、データベース作成ページに移動します。「データベースの作成方法」は、標準作成（デフォルト）を選択、「エンジンのオプション」について、エンジンのタイプは「MySQL」、バージョンはMysql 5.7系を選択します。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/20064302/RDSsetEngine.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/20064302/RDSsetEngine.png" alt="AWSのRDSにおいてDBエンジンを選択する" style="aspect-ratio:525/509"/></a></figure>



<p>続けて、「テンプレート」は「無料利用枠」を選択します。「設定」について、任意のデータベース名、データベースユーザー名、パスワードを入力します。下記画像では例として、データベース名とユーザー名を共に「test」としています。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/20070732/settingRDS.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/20070732/settingRDS.png" alt="RDSでデータベース情報を設定する" style="aspect-ratio:602/492"/></a></figure>



<p>「その他」についてはデフォルト設定のまま、最下の「データベースの作成」をクリックします。下記の画像のように作成したデータベースがリストアップされ、ステータスが「利用可能」なっていることを確認できたら、データベースの作成は完了です。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/20064326/RDScreatedDatabaseList-768x139.png" alt="AWSのRDSにおいて作成されたインスタンスを確認する"/></figure>



<h2 class="wp-block-heading"><span id="toc14">EC2とRDS上のMySQLのデータベースを接続する</span></h2>



<p>作成したRDSのデータベースサーバーとEC2インスタンスを接続して、EC2上からMySQLコマンドでデータベース接続を確認していきます。</p>



<h3 class="wp-block-heading"><span id="toc15">EC2インスタンスを準備する</span></h3>



<p>EC2インスタンスを準備します。EC2インスタンスの作成については、以下の記事をご覧ください。</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-goal-path（ゴールパス）-info wp-block-embed-goal-path（ゴールパス）-info"><div class="wp-block-embed__wrapper">

<a href="https://goal-path.com/info/programing-how-to-use-ec2/#toc6" title="【初心者向け】AWSの無料利用枠内でのEC2の使い方" 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 loading="lazy" decoding="async" width="160" height="90" src="https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-160x90.jpg 160w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-300x169.jpg 300w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-768x432.jpg 768w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-120x68.jpg 120w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-320x180.jpg 320w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-376x212.jpg 376w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2.jpg 1000w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】AWSの無料利用枠内でのEC2の使い方</div><div class="blogcard-snippet internal-blogcard-snippet">AWSの無料利用枠内でEC2インスタンスを作成し接続する方法について、初心者の方でもわかるように説明します。また、AWSやEC2の特徴や使用するメリットについても解説します。</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/info" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">goal-path.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.07.08</div></div></div></div></a>
</div></figure>



<h3 class="wp-block-heading"><span id="toc16">セキュリティグループを設定する</span></h3>



<p>EC2インスタンスとRDSのデータベースを接続するネットワークに対する設定を、セキュリティグループにて設定します。<br>EC2ダッシュボードに移動し、「リソース」から「セキュリティグループ」をクリックします。一覧からRDSでデータベースを作成した際にに同時に作成されたセキュリティグループを選択し、「インバウンドルール」タグの「インバウンドルールを編集」をクリックします。</p>



<figure class="wp-block-image aligncenter"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/20064241/RDSstartSetSecurityGroup-768x338.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/20064241/RDSstartSetSecurityGroup-768x338.png" alt="AWSのRDSにおいてセキュリティグループの設定を開始する"/></a></figure>



<p>セキュリティグループの設定に移ります。「タイプ」には「MySQL/Aurora」を、「ソース」にはEC2のセキュリティグループを設定し、「ルールを保存」をクリックします。</p>



<figure class="wp-block-image aligncenter size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/20064253/RDSsetSecurityGroup-768x197.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/20064253/RDSsetSecurityGroup-768x197.png" alt="AWSのRDSにおいてセキュリティグループを設定する"/></a></figure>



<p>この設定により、データベースのポート3306によって、EC2インスタンスと接続することが可能となります。</p>



<h3 class="wp-block-heading"><span id="toc17">MySQLのデータベースと接続する</span></h3>



<p>EC2に接続して、EC2のインスタンス内からRDSのMySQLデータベースとの接続設定を行っていきます。事前準備として、RDSで作成したデータベースの詳細画面で下記画像赤枠部のエンドポイントをメモしておきます。</p>



<figure class="wp-block-image aligncenter size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/20064313/RDSendPoint-768x422.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/20064313/RDSendPoint-768x422.png" alt="AWSのRDSにおいてエンドポイントを確認する"/></a></figure>



<p>ローカルPCからSSHでEC2インスタンスに接続します。接続後、EC2上にMySQLをインストールしていない場合は、下記コマンドでMySQLをインストールします。</p>



<pre class="wp-block-code"><code>$ sudo apt update  
$ sudo apt upgrade
$ sudo apt install mysql-server</code></pre>



<p>※上記はOSがUbuntuの場合のコマンドです。Linuxの場合は、下記の記事をご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://changineer.info/server/mysql/mysql_installation_linux.html" title="MySQL インストール手順 Linuxの場合" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://changineer.info/wp-content/themes/cocoon-master/screenshot.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">MySQL インストール手順 Linuxの場合</div><div class="blogcard-snippet external-blogcard-snippet">MySQLインストール概要Redhat系LinuxであるCentOSに、MySQLのインストール方法についてまとめます。インストール、パスワード設定、ユーザ設定を行い、mysqlclientを用いてログインできるようになるまでの設定を行いま</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://changineer.info/server/mysql/mysql_installation_linux.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">changineer.info</div></div></div></div></a>



<p>MySQLをインストールしたら、下記コマンドを入力してRDSサーバーに接続します。-uの後はRDSのデータベース作成時に設定したユーザー名、-hの後はメモしたRDSのエンドポイントを入力します</p>



<pre class="wp-block-code"><code>$ sudo mysql -u test -p -h test.*****.ap-northeast-1.rds.amazonaws.com</code></pre>



<p>Enter password:と出たら、RDSインスタンスの作成時に設定したパスワードを入力してエンターキーを押すと、下記のように出力されmysqlコマンド入力モードとなります。</p>



<pre class="wp-block-code"><code>Welcome to the MySQL monitor.&nbsp; Commands end with ; or \g.
Your MySQL connection id is 167
Server version: 5.7.37-log Source distribution

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&gt;</code></pre>



<p>mysqlコマンド入力モードにおいて、以下のコマンドを実行すると、RDSのデータベース作成時に設定したデータベース名が表示され確認できるはずです。</p>



<pre class="wp-block-code"><code>mysql&gt; show DATABASES;</code></pre>



<p>以上で、RDSでのデータベース作成と、EC2インスタンスへのデータベース接続は完了です。</p>



<h2 class="wp-block-heading"><span id="toc18">さいごに</span></h2>



<p>これで、AWSのRDSを利用してMySQLのデータベースを作成する方法についての説明を終わります。</p>



<p>本記事はRDSによるデータベースの作成方法の紹介までとなっていますが、<span class="bold"><span class="marker-under">WEBアプリのインフラを構築する方法についてもっと全体的に知りたいという方は、下記の『【初心者向け】AWSでWEBアプリのインフラを構築する方法(EC2 + ELB + RDS + ACM + Route53)』をご覧ください</span></span>！インフラを構築するための具体的なToDoアイテムと完了までの計画表をセットで公開してます。</p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/2" title="【初心者向け】AWSでWEBアプリのインフラを構築する方法(EC2 + ELB + RDS + ACM + Route53)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_aws_web_application_infrastructure.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【初心者向け】AWSでWEBアプリのインフラを構築する方法(EC2 + ELB + RDS + ACM + Route53)</div><div class="blogcard-snippet external-blogcard-snippet">このプランでは、拡張性・耐久性・セキュリティに対応したサーバーから配信するWEBアプリのインフラを、AWSを使用して構築する方法を提供します。また、このプランを利用することで、初心者・独学でも、確実に短期間で、WEBアプリのインフラの構築を...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/2" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>
]]></content:encoded>
					
					<wfw:commentRss>https://goal-path.com/info/programing-how-to-use-rds/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】AWSのVPCとは？ALB+EC2+RDSの基本構成での設定方法</title>
		<link>https://goal-path.com/info/programing-aws-vpc-setting/</link>
					<comments>https://goal-path.com/info/programing-aws-vpc-setting/#respond</comments>
		
		<dc:creator><![CDATA[ともはろ@Goal-Path代表]]></dc:creator>
		<pubDate>Wed, 20 Jul 2022 11:00:00 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">https://info.actpose.com/?p=802</guid>

					<description><![CDATA[本記事は、以下の目的で作成しています。 目次 AWS VPCとは？関連する用語について解説VPCについてサブネットについてルートテーブルについてインターネッとゲートウェイについてALB+EC2+RDSの基本構成におけるV [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事は、以下の目的で作成しています。</p>



<ul class="has-watery-green-background-color has-background wp-block-list">
<li><span class="marker-under"><span class="bold">AWSのVPCと、それを構成するサブネット、インターネットゲートウェイ、ルートテーブルについての特徴や使い方が分かる</span></span></li>



<li><span class="marker-under"><span class="bold">ALB+EC2+RDSの基本構成において、セキュリティを確保してVPCを構築する方法が分かる</span></span></li>
</ul>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">AWS VPCとは？関連する用語について解説</a><ol><li><a href="#toc2" tabindex="0">VPCについて</a></li><li><a href="#toc3" tabindex="0">サブネットについて</a></li><li><a href="#toc4" tabindex="0">ルートテーブルについて</a></li><li><a href="#toc5" tabindex="0">インターネッとゲートウェイについて</a></li></ol></li><li><a href="#toc6" tabindex="0">ALB+EC2+RDSの基本構成におけるVPCの作成方法</a><ol><li><a href="#toc7" tabindex="0">構成の全体像</a><ol><li><a href="#toc8" tabindex="0">ALBについて</a></li><li><a href="#toc9" tabindex="0">EC2について</a></li><li><a href="#toc10" tabindex="0">RDSについて</a></li></ol></li><li><a href="#toc11" tabindex="0">VPCを作成する</a></li><li><a href="#toc12" tabindex="0">サブネットを作成する</a></li><li><a href="#toc13" tabindex="0">インターネットゲートウェイを作成する</a></li><li><a href="#toc14" tabindex="0">ルートテーブルを作成する</a></li></ol></li><li><a href="#toc15" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">AWS VPCとは？関連する用語について解説</span></h2>



<p>AWSのVPCとは？そしてVPCに関連する、サブネット、ルートテーブル、インターネットゲートウェイについて解説していきます。</p>



<h3 class="wp-block-heading"><span id="toc2">VPCについて</span></h3>



<p><span class="marker-under"><strong>VPC</strong>（Virtual Private Cloud）とは、ユーザー専用のプライベートなクラウド環境を提供するサービスのことです。</span>Webアプリケーションなどを作成する場合において、サーバーやロードバランサーとして、AWSのサービスであるALB、EC2、RDSなどを使用しますが、これらのサービス間を接続をするためのネットワーク空間について設定が必要となります。<span class="marker-under">このネットワーク空間をVPCと呼び、作成したVPC内でネットワークの接続設定をカスタマイズしていきます。</span></p>



<h3 class="wp-block-heading"><span id="toc3">サブネットについて</span></h3>



<p><span class="marker-under">VPC内でのAWSサービス間でのネットワーク設定は、VPCを分割したネットワーク群である<strong>サブネット</strong>によって実施していきます。</span>それぞれのサブネットでは主に下記の項目について設定していきます。</p>



<ul class="wp-block-list">
<li><strong>プライベートorパブリック</strong></li>



<li><strong>AZ（アベイラビリティゾーン）</strong></li>



<li><strong>IPブロック</strong></li>
</ul>



<p>プライベートorパブリックの設定では、<span class="marker-under">直接外のネットワークとは繋ぐことのできないプライベートサブネットであるか、外のネットワークからでも繋がっているパブリックサブネットであるかを設定します</span>。</p>



<p>AZ（アベイラビリティゾーン）とは、冗長的な電力源、ネットワーク、接続機能を備えるために<span class="marker-under">、AWS リージョン内でそれぞれ切り離されたデータセンターのこと</span>です。１つのAZに障害が発生した場合でも他のAZが生きている状態を作るため、複数のAZを設定します。</p>



<p>IPブロック(IPv4 CIRDブロック)では、<span class="marker-under">各VPCや各サブネットのIPレンジを設定</span>します。ALB,EC2、RDSなどのAWS内のサービスが家だとすると、それを建てるための土地と住所を割り当てていくイメージで、土地と住所に相当するのがIPブロックとなります。IPブロックについては、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.itmanage.co.jp/column/about-ip-address/#ip-address-class-subnet-mask" title="IPアドレスとは？クラス範囲やサブネットマスク計算などの専門用語の意味を解説 | ITコラム｜アイティーエム株式会社" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.itmanage.co.jp/common/img/logo_itm.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">IPアドレスとは？クラス範囲やサブネットマスク計算などの専門用語の意味を解説 | ITコラム｜アイティーエム株式会社</div><div class="blogcard-snippet external-blogcard-snippet">IPアドレスとはコンピュータ機器同士が通信をする際に識別をするための番号です。IPアドレスに関するパソコンのネットワーク設定方法や調べ方などとともに企業のシステムで使われているIPアドレスに関して合わせて解説をします。IPアドレスの種類や役...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.itmanage.co.jp/column/about-ip-address/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.itmanage.co.jp</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc4">ルートテーブルについて</span></h3>



<p><span class="marker-under">ルートテーブルとは、サブネットのデータの流れを制御する設定</span>です。ルートテーブルごとに、内部、または外部との接続可能なネットワークについて設定していきます。サブネットをプライベート、パブリックとして分けるためには、それぞれのルートテーブルを作成し、サブネットを割り当てます。</p>



<h3 class="wp-block-heading"><span id="toc5">インターネッとゲートウェイについて</span></h3>



<p><span class="marker-under">インターネットゲートウェイとは、VPC と外部のインターネットとの通信を可能にする機能</span>です。今回設定するパブリックサブネットは、外部のインターネットとの通信が必要となります。そこでインターネットゲートウェイをパブリックのルートテーブルに設定することで、パブリックサブネットを外部のインターネットと通信可能にします。</p>



<h2 class="wp-block-heading"><span id="toc6">ALB+EC2+RDSの基本構成におけるVPCの作成方法</span></h2>



<p>実際にALB+EC2+RDSの基本構成におけるVPCを構築していきます。まず構成全体像を確認した後、下記の流れでVPCを構築していきましょう。</p>



<ul class="wp-block-list">
<li>VPCを作成する</li>



<li>サブネットを作成する</li>



<li>インターネットゲートウェイを作成する</li>



<li>ルートテーブルを作成する</li>
</ul>



<h3 class="wp-block-heading"><span id="toc7">構成の全体像</span></h3>



<p>本記事では、ALB+EC2+RDSの基本構成におけるVPCの作成方法について紹介していきます。構成としては、下記の図に示すとおりです。<span class="marker-under">ALBと踏み台用のEC2はパブリックサブネット、アプリ用のEC2とRDSはプライベートサブネット</span>に設定します。また、ALB、アプリ用EC2、RDSについては<span class="marker-under">、冗長性を向上させるため2つのアベイラビリティゾーンを設定します。</span></p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/19184316/aws_vpc_scheme_image-1.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/19184316/aws_vpc_scheme_image-1.png" alt="AWSにおける、ALB + EC2 + RDSの基本構成におけるVPCの概略図"/></a></figure>



<p>ここで、ALB、EC2、RDSについてそれぞれ簡単に説明します。</p>



<h4 class="wp-block-heading"><span id="toc8">ALBについて</span></h4>



<p><span class="marker-under">ALB(Aplication Load Balancer)とは、サーバー負荷（load）を低減させるために、外部からのリクエストを複数のサーバーに振り分け負荷分散するロードバランサーのサービス</span>です。このロードバランサー機能によって、ユーザー数が増加してアクセスが増えた際に、サーバーを増やすことでアクセスの集中を他のサーバーに振り分けることが可能になります。</p>




<a rel="noopener noreferrer" target="_blank" href="https://cloudnavi.nhn-techorus.com/archives/3640" title="【AWS入門】AWSのELBとは？ロードバランサーの種類、特徴、料金を紹介 |" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://cloudnavi.nhn-techorus.com/wp-content/uploads/2019/07/AdobeStock_194849587_re.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【AWS入門】AWSのELBとは？ロードバランサーの種類、特徴、料金を紹介 |</div><div class="blogcard-snippet external-blogcard-snippet">AWSのELB（Elastic Load Balancing）とはウェブサーバーのアクセスなど、外部からの通信によりサーバーにかかる負荷を複数のサーバーに分散してくれるAWSが提供するロードバランサーサービスです。ELBの種類にはALB、N...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://cloudnavi.nhn-techorus.com/archives/3640" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">cloudnavi.nhn-techorus.com</div></div></div></div></a>



<p>ALBについては、<span class="marker-under">外部からのリクエストを受けるためパブリックサブネットに配置します。</span></p>



<h4 class="wp-block-heading"><span id="toc9">EC2について</span></h4>



<p><span class="marker-under">EC2（Elastic Compute Cloud）とは、仮想サーバー構築サービス</span>です。<span class="marker-under">EC2を利用することで、OSを乗せた仮想環境をクラウド上にすばやく作ることができます</span>。また、OSを搭載しているため、EC2を使用することでWEBアプリケーションを起動することが可能となります。</p>




<a rel="noopener noreferrer" target="_blank" href="https://techplay.jp/column/537" title="AmazonのAWS EC2とは？はじめての人向けに解説 - TECH PLAY" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://techplay.jp/webv2/assets/d208730/image/thumbnail.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">AmazonのAWS EC2とは？はじめての人向けに解説 - TECH PLAY</div><div class="blogcard-snippet external-blogcard-snippet">Amazonが提供しているクラウドサービスのAWSといえば、仮想サーバー構築のクラウドサービスとして有名です。この記事ではAWS EC2の概要をはじめEC2を利用するメリット、インスタンス利用料金プランについても説明します。最後にEC2で利...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://techplay.jp/column/537" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">techplay.jp</div></div></div></div></a>



<p>アプリのソースコードなどを格納する<span class="marker-under">アプリ用のEC2インスタンスについては、セキュリティ上プライベートサブネットに構築</span>します。しかし、アプリを起動させたりする上でアプリ用のEC2にSSH接続する必要がありますが、プライベートサブネットのため外部からの接続が出来ません。そこで、<span class="marker-under">もう一つパブリック</span><span class="marker-under">サブネットに</span><span class="marker-under">踏み台用EC2インスタンスを用意</span>します。<span class="marker-under">アプリ用EC2に対しては、踏み台用EC2を経由してSSH接続</span>していきます。</p>



<h4 class="wp-block-heading"><span id="toc10">RDSについて</span></h4>



<p><span class="marker-under">RDS（Relational Database Service）はAWSが提供しているデータベースサービス</span>の一つです。データベースサーバーとしてRDSを使用することで、データ通信の高速化、障害発生に対する耐久性の確保、容易なサーバー追加による拡張が可能となります。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.bold.ne.jp/engineer-club/aws-rds" title="AWSのRDSとは？知っておくべき6つの利点と使い方" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.bold.ne.jp/engineer-club/wp-content/uploads/2022/01/aws_logo_smile_1200x630.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">AWSのRDSとは？知っておくべき6つの利点と使い方</div><div class="blogcard-snippet external-blogcard-snippet">「AWS RDSってどういうサービスなんだろう？」今回はこんな疑問にお答えします。Amazon RDS（Amazon Relational Database Service）はAWSが提供しているデータベースサービスの一つで、mysqlやo...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.bold.ne.jp/engineer-club/aws-rds" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.bold.ne.jp</div></div></div></div></a>



<p><span class="marker-under">RDSインスタンスについては、セキュリティ上プライベートサブネットに構築</span>します。</p>



<h3 class="wp-block-heading"><span id="toc11">VPCを作成する</span></h3>



<p>まず、VPCを作成していきます。<br>AWSにログインした後で、右上のメニューから、「アジアパシフィック（東京）」のリージョンを選択します。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/08050838/selectRegion.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/08050838/selectRegion.png" alt="AWSで東京リージョンを選択する" style="aspect-ratio:320/554"/></a></figure>



<p>AWSのコンソール画面から「VPC」と検索して、VPCのコンソール画面に移動します。VPCのコンソール画面に移動したら、画面右上の「VPCの作成」をクリックします。<br>ここでは、名前タグに「app-vpc」、IPv4 CIDR ブロックに 「10.0.0.0/16」、タグキーを「Name」 にして値に「app-vpc」と設定します。設定後に、画面最下にある「VPCを作成」をクリックします。<br>成功すると画像のように作成したVPCがリストアップされます。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/19185848/createdVPCList.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/19185848/createdVPCList.png" alt="AWS上で作成されたVPCのリスト"/></a></figure>



<h3 class="wp-block-heading"><span id="toc12">サブネットを作成する</span></h3>



<p>続けて、サブネットを作成していきます。<br>VPCのコンソール画面左のメニューから「サブネット」を選択し、サブネット一覧画面の右上にある「サブネットを作成」をクリックします。<br>VPCには作成済みの「app-vpc」を選択し、下記７つのサブネットの設定をそれぞれ入力して、画面下にある「サブネットを作成」をクリックし、7つのサブネットを作成します。</p>



<ul class="has-watery-green-background-color has-background wp-block-list">
<li>サブネット名を「app-ec2-subnet-public」、 アベイラビリティゾーンを「1a」、IPv4 CIDRブロックは「10.0.190.0/26」に設定</li>



<li>サブネット名を「app-ec2-subnet-private-a」、 アベイラビリティゾーンを「1a」、IPv4 CIDRブロックは「10.0.193.0/26」に設定</li>



<li>サブネット名を「app-ec2-subnet-private-c」、 アベイラビリティゾーンを「1c」、IPv4 CIDRブロックは「10.0.193.64/26」に設定</li>



<li>サブネット名を「app-rds-subnet-a」、 アベイラビリティゾーンを「1a」、IPv4 CIDRブロックは「10.0.194.0/26」に設定</li>



<li>サブネット名を「app-rds-subnet-c」、 アベイラビリティゾーンを「1c」、IPv4 CIDRブロックは「10.0.194.64/26」に設定</li>



<li>サブネット名を「app-elb-subnet-a」、 アベイラビリティゾーンを「1a」、IPv4 CIDRブロックは「10.0.128.0/24」に設定</li>



<li>サブネット名を「app-elb-subnet-c」、 アベイラビリティゾーンを「1c」、IPv4 CIDRブロックは「10.0.129.0/24」に設定</li>
</ul>



<p>作成に成功すると、サブネットがリストアップされます。<span class="marker-under">サブネットは、このようにVPCのIPの範囲から機能やAZごとに更にレンジを細分化しIPブロックを割り当てます</span>。</p>



<h3 class="wp-block-heading"><span id="toc13">インターネットゲートウェイを作成する</span></h3>



<p>次に、インターネットゲートウェイを作成していきます。<br>VPCのコンソール画面左のメニューから「インターネットゲートウェイ」を選択し、サブネット一覧画面の右上にある「インターネットゲートウェイの作成」をクリックします。<br>ここでは、名前を「app-internet-gateway」に設定し、画面下にある「インターネットゲートウェイの作成」をクリックして、インターネットゲートウェイを作成します。<br>作成されたインターネットゲートウェイの左端にあるチェックボックスにチェックを入れた後、画面右上の「ToDo」アイコンから「VPCをアタッチ」をクリックします。ページ移動後、使用可能なVPCに作成した「app-vpc」を選択し、画面下にある「インターネットゲートウェイのアタッチ」をクリックします。<br>画像のように「状態」が「Attached」となっているインターネットゲートウェイがリストアップされれば成功です。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/19193623/createdIGWList.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/19193623/createdIGWList.png" alt="AWSにて作成したインターネットゲートウェイの一覧画面"/></a></figure>



<h3 class="wp-block-heading"><span id="toc14">ルートテーブルを作成する</span></h3>



<p>最後に、ルートテーブルを作成していきます。<br>VPCのコンソール画面左のメニューからを「ルートテーブル」選択し、ルートテーブル一覧画面の右上にある「ルートテーブルを作成」をクリックします。<br>ここで、VPCには作成した「app-vpc」を選択し、下記2つの名前をそれぞれ入力して、画面下にある「ルートテーブルを作成」をクリックすると、プライベート用とパブリック用の2つのルートテーブルが作成されます。</p>



<ul class="has-watery-green-background-color has-background wp-block-list">
<li>app-private-route-table (プライベートサブネット用のルートテーブル)</li>



<li>app-public-route-table(パブリックサブネット用のルートテーブル)</li>
</ul>



<p>作成に成功すると、画像のように作成したルートテーブルがリストアップされます。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/19190348/createdRouteTableList.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/19190348/createdRouteTableList.png" alt="AWSでルートテーブル作成後の一覧画面"/></a></figure>



<p>ルートテーブルを作成したら、ルートテーブル一覧画面のルートテーブルIDをクリックして表示される詳細画面にて、サブネット関連付けを実施していきます。<br>下記画像の「サブネット関連付け」タブをクリック後、「サブネットの関連付けを編集」をクリックして、作成した2つのルートテーブルに対して下記の組み合わせでサブネットをチェックボックスで選択し、「関連付けを保存」をクリックすることで関連付けを行います。</p>



<ul class="has-watery-green-background-color has-background wp-block-list">
<li>app-private-route-table
<ul class="wp-block-list">
<li>app-ec2-subnet-private-a</li>



<li>app-ec2-subnet-private-c</li>



<li>app-rds-subnet-a </li>



<li>app-rds-subnet-c</li>
</ul>
</li>



<li>app-public-route-table
<ul class="wp-block-list">
<li>app-ec2-subnet-public,</li>



<li>app-elb-subnet-a</li>



<li>app-elb-subnet-c</li>
</ul>
</li>
</ul>



<p>作成に成功すると、下記の画像のように「明示的なサブネットの関連付け」にリストアップされます。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/19190441/RouteTableToSubnetList.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/19190441/RouteTableToSubnetList.png" alt="AWSでルートテーブルとサブネットの関連の一覧画面"/></a></figure>



<p>サブネットの関連付けが完了したら、インターネットゲートウェイを設定します。<br>「app-public-route-table」の詳細画面にて「ルート」タブを選択し、「ルートを編集」のボタンをクリックします。ページ移動後、「ルートを追加」のボタンをクリックし、送信先に「0.0.0.0/0」を設定、ターゲットに作成したインターネットゲートウェイ(app-internet-gateway)を設定し、「変更を保存」をクリックします。<br>ルートに追加したインターネットゲートウェイが表示され、ステータスが「アクティブ」になっていれば成功です。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/19190538/setIWGtoTouteTable.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/19190538/setIWGtoTouteTable.png" alt="AWSのルートテーブルにインターネットゲートウェイを設定"/></a></figure>



<p>以上で、ALB+EC2+RDSの基本構成におけるVPC・サブネットを構築とネットワーク設定が完了となります。<span class="marker-under">ここからは作成したVPC・サブネットをベースに、外部からのリクエストに対するALBの設定や、EC2、RDSインスタンスの作成を進めていきましょう。</span></p>



<h2 class="wp-block-heading"><span id="toc15">さいごに</span></h2>



<p>また、本記事でVPCについて紹介してますが、WEBアプリのインフラを構築する方法についてもっと全体的に知りたいという方は、下記の<span class="bold"><span class="marker-under">『【初心者向け】AWSでWEBアプリのインフラを構築する方法(EC2 + ELB + RDS + ACM + Route53)』において、インフラを構築するための具体的なToDoアイテムと完了までの計画表をセットで公開してますので、ぜひご覧ください！</span></span></p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/2" title="【初心者向け】AWSでWEBアプリのインフラを構築する方法(EC2 + ELB + RDS + ACM + Route53)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_aws_web_application_infrastructure.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【初心者向け】AWSでWEBアプリのインフラを構築する方法(EC2 + ELB + RDS + ACM + Route53)</div><div class="blogcard-snippet external-blogcard-snippet">このプランでは、拡張性・耐久性・セキュリティに対応したサーバーから配信するWEBアプリのインフラを、AWSを使用して構築する方法を提供します。また、このプランを利用することで、初心者・独学でも、確実に短期間で、WEBアプリのインフラの構築を...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/2" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>
]]></content:encoded>
					
					<wfw:commentRss>https://goal-path.com/info/programing-aws-vpc-setting/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】GitHubでAWS上に開発したコードをデプロイする方法</title>
		<link>https://goal-path.com/info/programing-aws-github-deploy/</link>
					<comments>https://goal-path.com/info/programing-aws-github-deploy/#respond</comments>
		
		<dc:creator><![CDATA[ともはろ@Goal-Path代表]]></dc:creator>
		<pubDate>Tue, 19 Jul 2022 11:00:00 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[github]]></category>
		<guid isPermaLink="false">https://info.actpose.com/?p=775</guid>

					<description><![CDATA[本記事では、以下の目的で作成しています。 目次 GithHbとは？デプロイについてGitHubの特徴と使い方GitHubでデプロイするAWSとは？EC2についてAWSの特徴EC2でサーバーを構築するGitHubとAWSを [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事では、以下の目的で作成しています。</p>



<ul class="has-watery-green-background-color has-background wp-block-list">
<li><span class="marker-under"><span class="bold">GitHubの特徴と使い方が分かる</span></span></li>



<li><span class="bold"><span class="marker-under">GitコマンドによってAWS上にコードをデプロイする方法が分かる</span></span></li>
</ul>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">GithHbとは？デプロイについて</a><ol><li><a href="#toc2" tabindex="0">GitHubの特徴と使い方</a></li><li><a href="#toc3" tabindex="0">GitHubでデプロイする</a></li></ol></li><li><a href="#toc4" tabindex="0">AWSとは？EC2について</a><ol><li><a href="#toc5" tabindex="0">AWSの特徴</a></li><li><a href="#toc6" tabindex="0">EC2でサーバーを構築する</a></li></ol></li><li><a href="#toc7" tabindex="0">GitHubとAWSを始める</a><ol><li><a href="#toc8" tabindex="0">GitHubを始める</a></li><li><a href="#toc9" tabindex="0">AWS EC2を始める</a></li></ol></li><li><a href="#toc10" tabindex="0">GitHubを使ってAWS上にコードをデプロイする</a><ol><li><a href="#toc11" tabindex="0">GitHubにリポジトリを作成する</a></li><li><a href="#toc12" tabindex="0">リポジトリにファイルを格納する</a></li><li><a href="#toc13" tabindex="0">AWSのEC2にファイルを移す</a></li></ol></li><li><a href="#toc14" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">GithHbとは？デプロイについて</span></h2>



<p>まず、GitHubとはなにか？そして、デプロイとは何か？についてご紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc2">GitHubの特徴と使い方</span></h3>



<p><span class="bold"><a rel="noopener noreferrer" target="_blank" href="https://github.com/">GitHub</a>とはGitというツールを用いたソースコードをバージョン管理するためのwebサービスです。</span><span class="marker-under">web上に履歴を残しながらソースコードを保存</span>していくことができます。また、自分以外のエンジニアも修正を加えて保存することが可能なため<span class="marker-under">、チームでの作業のためのプラットフォーム</span>としても利用されます。その他には、<strong><span class="marker-under">ソースコードを他のPCに移す</span>ために利用したり、</strong>エンジニア各々が<span class="marker-under">公開用のソースコードをアップして自分以外のエンジニアに共有</span>したりするために利用されています。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.modis.co.jp/candidate/insight/column_30" title="https://www.modis.co.jp/candidate/insight/column_30" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.modis.co.jp%2Fcandidate%2Finsight%2Fcolumn_30?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://www.modis.co.jp/candidate/insight/column_30</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.modis.co.jp/candidate/insight/column_30" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.modis.co.jp</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc3">GitHubでデプロイする</span></h3>



<p>ローカルPCの開発環境で作成したアプリケーション等を公開するためには、<span class="bold">web公開するサーバー上にソースコードを移していく必要があります。</span><span class="bold">この作業をデプロイといい</span>、GitHubを用いて行うことができます。デプロイについては、以下の記事が参考になるので、ぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.bold.ne.jp/engineer-club/deploy" title="デプロイとは？ビルド・リリースの違い、デプロイの方法【図解】" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.bold.ne.jp/engineer-club/wp-content/uploads/2020/04/shutterstock_70728265.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">デプロイとは？ビルド・リリースの違い、デプロイの方法【図解】</div><div class="blogcard-snippet external-blogcard-snippet">アプリケーションをサーバー上で利用できるようにするための一連の作業をデプロイといいます。システム開発では、開発工程が完了したら完成したモジュールを特定の環境で使えるようにする必要があります。つまいデプロイを行うことで、初めてアプリケーション...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.bold.ne.jp/engineer-club/deploy" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.bold.ne.jp</div></div></div></div></a>



<p><span class="bold"><span class="marker-under">本記事では、GitHubのアカウント作成後、リポジトリを作成し、ソースコードをリポジトリにpush（アップロード）することで、サーバーにデプロイするまでの流れを実践していきます。</span></span></p>



<h2 class="wp-block-heading"><span id="toc4">AWSとは？EC2について</span></h2>



<p>ここでは、AWSの特徴と、AWS内のサービスであるEC2でサーバーを構築する方法について紹介します。</p>



<h3 class="wp-block-heading"><span id="toc5">AWSの特徴</span></h3>



<p><span class="bold">AWSはAmazon Web Serviceの略でAmazonによって提供されるクラウドコンピューティングを使用したサービスです。</span>クラウドコンピューティングの特徴としては、<span class="marker-under">「初期費用ゼロ」、「従量課金であるためコスト低減可能」、「自在なサイジングが可能」といった特徴があります。</span>また、<span class="marker-under">「セキュリティ」、「ログ」、「バックアップ」などの機能</span>や、その他<span class="marker-under">WEBアプリ作成に必要となる豊富なサービス</span>を保有していることが特徴です。</p>



<h3 class="wp-block-heading"><span id="toc6">EC2でサーバーを構築する</span></h3>



<p><span class="bold">webアプリケーションを公開するサーバーを作成するために、AWSではEC2を利用することが一般的な方法です。</span>EC2（Elastic Compute Cloud）とはAWSのサービスの一つで、仮想サーバー構築サービスです。<span class="marker-under">EC2を利用することで、<strong>OSを乗せた仮想環境をクラウド上にすばやく作ることができます</strong>。</span>詳細については以下の記事が参考になるので、ぜひご覧ください。</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-goal-path（ゴールパス）-info wp-block-embed-goal-path（ゴールパス）-info"><div class="wp-block-embed__wrapper">

<a href="https://goal-path.com/info/programing-how-to-use-ec2/" title="【初心者向け】AWSの無料利用枠内でのEC2の使い方" 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 loading="lazy" decoding="async" width="160" height="90" src="https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-160x90.jpg 160w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-300x169.jpg 300w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-768x432.jpg 768w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-120x68.jpg 120w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-320x180.jpg 320w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-376x212.jpg 376w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2.jpg 1000w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】AWSの無料利用枠内でのEC2の使い方</div><div class="blogcard-snippet internal-blogcard-snippet">AWSの無料利用枠内でEC2インスタンスを作成し接続する方法について、初心者の方でもわかるように説明します。また、AWSやEC2の特徴や使用するメリットについても解説します。</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/info" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">goal-path.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.07.08</div></div></div></div></a>
</div></figure>



<p><span class="bold"><span class="marker-under">本記事では、AWSにおいてEC2のサーバーを作成し、GitHubにプッシュしたソースコードをEC2のサーバーに</span><span class="marker-under">移す</span><span class="marker-under">ことでデプロイしていきます。</span></span></p>



<h2 class="wp-block-heading"><span id="toc7">GitHubとAWSを始める</span></h2>



<p>それでは実際に、GitHubを初めて、AWSのEC2サーバーを起動してみましょう！</p>



<h3 class="wp-block-heading"><span id="toc8">GitHubを始める</span></h3>



<p>まず、GitHubのアカウントを作成します。GitHubのアカウントの作成方法については、以下の記事をご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://reffect.co.jp/html/create_github_account_first_time" title="1分もかからない！5ステップでGitHubアカウント作成 | アールエフェクト" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://reffect.co.jp/wp-content/uploads/2020/08/Github_create_new_account.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">1分もかからない！5ステップでGitHubアカウント作成 | アールエフェクト</div><div class="blogcard-snippet external-blogcard-snippet">プログラミング入門者の方の中にはまだGitHubを利用したことがないという人もいるかと思います。GitHubのアカウントを作成するには何が必要なのと不安な方もいるかもしれません。難しい箇所は一切ありませんが、GitHubのアカウント作成手順...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://reffect.co.jp/html/create_github_account_first_time" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">reffect.co.jp</div></div></div></div></a>



<p>また、GitHubを使うためには、ローカルPCにgitをインストールする必要があります。Gitのインストール方法については、以下の記事をご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.sejuku.net/blog/73444" title="Gitをインストールしてみよう！Windows/Macどちらも丁寧に解説 | 侍エンジニアブログ" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.sejuku.net/blog/wp-content/uploads/2022/12/howto-01-2024-03-21T221930.630.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Gitをインストールしてみよう！Windows/Macどちらも丁寧に解説 | 侍エンジニアブログ</div><div class="blogcard-snippet external-blogcard-snippet">この記事では「 Gitをインストールしてみよう！Windows/Macどちらも丁寧に解説 」について、誰でも理解できるように解説します。この記事を読めば、あなたの悩みが解決するだけじゃなく、新たな気付きも発見できることでしょう。お悩みの方は...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.sejuku.net/blog/73444" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.sejuku.net</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc9">AWS EC2を始める</span></h3>



<p>AWSのアカウントを未作成の方は、まずアカウントを作成します。AWSのアカウントの作成方法については、下記の記事が参考になりますので是非ご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.cloudsolution.tokai-com.co.jp/white-paper/2021/0604-238.html" title="プロが教えるAWSアカウント作成方法 ～ルートユーザアカウント作成編～ | AWS導入支援の全工程をワンストップで提供 | TOKAIコミュニケーションズ AWSソリューション" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.cloudsolution.tokai-com.co.jp/white-paper/2021/resource/0602-img-01.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">プロが教えるAWSアカウント作成方法 ～ルートユーザアカウント作成編～ | AWS導入支援の全工程をワンストップで提供 | TOKAIコミュニケーションズ AWSソリューション</div><div class="blogcard-snippet external-blogcard-snippet">プロが教えるAWSアカウント作成方法 ～ルートユーザアカウント作成編～をご紹介します。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.cloudsolution.tokai-com.co.jp/white-paper/2021/0604-238.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.cloudsolution.tokai-com.co.jp</div></div></div></div></a>



<p>AWSのアカウントを作成したらEC2インスタンスを作成します。EC2インスタンスの作成方法については、下記の記事をご覧ください。</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-goal-path（ゴールパス）-info wp-block-embed-goal-path（ゴールパス）-info"><div class="wp-block-embed__wrapper">

<a href="https://goal-path.com/info/programing-how-to-use-ec2/#toc6" title="【初心者向け】AWSの無料利用枠内でのEC2の使い方" 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 loading="lazy" decoding="async" width="160" height="90" src="https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-160x90.jpg 160w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-300x169.jpg 300w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-768x432.jpg 768w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-120x68.jpg 120w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-320x180.jpg 320w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-376x212.jpg 376w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2.jpg 1000w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】AWSの無料利用枠内でのEC2の使い方</div><div class="blogcard-snippet internal-blogcard-snippet">AWSの無料利用枠内でEC2インスタンスを作成し接続する方法について、初心者の方でもわかるように説明します。また、AWSやEC2の特徴や使用するメリットについても解説します。</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/info" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">goal-path.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.07.08</div></div></div></div></a>
</div></figure>



<h2 class="wp-block-heading"><span id="toc10">GitHubを使ってAWS上にコードをデプロイする</span></h2>



<p>GitHubを使ってAWS上にコードをデプロイしていきましょう！デプロイするまでの流れは以下のとおりです。</p>



<ul class="wp-block-list">
<li>GitHubにリポジトリを作成する</li>



<li>リポジトリにファイルを格納する</li>



<li>AWSのEC2にファイルを移す</li>
</ul>



<h3 class="wp-block-heading"><span id="toc11">GitHubにリポジトリを作成する</span></h3>



<p><span class="marker-under">リポジトリとは、GitHub上でファイルやディレクトリの状態を記録する場所</span>です。また、リポジトリの管理下のファイルは変更履歴ごとに格納され、変更履歴を記録することができます。</p>



<p>ここでは、実際に任意の名前のリポジトリを作成します。以下がGitHub公式のリポジトリ作成方法となっておりますので、こちらをご覧いただきリポジトリを作成してください。<br>（”最初の変更をコミットする”以降については、この後の章で解説します。まずは、&#8221;Create repository&#8221;までを完了してください。）</p>




<a rel="noopener noreferrer" target="_blank" href="https://docs.github.com/ja/get-started/quickstart/create-a-repo" title="リポジトリのクイック スタート - GitHub Docs" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://docs.github.com/assets/cb-345/images/social-cards/default.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">リポジトリのクイック スタート - GitHub Docs</div><div class="blogcard-snippet external-blogcard-snippet">新しいリポジトリを作成し、最初の変更を 5 分でコミットする方法について説明します。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://docs-internal.github.com/ja/repositories/creating-and-managing-repositories/quickstart-for-repositories" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">docs-internal.github.com</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc12">リポジトリにファイルを格納する</span></h3>



<p>gitのリポジトリには、先程作成した<span class="marker-under">GitHubのリポジトリと、ローカルPC上でのリポジトリ</span>が存在し、それぞれ<span class="marker-under">リモートリポジトリ、ローカルリポジトリ</span>と呼びます。また、ローカルリポジトリに登録する前に、リ<span class="marker-under">ポジトリに追加する候補のとしてインデックスする領域をステージング領域</span>と呼びます。ステージング領域の前の、ローカルPCで実際に<span class="marker-under">ソースコードを作成・更新している作業領域をワーキングツリー</span>と呼びます。</p>



<p>全体の流れを以下の図に示します。まず、ファイルを作成・修正をワーキングツリー（作業領域）にて行います。次に、「add」コマンドによって、リポジトリに登録したいファイルを選択してインデックス（ステージング領域）に登録します。 そして、「commit」コマンドによって、インデックス（ステージング領域）に登録されているファイルをローカルリポジトリに格納します。 最後に、「push」コマンドによってGitHubで作成したリモートリポジトリへ格納します。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/19092000/github_add_commit_push_image.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/19092000/github_add_commit_push_image.png" alt="gitのワーキングツリー（作業領域）、インデックス（ステージング領域）、ローカルリポジトリ、リモートリポジトリを図解"/></a></figure>



<p>ここからは、実際にコマンドを入力していきます。まず、ターミナルでソースコードのフォルダの場所に移動しコマンドを実行していきます。最初に、「init」コマンドによってgitを初期化した後で、「add」コマンドによって、ここでは全てのファイルをステージング領域へ追加します。</p>



<pre class="wp-block-preformatted">$ git init
$ git add --all .</pre>



<p>次に、「commit」コマンドによって、ファイルをステージング領域からローカルリポジトリへ追加します。ここで、「-m」以降でコミットした内容についてメッセージとして残します。（今回は最初のコミットなので&#8221;first commit&#8221;としています。）</p>



<pre id="block-56b55ca3-a177-47d1-90f9-97fb5d0287ec" class="wp-block-preformatted">$ git commit -m "first commit"</pre>



<p>ここで、GitHubのリモートリポジトリを登録していきます。以下のコマンドによって、GitHubによって作成したリポジトリを登録します。</p>



<pre id="block-55530c48-99d1-4960-8eac-857c422e546c" class="wp-block-preformatted">$ git remote add origin https://github.com/｛githubでのあなたのユーザー名｝/｛作成したリポジトリ名｝.git</pre>



<p>最後に、下記コマンドにてGitHubのリモートリポジトリにコードをpushします。</p>



<pre class="wp-block-preformatted">$ git push -u origin master</pre>



<p>「origin master」の部分でブランチを指定します。GitHubのブランチについては、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://backlog.com/ja/git-tutorial/stepup/01/" title="ブランチとは｜サル先生のGit入門【プロジェクト管理ツールBacklog】" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://backlog.com/ja/git-tutorial/site_image.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">ブランチとは｜サル先生のGit入門【プロジェクト管理ツールBacklog】</div><div class="blogcard-snippet external-blogcard-snippet">ようこそ、サル先生のGit入門へ。Gitをつかってバージョン管理ができるようになるために一緒に勉強していきましょう！</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://backlog.com/ja/git-tutorial/stepup/01/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">backlog.com</div></div></div></div></a>



<p>また、GitHubのユーザー名とパスワードを聞かれますが、パスワードにはアクセストークンを入力します。アクセストークンについては、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://style.potepan.com/articles/34189.html" title="GitHubのAccess token認証方法とは？Password認証の廃止 | ポテパンスタイル" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://style.potepan.com/wp-content/themes/potepan-style/include/head/img.php?text=&#039;GitHubのAccess%20token認証方法とは？Password認証の廃止&#039;" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">GitHubのAccess token認証方法とは？Password認証の廃止 | ポテパンスタイル</div><div class="blogcard-snippet external-blogcard-snippet">GitHubでは2021年8月13日以降、　Password認証によるGit操作を廃止する対応が取られました。本記事では、GitHubでPassword認証に変わって利用可能なAccess token認証とSSH接続を利用する方法についてご</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://style.potepan.com/articles/34189.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">style.potepan.com</div></div></div></div></a>



<p>ここまで実施すると、GitHubのリポジトリにアクセス後、以下図の「master」のブランチを選択すると、GitHubのリポジトリ上にファイルが格納されていることを確認できます。</p>



<figure class="wp-block-image aligncenter size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/19091822/GITHUB_select_branch.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/19091822/GITHUB_select_branch.png" alt="githubでブランチを確認する"/></a></figure>



<h3 class="wp-block-heading"><span id="toc13">AWSのEC2にファイルを移す</span></h3>



<p>ここからは、EC2インスタンスにGitHubのリポジトリに格納したファイルを移すことによって、コードをEC2上にデプロイしていきます。EC2への接続方法については、以下の記事をご覧ください。</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-goal-path（ゴールパス）-info wp-block-embed-goal-path（ゴールパス）-info"><div class="wp-block-embed__wrapper">

<a href="https://goal-path.com/info/programing-how-to-use-ec2/#toc9" title="【初心者向け】AWSの無料利用枠内でのEC2の使い方" 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 loading="lazy" decoding="async" width="160" height="90" src="https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-160x90.jpg 160w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-300x169.jpg 300w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-768x432.jpg 768w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-120x68.jpg 120w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-320x180.jpg 320w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2-376x212.jpg 376w, https://media.goal-path.com/wp-content/uploads/2022/07/12110319/programing-how-to-use-ec2.jpg 1000w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】AWSの無料利用枠内でのEC2の使い方</div><div class="blogcard-snippet internal-blogcard-snippet">AWSの無料利用枠内でEC2インスタンスを作成し接続する方法について、初心者の方でもわかるように説明します。また、AWSやEC2の特徴や使用するメリットについても解説します。</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/info" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">goal-path.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.07.08</div></div></div></div></a>
</div></figure>



<p>まず、ローカルPCと同様に、EC2インスタンス上にもgitをインストールしていきます。例えば、EC2インスタンスのOSでLinuxを選択した場合、以下のコマンドでインストールします。</p>



<pre class="wp-block-code"><code>$ sudo yum install git-all</code></pre>



<p>gitのインストールが完了したら、ローカルPCと同様にGitHubのリポジトリを登録します。リポジトリの登録後、「pull」コマンドを使用してmasterブランチを指定することで、リモートリポジトリ上のファイルをEC2インスタンス内に移します。</p>



<pre class="wp-block-preformatted">$ git clone https://github.com/リポジトリ名/プロジェクト名.git
$ git pull origin master</pre>



<p>EC2インスタンス内で、「ls」コマンドなどを実行し、ファイルが全て移されていることを確認できれば、デプロイは完了です。お疲れ様でした。</p>



<h2 class="wp-block-heading"><span id="toc14">さいごに</span></h2>



<p>これでGitHubを用いてAWS上にコードをデプロイする方法についての説明を終わります。</p>



<p>本記事は作成したアプリなどをインターネット上に公開するための準備工程の紹介までとなっています。<span class="marker-under"><span class="bold">実際にアプリケーションを作成してインターネットに公開するまでを知りたい、という方は、下記のリンクをぜひご覧ください！</span></span></p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/1" title="【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_web_application_docker_django_aws_nginx_mysql_Y0IZtD9.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)</div><div class="blogcard-snippet external-blogcard-snippet">このプランによって、Django x Nginx x mysqlのWEBアプリをdockerコンテナ環境でイチから作成し、AWSにてインターネットに公開することが出来るようになります。このプランは、初心者・独学でもWEBアプリの作成・公開ま...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/1" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>
]]></content:encoded>
					
					<wfw:commentRss>https://goal-path.com/info/programing-aws-github-deploy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】DjangoでMySQLのデータベースにおける管理画面を作成する方法</title>
		<link>https://goal-path.com/info/programing-django-database-admin/</link>
					<comments>https://goal-path.com/info/programing-django-database-admin/#respond</comments>
		
		<dc:creator><![CDATA[ともはろ@Goal-Path代表]]></dc:creator>
		<pubDate>Thu, 14 Jul 2022 13:13:36 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://info.actpose.com/?p=693</guid>

					<description><![CDATA[本記事は、以下の目的で作成しています。 Djangoをゼロから始めてデータベースの接続方法する方法が分かるDjangoのデータベースの管理画面の作成方法が分かる 目次 DjangoについてDjnagoとはデータベース(M [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事は、以下の目的で作成しています。</p>



<p class="has-watery-green-background-color has-background"><span class="bold"><span class="marker-under">Djangoをゼロから始めてデータベースの接続方法する方法が分かる<br>Djangoのデータベースの管理画面の作成方法が分かる</span></span></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Djangoについて</a><ol><li><a href="#toc2" tabindex="0">Djnagoとは</a></li><li><a href="#toc3" tabindex="0">データベース(MySQL)とは</a></li></ol></li><li><a href="#toc4" tabindex="0">Djangoの環境を構築する</a><ol><li><a href="#toc5" tabindex="0">Pythonとpipをインストールする</a></li><li><a href="#toc6" tabindex="0">Djangoに必要なパッケージをインストールする</a></li><li><a href="#toc7" tabindex="0">MySQLをインストールする</a></li></ol></li><li><a href="#toc8" tabindex="0">Djangoで管理画面を作成する</a><ol><li><a href="#toc9" tabindex="0">プロジェクトを作成する</a></li><li><a href="#toc10" tabindex="0">アプリケーションを作成する</a></li><li><a href="#toc11" tabindex="0">データベース処理を設定する</a></li><li><a href="#toc12" tabindex="0">管理画面を作成する</a></li></ol></li><li><a href="#toc13" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Djangoについて</span></h2>



<p>ここでは、Djangoとは何か？そして、データベースの一種であるMySQLとは何か？についてご紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc2">Djnagoとは</span></h3>



<p><span class="marker-under">Djangoは、WEBアプリに必要となる管理画面、データベース接続、ログイン認証、セキュリティ対策などを一通り作成できることができる、Webアプリのフレームワークです。</span>YoutubeやInstagramもDjangoを使ったWEBアプリです。<br>また、Djangoはプログラミング言語としてPythonを使用します。<span class="marker-under">Pythonは、少ないコードで簡潔にプログラムを書けること、特に機械学習などにおいて専門的なライブラリが豊富にあることがメリット</span>です。</p>



<p>Djangoの詳細については、以下の記事が参考になりますのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://and-engineer.com/articles/YT2muRAAACQAnsQM" title="https://and-engineer.com/articles/YT2muRAAACQAnsQM" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fand-engineer.com%2Farticles%2FYT2muRAAACQAnsQM?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://and-engineer.com/articles/YT2muRAAACQAnsQM</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://and-engineer.com/articles/YT2muRAAACQAnsQM" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">and-engineer.com</div></div></div></div></a>



<p>本記事では、<strong><span class="marker-under">DjangoでWEBアプリを作成する際にほぼ必ず最初に実施する、環境のインストール、プロジェクトとアプリケーションの作成し、データベースへの接続をしたあと、管理者用の管理画面の作成するところまでの流れを紹介します。</span></strong></p>



<h3 class="wp-block-heading"><span id="toc3">データベース(MySQL)とは</span></h3>



<p><span class="marker-under">データベースとは、サーバーPCなどの格納される、構造化した情報またはデータの組織的な集合です。</span>アプリケーションのユーザーのデータなどもこのデータベースに格納されます。また、一般的なタイプのデータベースにおけるデータの読み込みや書き込みには、クエリ言語（SQL）を使用します。</p>



<p>本記事では、データベースサーバーやSQLとして、MySQLを使用します。<span class="marker-under">MySQLとは、世界でもっとも利用されている「データベース管理システム」です。</span>MySQLはオープンオースのため低コストであるにも関わらず、大規模なアプリにも使用されており、「Yahoo!」「Google」「Nokia」「YouTube」などトップ企業でも採用されています</p>



<p>MySQLの詳細については、以下の記事が参考になりますのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.sejuku.net/blog/" title="侍エンジニアブログ - プログラミング学習のすべてがココに。" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.sejuku.net/blog/wp-content/uploads/2024/08/shutterstock_2487936877.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">侍エンジニアブログ - プログラミング学習のすべてがココに。</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.sejuku.net/blog" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.sejuku.net</div></div></div></div></a>



<h2 class="wp-block-heading"><span id="toc4">Djangoの環境を構築する</span></h2>



<p>Djangoの環境を構築していきます。具体的には以下の流れで構築していきます。</p>



<ul class="wp-block-list">
<li>Pythonとpipをインストールする</li>



<li>Djangoに必要なパッケージをインストールする</li>



<li>MySQLをインストールする</li>
</ul>



<h3 class="wp-block-heading"><span id="toc5">Pythonとpipをインストールする</span></h3>



<p>Djangoを始める前に、Python本体と、Pythonのライブラリをインストールするために必要となるpipをインストールします。</p>



<p>Python本体のインストールについては、以下の記事をご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.sejuku.net/blog/33294" title="Pythonのインストール方法をOS別に解説（Windows・Mac・Linux） | 侍エンジニアブログ" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.sejuku.net/blog/wp-content/uploads/2017/09/python_install.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Pythonのインストール方法をOS別に解説（Windows・Mac・Linux） | 侍エンジニアブログ</div><div class="blogcard-snippet external-blogcard-snippet">この記事では「 Pythonのインストール方法をOS別に解説（Windows・Mac・Linux） 」について、誰でも理解できるように解説します。この記事を読めば、あなたの悩みが解決するだけじゃなく、新たな気付きも発見できることでしょう。お...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.sejuku.net/blog/33294" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.sejuku.net</div></div></div></div></a>



<p>pipのインストールについては、以下の記事をご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://itc.tokyo/python/install-pip/" title="404 NOT FOUND | ITC Media" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://itc.tokyo/wp-content/uploads/itc-logo.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">404 NOT FOUND | ITC Media</div><div class="blogcard-snippet external-blogcard-snippet">IT業界へのChallengeを応援します</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://itc.tokyo/404/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">itc.tokyo</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc6">Djangoに必要なパッケージをインストールする</span></h3>



<p>Djangoに必要なパッケージのインストールや環境構築を実施していきます。</p>



<p>まずは「virtualenv」のインストールします。「virtualenv」は仮想環境を作成するためのパッケージです。ローカルPCにおいてPythonの開発を行うときは、仮想の実行環境を作成してそこにパッケージをインストールすることで、開発内容に応じて仮想環境を切り替えて使用することができるためです。</p>



<p>「virtualenv」はターミナルにおいて下記のコマンドを実行してインストールします。</p>



<pre class="wp-block-code"><code>$ pip install virtualenv</code></pre>



<p>アプリ開発用のフォルダを作成します。フォルダ名は任意で問題ないですが、ここでは「django」というフォルダを作成します。</p>



<pre class="wp-block-code"><code>$ mkdir django</code></pre>



<p>作成したフォルダに移動し、virtualenvコマンドで、仮想環境を作成します。</p>



<pre class="wp-block-code"><code>$ virtualenv -p python3 venv</code></pre>



<p>仮想環境を作成すると、「venv」というフォルダが作成されます。また、djangoフォルダ直下に「requirements.txt」を作成します。この時点で、下記のフォルダ構成となります。</p>



<pre class="wp-block-code"><code>django(フォルダ)
├── requirements.txt
└── venv（フォルダ）</code></pre>



<p>仮想環境を起動する方法は、使用しているOSにより異なり、Windowsの場合は以下のコマンドにより起動します。</p>



<pre class="wp-block-code"><code>$ venv/Scripts/activate</code></pre>



<p>Macの場合は以下のコマンドにより起動します。</p>



<pre class="wp-block-code"><code>$ source venv/bin/activate</code></pre>



<p>仮想環境を作成したら、Djangoのパッケージをインストールしていきます。まず、「requirements.txt」に以下の内容を記述します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">django/requirements.txt</span>
Django~=3.2.10
mysqlclient==2.1.0</code></pre>



<p>作成後に、以下のコマンドを実行すると仮想環境にDjangoがインストールされます。</p>



<pre class="wp-block-code"><code>(venv) $ pip install -r requirements.txt</code></pre>



<p>これで、Djangoに必要なパッケージをインストールは完了です。</p>



<h3 class="wp-block-heading"><span id="toc7">MySQLをインストールする</span></h3>



<p>MySQLをローカルPCにインストールします。インストール方法については、以下の記事をご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.fenet.jp/infla/column/server/mysql%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%AE%E6%96%B9%E6%B3%95%E3%81%A8%E3%81%AF%EF%BC%9F%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86%E3%82%92os/" title="MySQLインストールの方法とは？インストール手順をOS別に紹介 テックマガジン from FEnetインフラ" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.fenet.jp%2Finfla%2Fcolumn%2Fserver%2Fmysql%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B9%25E3%2583%2588%25E3%2583%25BC%25E3%2583%25AB%25E3%2581%25AE%25E6%2596%25B9%25E6%25B3%2595%25E3%2581%25A8%25E3%2581%25AF%25EF%25BC%259F%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B9%25E3%2583%2588%25E3%2583%25BC%25E3%2583%25AB%25E6%2589%258B%25E9%25A0%2586%25E3%2582%2592os%2F?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">MySQLインストールの方法とは？インストール手順をOS別に紹介 テックマガジン from FEnetインフラ</div><div class="blogcard-snippet external-blogcard-snippet">MySQLのインストール方法は使用しているパソコンのOSによって異なります。macOSを使用している場合、Homebrewを経由してインストールを行います。Windowsを使用している場合は、インストーラー経由でインストールを行います。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.fenet.jp/infla/column/server/mysql%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%ae%e6%96%b9%e6%b3%95%e3%81%a8%e3%81%af%ef%bc%9f%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e6%89%8b%e9%a0%86%e3%82%92os/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.fenet.jp</div></div></div></div></a>



<p>MySQLのインストールが完了したら、下のコマンドでMySQLの起動を行い、接続できるか確認してみましょう。</p>



<pre class="wp-block-code"><code>$ mysql -u root -p
...
mysql&gt;</code></pre>



<p>このままDjangoで使用するデータベースを作成します。mysqlに接続した状態で以下のコマンドを実行します。今回は、「database_name」という名前のデータベースを作成します。</p>



<pre class="wp-block-code"><code>mysql&gt; create database database_name;</code></pre>



<p>以下の、「show databases;」を実行して、「database_name」のデータベースが作成されていることを確認しましょう。</p>



<pre class="wp-block-code"><code>mysql&gt; show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| database_name      |
| sys                |
+--------------------+
6 rows in set (0.01 sec)</code></pre>



<h2 class="wp-block-heading"><span id="toc8">Djangoで管理画面を作成する</span></h2>



<p>Djangoの管理画面を作成していきましょう！流れとしては、以下の流れとなります。</p>



<ul class="wp-block-list">
<li>プロジェクトを作成する</li>



<li>アプリケーションを作成する</li>



<li>データベース処理を設定する</li>



<li>管理画面を作成する</li>
</ul>



<h3 class="wp-block-heading"><span id="toc9">プロジェクトを作成する</span></h3>



<p>まずはDjangoのプロジェクトを作成します。OSがmacの場合は以下のコマンドを実行してください。</p>



<pre class="wp-block-code"><code>(venv)$ django-admin startproject mysite .</code></pre>



<p>OSがwindowsの場合は以下のコマンドとなります。</p>



<pre class="wp-block-code"><code>(venv)$ django-admin.exe startproject mysite .</code></pre>



<p>コマンド実行後、下記のようにプロジェクトとなる「mysite」フォルダとプロジェクト関連のファイルが作成されます。</p>



<pre class="wp-block-code"><code>django
├── mysite // プロジェクトディレクトリ
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py　// プロジェクト設定ファイル
│   ├── urls.py　// プロジェクト用ルーティング定義ファイル
│   └── wigi.py // webサーバーとの接続用ファイル
├── manage.py　// コマンド実行ファイル
├── requirements.txt
└──  venv</code></pre>



<p>作成されたsettings.pyの、「ALLOWED_HOSTS」、「DATABASE」の部分を以下のように変更し、「STATIC_ROOT」を以下のようにファイルの最後に追加してください。</p>



<pre class="wp-block-code"><code><span class="badge-purple">django/mysite/settings.py</span>

ALLOWED_HOSTS = &#91;'localhost',]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database_name',
        'USER': 'root',
        'PASSWORD': 'mysqlサーバーのパスワードを入力',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

STATIC_ROOT = os.path.join(BASE_DIR, 'static')</code></pre>



<h3 class="wp-block-heading"><span id="toc10">アプリケーションを作成する</span></h3>



<p>次に、プロジェクトの中にアプリケーションを作成していきます。以下のコマンドを実行するとアプリケーションの部分が作成されます。</p>



<pre class="wp-block-preformatted">(venv)$ python3 manage.py startapp app</pre>



<p>以下のように、アプリケーションディレクトリとなる「app」フォルダとアプリケーション関連のファイルが作成されます。</p>



<pre class="wp-block-code"><code>django
├── app // アプリケーションディレクトリ
│   ├── admin.py // 管理サイト設定ファイル
│   ├── apps.py // アプリケーション構成設定ファイル
│   ├── __init__.py
│   ├── migrations // マイグレーションファイルを格納するディレクトリ
│   │   └── __init__.py
│   ├── models.py // モデル定義ファイル
│   ├── tests.py // テストコードファイル
│   └── views.py // ビュー定義ファイル
├── mysite 
├── manage.py　
├── requirements.txt
└── venv</code></pre>



<p>アプリケーションを使えるようにするには、「mysite/settings.py」の「INSTALLED_APPS」 にアプリケーションを追加します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">mysite/settings.py</span>

INSTALLED_APPS = &#91;
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app', # 追加
]</code></pre>



<h3 class="wp-block-heading"><span id="toc11">データベース処理を設定する</span></h3>



<p>ここでは、データベース処理をする設定を反映していきます。</p>



<p>Djangoでは、models.pyを設定することでSQLを意識することなくデータベースに対する処理をすることが出来ます。今回は例として、投稿機能のモデルとなる「Post」クラスをmodels.pyに設定していきます。「django/app/models.py」に対して、下記のコードを記述します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">django/app/models.py</span>

from django.conf import settings
from django.db import models
from django.utils import timezone

class Post(models.Model):
	author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
	title = models.CharField("タイトル", max_length=200)
	content = models.TextField("本文")
	created = models.DateTimeField("作成日", default=timezone.now)

	def __str__(self):
		return self.title</code></pre>



<p>「author」は著者、「title」はタイトル、「content」は本文、「created」は作成日のフィールドで、それぞれ投稿した情報を格納します。Djangoではこのように、フィールドを設定したモデルのクラスを作成することで、データベースへのデータ保存と取り出しの設定を実施していきます</p>



<p>models.pyの準備が完了したのでmigrateでDjangoでデータベースを構築します。以下のコマンドによって、作成した「Post」モデルがMySQLのデータベースに反映されます。</p>



<pre class="wp-block-code"><code>(venv) $ python manage.py makemigrations
(venv) $ python manage.py migrate</code></pre>



<h3 class="wp-block-heading"><span id="toc12">管理画面を作成する</span></h3>



<p>djangoでは管理者用の管理画面がフレームワーク内に組み込まれています。管理画面は新規作成、編集、削除などのでデータベース操作を、web上で実施できる便利な画面です。ここでは管理画面でデータを操作できるよう作成して確認していきます。</p>



<p>まず、「django/app/admin.py」に下記のソースコードを追記します。具体的には、「admin.site.register」関数の引数に、「django/app/models.py」の「Post」モデルを指定し、管理画面からデータベースを操作できるようにします。</p>



<pre class="wp-block-code"><code><span class="badge-purple">django/app/admin.py</span>

from django.contrib import admin
from .models import Post

admin.site.register(Post)</code></pre>



<p>次に、ターミナルで下記コマンドを実行して、管理者ユーザーを作成します。コマンド実行後、出力される案内に応じて、管理者のユーザー名、メールアドレス、パスワードを入力します。</p>



<pre class="wp-block-code"><code>(venv) $ python3 manage.py createsuperuser</code></pre>



<p>さらにターミナルで下記のコマンドを実行して、OSがmacの場合はアプリケーションを起動させてます。</p>



<pre class="wp-block-code"><code> (venv) $　python manage.py runserver</code></pre>



<p>起動後にブラウザで<a rel="noopener noreferrer" target="_blank" href="http://localhost:8000/admin/">http://localhost:8000/admin/</a>にアクセスすると、管理画面のログイン画面が表示されます。ユーザー名とパスワードを入力すると、以下の管理画面が表示されます。この画面から、各モデルの内容を確認したり、作成、編集、削除することができます。</p>



<figure class="wp-block-image aligncenter size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/14075304/djangoAdminImage.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/14075304/djangoAdminImage.png" alt="djangoの管理画面のイメージ"/></a></figure>



<h2 class="wp-block-heading"><span id="toc13">さいごに</span></h2>



<p>これで、DjangoでのWEBアプリ作成における、環境のインストール、プロジェクトとアプリケーションの作成、データベースへの接続、管理画面の作成などの、環境構築方法についての説明を終わります。</p>



<p>本記事ではDjangoの環境構築までに留まっておりますが、実際にアプリケーションを作成してインターネットに公開するまでを知りたい、という方は、下記のリンクをぜひご覧ください！</p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/1" title="【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_web_application_docker_django_aws_nginx_mysql_Y0IZtD9.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)</div><div class="blogcard-snippet external-blogcard-snippet">このプランによって、Django x Nginx x mysqlのWEBアプリをdockerコンテナ環境でイチから作成し、AWSにてインターネットに公開することが出来るようになります。このプランは、初心者・独学でもWEBアプリの作成・公開ま...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/1" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>
]]></content:encoded>
					
					<wfw:commentRss>https://goal-path.com/info/programing-django-database-admin/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】AWSの無料利用枠内でのEC2の使い方</title>
		<link>https://goal-path.com/info/programing-how-to-use-ec2/</link>
					<comments>https://goal-path.com/info/programing-how-to-use-ec2/#respond</comments>
		
		<dc:creator><![CDATA[ともはろ@Goal-Path代表]]></dc:creator>
		<pubDate>Fri, 08 Jul 2022 08:45:27 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">https://info.actpose.com/?p=577</guid>

					<description><![CDATA[本記事は、以下の目的で作成しています。 本記事ではAWSとEC2などのインフラのみの扱いですが、インフラ構築だけでなく『最速で実際のWEBアプリを開発して公開する方法まで知りたい』という方は、下記のリンクをぜひご覧くださ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事は、以下の目的で作成しています。</p>



<ul class="has-watery-green-background-color has-background wp-block-list">
<li><strong><span class="marker-under">AWSやEC2の特徴やメリットが分かるようになる</span></strong></li>



<li><span class="marker-under"><span class="bold">AWSの無料用枠内でEC2インスタンスを作成し使えるようになる</span></span></li>
</ul>



<p>本記事ではAWSとEC2などのインフラのみの扱いですが、インフラ構築だけでなく『最速で実際のWEBアプリを開発して公開する方法まで知りたい』という方は、下記のリンクをぜひご覧ください！</p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/1" title="【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_web_application_docker_django_aws_nginx_mysql_Y0IZtD9.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)</div><div class="blogcard-snippet external-blogcard-snippet">このプランによって、Django x Nginx x mysqlのWEBアプリをdockerコンテナ環境でイチから作成し、AWSにてインターネットに公開することが出来るようになります。このプランは、初心者・独学でもWEBアプリの作成・公開ま...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/1" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">AWS EC2とは</a></li><li><a href="#toc2" tabindex="0">AWS EC2を使うメリット</a><ol><li><a href="#toc3" tabindex="0">コストを抑えることができる</a></li><li><a href="#toc4" tabindex="0">あっという間にサーバーを作成できる</a></li><li><a href="#toc5" tabindex="0">スペックや台数変更が自在</a></li></ol></li><li><a href="#toc6" tabindex="0">EC2インスタンスを作成する</a><ol><li><a href="#toc7" tabindex="0">インスタンスを作成する</a></li><li><a href="#toc8" tabindex="0">パブリックIPを付与する</a></li><li><a href="#toc9" tabindex="0">インスタンスにSSH接続する</a></li></ol></li><li><a href="#toc10" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">AWS EC2とは</span></h2>



<p><span class="marker-under">AWSはAmazon Web Serviceの略でAmazonによって提供されるクラウドコンピューティングを使用したサービスです。</span>「初期費用ゼロ」、「従量課金であるためコスト低減可能」、「自在なサイジングが可能」といった特徴があります。</p>



<p>EC2（Elastic Compute Cloud）とはAWSのサービスの一つで、仮想サーバー構築サービスです。<span class="marker-under">EC2を利用することで、<strong>OSを乗せた仮想環境をクラウド上にすばやく作ることができます</strong>。</span>詳細については以下の記事が参考になるので、ぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://techplay.jp/column/537" title="AmazonのAWS EC2とは？はじめての人向けに解説 - TECH PLAY" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://techplay.jp/webv2/assets/d208730/image/thumbnail.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">AmazonのAWS EC2とは？はじめての人向けに解説 - TECH PLAY</div><div class="blogcard-snippet external-blogcard-snippet">Amazonが提供しているクラウドサービスのAWSといえば、仮想サーバー構築のクラウドサービスとして有名です。この記事ではAWS EC2の概要をはじめEC2を利用するメリット、インスタンス利用料金プランについても説明します。最後にEC2で利...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://techplay.jp/column/537" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">techplay.jp</div></div></div></div></a>



<h2 class="wp-block-heading"><span id="toc2">AWS EC2を使うメリット</span></h2>



<p>AWSのEC2を使用するメリットとしては、主に以下が上げられます。</p>



<ul id="block-97654b0c-215a-4e35-b5c7-fc327cf0c398" class="has-watery-blue-background-color has-background wp-block-list">
<li><strong>コストを抑えることができる</strong></li>



<li><strong>あっという間にサーバーを作成できる</strong></li>



<li><strong>スペックや台数変更が自在</strong></li>
</ul>



<p>具体的に、ひとつひとつ見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc3">コストを抑えることができる</span></h3>



<p>EC2のコストは従量課金制となっています。スペックに応じて、使った分だけ費用を支払う形になるので、イニシャルの費用、ランニング費用を共に抑える事が可能です。また、EC2では１年間の無料利用枠が存在します。利用できるスペックは限定されていますが、初心者の方は無料でお金の心配をすることなく利用することも可能です。</p>



<h3 class="wp-block-heading"><span id="toc4">あっという間にサーバーを作成できる</span></h3>



<p>ハードウェアのサーバの場合、サーバーとなるマシンを手配して、設営して、その後に設定をして、といった工程が発生する為、サーバーを構築するまでにある程度の時間を要します。これに対して、EC2では、物理的なハードは必要とせず仮想サーバーであるため、数分で作成することが出来ます。</p>



<h3 class="wp-block-heading"><span id="toc5">スペックや台数変更が自在</span></h3>



<p>サーバーを構築する場合、予め利用量を想定してスペックを決めます。しかし、想定よりも利用が多くなったり、逆に想定よりも少なかった場合において、スペックを変更したいケースが発生します。EC2では、利用状況に合わせて、サーバのCPU、メモリ、容量などのスペックを後からでも自由に変更することが出来るので、これらの状況に対しても柔軟に対応することが出来ます。</p>



<h2 class="wp-block-heading"><span id="toc6">EC2インスタンスを作成する</span></h2>



<p>EC２インスタンスを作成し、仮想サーバーに入ってOSを使用する方法について説明します。</p>



<p>EC2インスタンスを作成するためには、AWSのユーザアカウントを作成する必要があります。ユーザーアカウントの作成については、下記の記事が参考になりますので是非ご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.cloudsolution.tokai-com.co.jp/white-paper/2021/0604-238.html" title="プロが教えるAWSアカウント作成方法 ～ルートユーザアカウント作成編～ | AWS導入支援の全工程をワンストップで提供 | TOKAIコミュニケーションズ AWSソリューション" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.cloudsolution.tokai-com.co.jp/white-paper/2021/resource/0602-img-01.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">プロが教えるAWSアカウント作成方法 ～ルートユーザアカウント作成編～ | AWS導入支援の全工程をワンストップで提供 | TOKAIコミュニケーションズ AWSソリューション</div><div class="blogcard-snippet external-blogcard-snippet">プロが教えるAWSアカウント作成方法 ～ルートユーザアカウント作成編～をご紹介します。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.cloudsolution.tokai-com.co.jp/white-paper/2021/0604-238.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.cloudsolution.tokai-com.co.jp</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc7">インスタンスを作成する</span></h3>



<p>まず、右上のメニューから、「アジアパシフィック（東京）」のリージョンを選択します。</p>



<figure class="wp-block-image aligncenter size-full is-resized"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/08050838/selectRegion.png"><img loading="lazy" decoding="async" width="493" height="855" src="https://media.goal-path.com/wp-content/uploads/2022/07/08050838/selectRegion.png" alt="AWSで東京リージョンを選択する" class="wp-image-582" style="aspect-ratio:0.5766081871345029;width:240px;height:auto" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/08050838/selectRegion.png 493w, https://media.goal-path.com/wp-content/uploads/2022/07/08050838/selectRegion-173x300.png 173w" sizes="(max-width: 493px) 100vw, 493px" /></a></figure>



<p>次に、AWSのコンソール画面から「EC2」と検索して、EC2のダッシュボード画面に移動し、『インスタンスを起動』ボタンをクリックします。</p>



<figure class="wp-block-image size-full"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/08051212/createEC2Instance.png"><img loading="lazy" decoding="async" width="1000" height="415" src="https://media.goal-path.com/wp-content/uploads/2022/07/08051212/createEC2Instance.png" alt="EC2インスタンスを作成する" class="wp-image-583" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/08051212/createEC2Instance.png 1000w, https://media.goal-path.com/wp-content/uploads/2022/07/08051212/createEC2Instance-300x125.png 300w, https://media.goal-path.com/wp-content/uploads/2022/07/08051212/createEC2Instance-768x319.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></a></figure>



<p>EC2の設定ページに移動します。名前には任意の名前を入力し、任意のOSを選択します。ここでは、OSは「Ubuntu」で設定します</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="789" height="886" src="https://media.goal-path.com/wp-content/uploads/2022/07/08051322/settingEC2NameAndOS.png" alt="EC2インスタンスのOSを設定する" class="wp-image-584" style="aspect-ratio:0.8905191873589164;width:582px;height:auto" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/08051322/settingEC2NameAndOS.png 789w, https://media.goal-path.com/wp-content/uploads/2022/07/08051322/settingEC2NameAndOS-267x300.png 267w, https://media.goal-path.com/wp-content/uploads/2022/07/08051322/settingEC2NameAndOS-768x862.png 768w" sizes="(max-width: 789px) 100vw, 789px" /></figure>



<p>設定を進めていき、「キーペア（ログイン）」内の「新しいキーペアの作成」をクリックし、下記画面にて任意のキーペア名を入力後、「キーペアを作成」をクリックします。拡張子が「.pem」のファイルがダウンロードされるので、ローカルPCの任意のフォルダ内に格納してください。</p>



<figure class="wp-block-image aligncenter size-full is-resized"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/08051422/createEC2KeyPair.png"><img loading="lazy" decoding="async" width="598" height="650" src="https://media.goal-path.com/wp-content/uploads/2022/07/08051422/createEC2KeyPair.png" alt="EC2インスタンスのキーペアを作成する" class="wp-image-585" style="aspect-ratio:0.92;width:339px;height:auto" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/08051422/createEC2KeyPair.png 598w, https://media.goal-path.com/wp-content/uploads/2022/07/08051422/createEC2KeyPair-276x300.png 276w" sizes="(max-width: 598px) 100vw, 598px" /></a></figure>



<p>「ネットワーク設定」内で「編集」をクリックし、VPCとサブネットはデフォルトのまま、パブリックIPの自動割当は「無効化」、セキュリティグループはグループ名を「app-ec2-security-group」と変更し、セキュリティグループルールのタイプ「ssh」に対してソースタイプを「自分のIP」と選択します。これで、あなたのIPアドレスのみ作成したインスタンスにSSH接続できる状態となります。</p>



<figure class="wp-block-image aligncenter size-full is-resized"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/08051532/settingEC2DefaultNetwork.png"><img loading="lazy" decoding="async" width="689" height="868" src="https://media.goal-path.com/wp-content/uploads/2022/07/08051532/settingEC2DefaultNetwork.png" alt="EC2インスタンスのネットワーク設定をする" class="wp-image-586" style="aspect-ratio:0.793778801843318;width:425px;height:auto" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/08051532/settingEC2DefaultNetwork.png 689w, https://media.goal-path.com/wp-content/uploads/2022/07/08051532/settingEC2DefaultNetwork-238x300.png 238w" sizes="(max-width: 689px) 100vw, 689px" /></a></figure>



<p>最後に無料利用枠内のスペックとなるように、インスタンス数は「１」、インスタンスタイプは「t2.micro」、ストレージは「1x8GiB」のデフォルト設定のままにして、「インスタンスを起動」をクリックします。これでEC2インスタンスが作成されます。。</p>



<figure class="wp-block-image aligncenter size-full"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/08051630/startEC2Instance.png"><img loading="lazy" decoding="async" width="338" height="493" src="https://media.goal-path.com/wp-content/uploads/2022/07/08051630/startEC2Instance.png" alt="EC2インスタンスを開始する" class="wp-image-587" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/08051630/startEC2Instance.png 338w, https://media.goal-path.com/wp-content/uploads/2022/07/08051630/startEC2Instance-206x300.png 206w" sizes="(max-width: 338px) 100vw, 338px" /></a></figure>



<h3 class="wp-block-heading"><span id="toc8">パブリックIPを付与する</span></h3>



<p>EC2インスタンスに接続して実際にOSを使用するために、本記事ではSSH接続を行います。SSH接続を行うためにはパブリックIPが必要です。本記事では、パブリックIPを「AWS Elastic IP アドレス（EIP）」によって取得していきます。EIPとは、固定のパブリックIPアドレス（IPv4）を EC2等のインスタンスに設定できるAWSのサービスです。</p>



<p>まず、EC2ダッシュボードのリソースからElastic IPをクリックします。その後、画面右上の「Elastic IPアドレスを割り当てる」をクリックします。移動したページにおいて、Elastic IP アドレスの設定はすべてそのままにし、画面右下の「割り当て」をクリック後に、Elastic IPアドレスが作成されると下記画像のようにリストアップされます。ここで、左端のチェックボックスがONにした後に、右上の「ToDo」メニューから「Elastic IP アドレスの関連付け」をクリックします。</p>



<figure class="wp-block-image size-full"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/08051727/setElasticIP.png"><img loading="lazy" decoding="async" width="1000" height="152" src="https://media.goal-path.com/wp-content/uploads/2022/07/08051727/setElasticIP.png" alt="AWSでElastic IPを設定する" class="wp-image-589" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/08051727/setElasticIP.png 1000w, https://media.goal-path.com/wp-content/uploads/2022/07/08051727/setElasticIP-300x46.png 300w, https://media.goal-path.com/wp-content/uploads/2022/07/08051727/setElasticIP-768x117.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></a></figure>



<p>インスタンスには作成したEC2インスタンス、プライベートIPアドレスにはEC2のプライベートIPアドレス（プライベートIPアドレスは、作成済みのインスタンス一覧から該当インスタンスをクリックして表示される詳細の中に表示されます。ここでは、「10.0.193.25」です）を入力して「関連付ける」をクリックします。これで、EC2にパブリックIPアドレスが付与されます。</p>



<figure class="wp-block-image aligncenter size-full is-resized"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/08051916/setElasticIPtoEC2Instance.png"><img loading="lazy" decoding="async" width="718" height="512" src="https://media.goal-path.com/wp-content/uploads/2022/07/08051916/setElasticIPtoEC2Instance.png" alt="EC2に対してElastic IPを設定する" class="wp-image-590" style="aspect-ratio:1.40234375;width:516px;height:auto" srcset="https://media.goal-path.com/wp-content/uploads/2022/07/08051916/setElasticIPtoEC2Instance.png 718w, https://media.goal-path.com/wp-content/uploads/2022/07/08051916/setElasticIPtoEC2Instance-300x214.png 300w" sizes="(max-width: 718px) 100vw, 718px" /></a></figure>



<h3 class="wp-block-heading"><span id="toc9">インスタンスにSSH接続する</span></h3>



<p>パブリックIPを付与したので、SSH接続してOSにログインしていきます。SSH接続については、下記の記事が参考になるので是非ご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.kagoya.jp/howto/it-glossary/server/ssh/" title="SSHとは？仕組みとSSHサーバーの設定をわかりやすく解説します！ - カゴヤのサーバー研究室" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.kagoya.jp/howto/wp-content/uploads/Fotolia_247857218_XS.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">SSHとは？仕組みとSSHサーバーの設定をわかりやすく解説します！ - カゴヤのサーバー研究室</div><div class="blogcard-snippet external-blogcard-snippet">SSHとは「Secure SSHとは「Secure Shell」の略で、ネットワークに接続された機器を遠隔操作し、管理するための手段です。ポイントはSecure（安全）に！で、そのために必要な仕組みが用意されています。この記事では初心者の方...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.kagoya.jp/howto/it-glossary/server/ssh/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.kagoya.jp</div></div></div></div></a>



<p>まず、ローカルPCのコンソール画面にて下記コマンドを入力して、キーペアのパーミッションを変更します。「.\key.pem」のところには、EC2を作成した時のキーペアのパスを指定します。</p>



<pre class="wp-block-code"><code>sudo chmod 400.\key.pem</code></pre>



<p>続いて、下記のコマンドを入力します。「.\key.pem」のところには、EC2を作成した時のキーペアのパスを指定します。「192.168.0.1」のところには、Elastic IPで取得したパブリックIPを指定します。（パブリックIPアドレスは、作成済みのインスタンス一覧から該当インスタンスをクリックして表示される詳細の中に表示されます。）</p>



<pre class="wp-block-code"><code>$ sudo ssh -i .\key.pem ubuntu@192.168.0.1</code></pre>



<p>うまくいくと、下記の文章が出力されるので、「yes」と入力します。</p>



<pre class="wp-block-code"><code>The authenticity of host '192.168.0.1 (192.168.0.1)' can't be established.
ECDSA key fingerprint is SHA256:Inw1gzRrShO0ZKysKhUaRg78gjSp3JNS8nNB2vNC0vA.
Are you sure you want to continue connecting (yes/no/&#91;fingerprint])? yes</code></pre>



<p>「Welcome to Ubuntu 20.04.3 LTS…」で始まる文章が出力されれば接続成功です。</p>



<p>※上記はローカルPCのOSがmacかLinuxであることが前提です。windows PCの場合は下記のリンクを参照してください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/sumomomomo/items/28d54e35bfa5bc524cf5" title="Windowsコマンドプロンプトからec2にsshする - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRmF2YXRhcnMzLmdpdGh1YnVzZXJjb250ZW50LmNvbSUyRnUlMkY0ODMwMjI0MyUzRnYlM0Q0P2l4bGliPXJiLTQuMC4wJmFyPTElM0ExJmZpdD1jcm9wJm1hc2s9ZWxsaXBzZSZiZz1GRkZGRkYmZm09cG5nMzImcz01YWJhNGFhY2RmMmEzYmIzYWRhNWQ4OGU5YjNhMzA1OQ%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D882adc480ad66c3c39c58b6dde8fad4b?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9V2luZG93cyVFMyU4MiVCMyVFMyU4MyU5RSVFMyU4MyVCMyVFMyU4MyU4OSVFMyU4MyU5NyVFMyU4MyVBRCVFMyU4MyVCMyVFMyU4MyU5NyVFMyU4MyU4OCVFMyU4MSU4QiVFMyU4MiU4OWVjMiVFMyU4MSVBQnNzaCVFMyU4MSU5OSVFMyU4MiU4QiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1wYWQ9MCZzPTUwMzdkMzU3OWZlMGYwMTU1MTVlNTMyZWQyYzA3Mzcy&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBzdW1vbW9tb21vJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LXBhZD0wJnM9MmMyMzE4ZTFkMGI4YzQ1MDEzZTZkMzgxODc3NDk0MTU&#038;blend-x=242&#038;blend-y=480&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;s=a32859522bc6e88f6c2e71bd73f50db8" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Windowsコマンドプロンプトからec2にsshする - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Windowsで開発環境整えるのって難しいですよね…。 Linuxに比べて資源少ないし…。 今回はEC2デビューしたので、WindowsのCMDからEC2にSSHする方法を説明します。 環境 Windows10 Command Prompt...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/sumomomomo/items/28d54e35bfa5bc524cf5" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>



<h2 class="wp-block-heading"><span id="toc10">さいごに</span></h2>



<p>これで、AWSの無料利用枠内でのEC2インスタンスを作成し接続する方法の紹介を終わります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://goal-path.com/info/programing-how-to-use-ec2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】Python x Dockerの開発環境をVS Codeで構築</title>
		<link>https://goal-path.com/info/programing-vscode-docker-python/</link>
					<comments>https://goal-path.com/info/programing-vscode-docker-python/#respond</comments>
		
		<dc:creator><![CDATA[ともはろ@Goal-Path代表]]></dc:creator>
		<pubDate>Thu, 07 Jul 2022 11:02:48 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[VS code]]></category>
		<guid isPermaLink="false">https://info.actpose.com/?p=539</guid>

					<description><![CDATA[本記事では、Docker上でPythonのプログラミングを実行できる環境を、VS Codeで構築する方法について紹介します。 本記事では環境構築のみの扱いですが、環境構築だけでなく『実際にPythonで開発してWEBアプ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事では、Docker上でPythonのプログラミングを実行できる環境を、VS Codeで構築する方法について紹介します。</p>



<p>本記事では環境構築のみの扱いですが、環境構築だけでなく『実際にPythonで開発してWEBアプリを公開する方法まで知りたい』という方は、下記のリンクをぜひご覧ください！</p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/1" title="【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_web_application_docker_django_aws_nginx_mysql_Y0IZtD9.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)</div><div class="blogcard-snippet external-blogcard-snippet">このプランによって、Django x Nginx x mysqlのWEBアプリをdockerコンテナ環境でイチから作成し、AWSにてインターネットに公開することが出来るようになります。このプランは、初心者・独学でもWEBアプリの作成・公開ま...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/1" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0"> Docker ・ Python・VS Codeの特徴とメリット </a><ol><li><a href="#toc2" tabindex="0">Pythonの特徴とメリット</a></li><li><a href="#toc3" tabindex="0">Dockerの特徴とメリット</a></li><li><a href="#toc4" tabindex="0">VS Codeの特徴とメリット </a></li></ol></li><li><a href="#toc5" tabindex="0">必要なソフトウェアをインストールする</a><ol><li><a href="#toc6" tabindex="0">Dockerをインストールする</a></li><li><a href="#toc7" tabindex="0">VS Codeをインストールする</a></li></ol></li><li><a href="#toc8" tabindex="0">Python x Dockerの開発環境を構築する</a><ol><li><a href="#toc9" tabindex="0">拡張機能をインストールする</a></li><li><a href="#toc10" tabindex="0">Pythonのコンテナを作成する</a></li><li><a href="#toc11" tabindex="0">リモートコンテナを立ち上げる</a></li></ol></li><li><a href="#toc12" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1"> Docker ・ Python・VS Codeの特徴とメリット </span></h2>



<p>まず、Python、Docker、VS Codeとは何か？それぞれの特徴とメリットについてご紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc2">Pythonの特徴とメリット</span></h3>



<p>Pythonとは、オープンソースで運営されているプログラミング言語です。<span class="marker-under">Pythonのプログラミング言語としての主な特徴は、少ないコードで簡潔にプログラムを書けること、専門的なライブラリが豊富にあることなどが挙げられます</span>。Pythonについては、下記の記事にて分かりやすく紹介されています。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.internetacademy.jp/it/programming/programming-basic/what-is-python.html" title="Python&#12392;&#12399;&#65311;&#22823;&#20154;&#27671;&#12503;&#12525;&#12464;&#12521;&#12511;&#12531;&#12464;&#35328;&#35486;&#12398;&#12513;&#12522;&#12483;&#12488;&#12420;&#27963;&#29992;&#20107;&#20363;&#12434;&#12372;&#32057;&#20171;" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.internetacademy.jp%2Fit%2Fprogramming%2Fprogramming-basic%2Fwhat-is-python.html?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Python&#12392;&#12399;&#65311;&#22823;&#20154;&#27671;&#12503;&#12525;&#12464;&#12521;&#12511;&#12531;&#12464;&#35328;&#35486;&#12398;&#12513;&#12522;&#12483;&#12488;&#12420;&#27963;&#29992;&#20107;&#20363;&#12434;&#12372;&#32057;&#20171;</div><div class="blogcard-snippet external-blogcard-snippet">「Python （パイソン）」は、今最も注目を集めているプログラミング言語です。その特長として、人工知能（機械学習や深層学習）などの最先端分野の開発にも使われている一方、文法が平易なため、プログラミング初心者の方でも大規模なWebアプリケー...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.internetacademy.jp/it/programming/programming-basic/what-is-python.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.internetacademy.jp</div></div></div></div></a>



<p>Pythonをプログラミング言語として選択することで、以下のようなメリットがあります。</p>



<ul class="has-watery-blue-background-color has-background wp-block-list">
<li>初心者でも比較的とっつきやすい</li>



<li>DjangoやFlaskなどのフレームワークによって、簡単にWEBアプリのバックエンド開発が出来る</li>



<li>機械学習やAIを活用したアプリケーションの開発が出来る</li>
</ul>



<h3 class="wp-block-heading"><span id="toc3">Dockerの特徴とメリット</span></h3>



<p><strong><span class="marker-under">Dockerとは、Docker社が開発したコンテナ環境を構築できるプラットフォーム</span>です。</strong>コンテナとはOSに仮想的なユーザ空間を作成することで、この空間上で環境を構築しアプリケーションを作成、配布、実行することができます。詳細が知りたい方は、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://frontier.networld.co.jp/3182/" title="Dockerとは？～コンテナ・Kubernetesとの関係性～ | VMware Cloud Frontier by Networld" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://frontier.networld.co.jp/wp/wp-content/uploads/2021/03/UC_what-is-docker.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Dockerとは？～コンテナ・Kubernetesとの関係性～ | VMware Cloud Frontier by Networld</div><div class="blogcard-snippet external-blogcard-snippet">Dockerとは？～コンテナ・Kubernetesとの関係性～ 多くの企業がDX推進に注力する中で、Dockerを中心としたコンテナ活用への注目度が高まってきました。さらに、コンテナを管理するKubernetesにより、より複雑な環境の管理</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://frontier.networld.co.jp/useful-container/what-is-docker/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">frontier.networld.co.jp</div></div></div></div></a>



<p><span class="marker-under">Dockerによりコンテナ環境を構築するメリットは</span>、パッケージのインストールや、WEBサーバーとの接続設定をコード化することで、<span class="marker-under">本番環境と同じ環境で開発環境をつくれることです</span>。これによって、開発環境では動いたけれど、本番環境ではうまくいかないといった、環境によるリスクを軽減することができます。</p>



<h3 class="wp-block-heading"><span id="toc4">VS Codeの特徴とメリット </span></h3>



<p><span class="marker-under"><span class="bold"><strong>VS Code(Visual Studio Code)とは、</strong>マイクロソフト社が開発したエディタ</span></span>と呼ばれるソフトウェアのひとつです。<br>通常、<strong>プログラミングによる開発はこのエディタと呼ばれる開発環境で実行</strong>していきます。</p>



<p>VS Codeの詳細は以下の記事が参考となります。</p>




<a rel="noopener noreferrer" target="_blank" href="https://techacademy.jp/magazine/39548" title="Visual Studio Codeとは？インストールや使い方も現役エンジニアが解説 | TechAcademyマガジン" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://magazine-cf.techacademy.jp/wp-content/uploads/2020/06/22121239/149568404_s-800x534.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Visual Studio Codeとは？インストールや使い方も現役エンジニアが解説 | TechAcademyマガジン</div><div class="blogcard-snippet external-blogcard-snippet">初心者向けにVisual Studio Codeについて解説しています。これはMicrosoft社が提供するコードエディタです。Visual Studio Codeの特徴とメリット、導入と設定の手順、拡張機能の一部を紹介します。エディタ検討...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://magazine.techacademy.jp/magazine/39548" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">magazine.techacademy.jp</div></div></div></div></a>



<p>また、開発環境については、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://e-words.jp/w/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83.html" title="開発環境とは - IT用語辞典 e-Words" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://p.e-words.jp/img/Development-Environment-Image.webp" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">開発環境とは - IT用語辞典 e-Words</div><div class="blogcard-snippet external-blogcard-snippet">開発環境とは、機器やソフトウェア、システムを開発するために必要な機材やソフトウェアなどの組み合わせ。また、それらを組み合わせて構成された、開発者の作業環境。開発対象により含まれるものは千差万別だが、例えばソフトウェア開発なら、作業に用いるパ...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://e-words.jp/w/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">e-words.jp</div></div></div></div></a>



<p>VS Codeをエディタとして使用することは、下記のメリットがあります。</p>



<ul class="has-watery-blue-background-color has-background wp-block-list">
<li>入力候補を自動で表示してくれるので、サクサクとコーディング出来る</li>



<li>拡張機能が豊富</li>



<li>OSのターミナルをエディタの中で操作できる</li>



<li>デバック機能がある</li>
</ul>



<h2 class="wp-block-heading"><span id="toc5">必要なソフトウェアをインストールする</span></h2>



<p>ここでは、Docker、VS Codeをインストールする方法についてそれぞれご紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc6">Dockerをインストールする</span></h3>



<p>Dockerでコンテナを作成するために、まずはDockerが実行できる環境をPCに構築します。まずは、下記の参考サイトと手順に沿ってDockerをインストールします。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/bezeklik/items/a6a7335acaec12edda45" title="Docker のインストール手順 - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTUxNzUlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODM2OTk_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWRkZmUzNmMwOWZiYTUyOGEyYzJiM2RmM2YwNDM5MTJh%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D162d469081fe549bc7d2edc35e357913?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9RG9ja2VyJTIwJUUzJTgxJUFFJUUzJTgyJUE0JUUzJTgzJUIzJUUzJTgyJUI5JUUzJTgzJTg4JUUzJTgzJUJDJUUzJTgzJUFCJUU2JTg5JThCJUU5JUEwJTg2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9NjVmMjVjMzlmMDNhMjlmOWExNjE4OGZjMjlkNGNjZjI&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBiZXpla2xpayZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPWIwZDhhNWM0MjM2ZGY3M2NhZWE3ZDJlYmQ3MDAzN2Iw&#038;blend-x=242&#038;blend-y=480&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;s=d0cfad647f1d3b2edfffec871028b78e" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker のインストール手順 - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Docker Docker のインストール方法や内容が各環境で異なるので、インストールのみに絞った記事をまとめた。 各 OS 環境ではすべてパッケージ管理ソフトを利用してコンソールからインストールすることを想定している。 各 OS 環境の情...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/bezeklik/items/a6a7335acaec12edda45" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>



<p>さらに、Docker-composeをインストールします。Docker-Composeとは、複数のDockerコンテナを同時に立ち上げるためのツールです。今回はPythonのみのコンテナとなるのでインストール必須ではありませんが、後々アプリを作成することになった場合は、他のコンテナも使用する可能性が高くなるので、この機会に導入しましょう。Docker-composeは下記のサイトの手順でインストールできます。</p>




<a rel="noopener noreferrer" target="_blank" href="https://matsuand.github.io/docs.docker.jp.onthefly/compose/install/" title="Docker Compose のインストール" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fmatsuand.github.io%2Fdocs.docker.jp.onthefly%2Fcompose%2Finstall%2F?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Compose のインストール</div><div class="blogcard-snippet external-blogcard-snippet">Docker Compose のインストール方法。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://matsuand.github.io/docs.docker.jp.onthefly/compose/install/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">matsuand.github.io</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc7">VS Codeをインストールする</span></h3>



<p>次に、VS Codeをインストールします。VS Codeは下記の記事を参考にして、ダウンロードとインストールを実施してください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.javadrive.jp/vscode/install/index1.html" title="Visual Studio Codeのダウンロードとインストール" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.javadrive.jp/vscode/install/img/p1-0.webp" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Visual Studio Codeのダウンロードとインストール</div><div class="blogcard-snippet external-blogcard-snippet">Visual Studio Code のダウンロードと Windows 環境へのインストール方法について解説します。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.javadrive.jp/vscode/install/index1.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.javadrive.jp</div></div></div></div></a>



<h2 class="wp-block-heading"><span id="toc8">Python x Dockerの開発環境を構築する</span></h2>



<p>VSCode上で開発環境を構築する設定をします。VS Codeの基本操作については、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://zenn.dev/protoout/articles/19-vscode-handson" title="VSCodeの基本操作" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://res.cloudinary.com/zenn/image/upload/s--rNsOK5DP--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:VSCode%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E6%2593%258D%25E4%25BD%259C%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:%25E3%2583%2597%25E3%2583%25AD%25E3%2583%2588%25E3%2582%25A2%25E3%2582%25A6%25E3%2583%2588%25E3%2582%25B9%25E3%2582%25BF%25E3%2582%25B8%25E3%2582%25AA%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2U4ODViMTdkMjkuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">VSCodeの基本操作</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://zenn.dev/protoout/articles/19-vscode-handson" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">zenn.dev</div></div></div></div></a>



<p>Python x Dockerの開発環境をVSCode上で構築する具体的な流れについては下記となります。</p>



<ul class="wp-block-list">
<li>拡張機能をインストールする</li>



<li>Pythonのコンテナを作成する</li>



<li>リモートコンテナを立ち上げる</li>
</ul>



<h3 class="wp-block-heading"><span id="toc9">拡張機能をインストールする</span></h3>



<p>VS Codeで必要となる拡張機能をインストールします。拡張機能は、エディタを開いた後で『Ctrl+Shift+x』によって拡張機能の検索画面を開くことが出来ます。最低限必須な拡張機能は下記となりますので、検索して全てインストールしてください。</p>



<ul class="wp-block-list">
<li>Docker  （Dockerのための拡張機能）</li>



<li>Remote-Containers  （VS Code上で Dockerに入るための拡張機能）</li>



<li>YAML  （docker-compose.ymlファイルのための拡張機能）</li>
</ul>



<p>また、必須ではないですが、下記記事の拡張機能のインストールもおすすめです。</p>



<p><a rel="noopener noreferrer" target="_blank" href="https://zenn.dev/ruru/articles/396265425c9740">【参考】VSCodeのおすすめ拡張機能と便利な設定、キーバインド集</a></p>



<h3 class="wp-block-heading"><span id="toc10">Pythonのコンテナを作成する</span></h3>



<p>まず、必要なフォルダとファイルを作成します。『docker』フォルダを作業ディレクトリとして、下記の構成で作成をします。</p>



<pre class="wp-block-code"><code>docker（フォルダ）
├── .devcontainer（フォルダ）
│   ├── devcontainer.json（ファイル）
│   └── docker-compose.yml（ファイル）
├── Python（フォルダ）
│   ├── sample.py（ファイル）
│   ├── Dockerfile（ファイル）
│   └── requirements.txt（ファイル）
└── docker-compose.yml（ファイル）</code></pre>



<p>『docker』フォルダ直下の『docker-compose.yml』を下記のように記述して、『python』という名前のコンテナを起動する設定をします。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/docker-compose.yml</span>
version: '3'
services:
  python:
    restart: always
    build:
      context: .
      dockerfile: ./Python/Dockerfile
    container_name: 'python'
    working_dir: '/code'
    tty: true
    volumes:
      - ./Python:/code</code></pre>



<p>ymlファイルの中身については、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" title="Docker Compose - docker-compose.yml リファレンス - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTMwMDIlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODI2MzE_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWM0MTMxZjM0YTRmMzQwMTk4NWFkMGQzOGU2MWIzNjAx%26blend-x%3D120%26blend-y%3D462%26blend-w%3D90%26blend-h%3D90%26blend-mode%3Dnormal%26mark64%3DaHR0cHM6Ly9xaWl0YS1vcmdhbml6YXRpb24taW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1vcmdhbml6YXRpb24taW1hZ2UlMkYxNmJlMjM1NTQ4MjZkOGE4NDRiNzQwMTg3MGM2OTNhOGE2YmUwOWI1JTJGb3JpZ2luYWwuanBnJTNGMTQ4MjgwNzAwNz9peGxpYj1yYi00LjAuMCZ3PTQ0Jmg9NDQmZml0PWNyb3AmbWFzaz1jb3JuZXJzJmNvcm5lci1yYWRpdXM9OCZiZz1GRkZGRkYmYm9yZGVyPTIlMkNGRkZGRkYmZm09cG5nMzImcz03MjI1NTIwY2ViZTkzMTMwNTdiOTA0MTQxMjE3YTg0YQ%26mark-x%3D186%26mark-y%3D515%26mark-w%3D40%26mark-h%3D40%26s%3D8c3df3005fd8677d8464936346af3488?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9RG9ja2VyJTIwQ29tcG9zZSUyMC0lMjBkb2NrZXItY29tcG9zZS55bWwlMjAlRTMlODMlQUElRTMlODMlOTUlRTMlODIlQTElRTMlODMlQUMlRTMlODMlQjMlRTMlODIlQjkmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtcGFkPTAmcz1iNTg1NDkxOGU4NzEwMTIxYmUxNDYyMWY0M2U1ZmRmMA&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB6ZW1idXRzdSZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTdkY2MyMTBlNWQzZjgxM2E5NjMzMTIzNjIyN2Y3YWY2&#038;blend-x=242&#038;blend-y=454&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;txt64=44GV44GP44KJ44Kk44Oz44K_44O844ON44OD44OI5qCq5byP5Lya56S-&#038;txt-x=242&#038;txt-y=539&#038;txt-width=838&#038;txt-clip=end%2Cellipsis&#038;txt-color=%231E2121&#038;txt-font=Hiragino%20Sans%20W6&#038;txt-size=28&#038;s=8e46d172077fd5d6a62d4d4b4c9e8d8f" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Compose - docker-compose.yml リファレンス - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Docker Compose - docker-compose.yml リファレンス 原文：Compose file version 3 reference docker-comp...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>



<p>次に、コンテナのイメージを作成する『Dockerfile』を下記のように記述します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/Python/Dockerfile</span>
FROM python:3
USER root

RUN apt-get update
RUN apt-get -y install locales &amp;&amp; \
    localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
RUN apt-get install -y vim less

ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm

RUN mkdir -p /code
COPY ./Python/requirements.txt /code
WORKDIR /code

RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN pip install -r requirements.txt</code></pre>



<p>DockerファイルやDockerのイメージについては、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" title="Docker Compose - docker-compose.yml リファレンス - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTMwMDIlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODI2MzE_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWM0MTMxZjM0YTRmMzQwMTk4NWFkMGQzOGU2MWIzNjAx%26blend-x%3D120%26blend-y%3D462%26blend-w%3D90%26blend-h%3D90%26blend-mode%3Dnormal%26mark64%3DaHR0cHM6Ly9xaWl0YS1vcmdhbml6YXRpb24taW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1vcmdhbml6YXRpb24taW1hZ2UlMkYxNmJlMjM1NTQ4MjZkOGE4NDRiNzQwMTg3MGM2OTNhOGE2YmUwOWI1JTJGb3JpZ2luYWwuanBnJTNGMTQ4MjgwNzAwNz9peGxpYj1yYi00LjAuMCZ3PTQ0Jmg9NDQmZml0PWNyb3AmbWFzaz1jb3JuZXJzJmNvcm5lci1yYWRpdXM9OCZiZz1GRkZGRkYmYm9yZGVyPTIlMkNGRkZGRkYmZm09cG5nMzImcz03MjI1NTIwY2ViZTkzMTMwNTdiOTA0MTQxMjE3YTg0YQ%26mark-x%3D186%26mark-y%3D515%26mark-w%3D40%26mark-h%3D40%26s%3D8c3df3005fd8677d8464936346af3488?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9RG9ja2VyJTIwQ29tcG9zZSUyMC0lMjBkb2NrZXItY29tcG9zZS55bWwlMjAlRTMlODMlQUElRTMlODMlOTUlRTMlODIlQTElRTMlODMlQUMlRTMlODMlQjMlRTMlODIlQjkmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtcGFkPTAmcz1iNTg1NDkxOGU4NzEwMTIxYmUxNDYyMWY0M2U1ZmRmMA&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB6ZW1idXRzdSZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTdkY2MyMTBlNWQzZjgxM2E5NjMzMTIzNjIyN2Y3YWY2&#038;blend-x=242&#038;blend-y=454&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;txt64=44GV44GP44KJ44Kk44Oz44K_44O844ON44OD44OI5qCq5byP5Lya56S-&#038;txt-x=242&#038;txt-y=539&#038;txt-width=838&#038;txt-clip=end%2Cellipsis&#038;txt-color=%231E2121&#038;txt-font=Hiragino%20Sans%20W6&#038;txt-size=28&#038;s=8e46d172077fd5d6a62d4d4b4c9e8d8f" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Compose - docker-compose.yml リファレンス - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Docker Compose - docker-compose.yml リファレンス 原文：Compose file version 3 reference docker-comp...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>




<a rel="noopener noreferrer" target="_blank" href="https://and-engineer.com/articles/YaSPjRIAACAAkhMI" title="https://and-engineer.com/articles/YaSPjRIAACAAkhMI" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fand-engineer.com%2Farticles%2FYaSPjRIAACAAkhMI?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://and-engineer.com/articles/YaSPjRIAACAAkhMI</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://and-engineer.com/articles/YaSPjRIAACAAkhMI" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">and-engineer.com</div></div></div></div></a>



<p>Pythonで使用するライブラリは、『requirements.txt』の中に記述して設定します。例えば、『requests』と『beautifulsoup4』をライブラリとしてインストールする場合は、下記のように記述します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/Python/requirements.txt</span>
requests
beautifulsoup4</code></pre>



<p>次に、リモートコンテナでデバッグを実行するための設定ファイルを作成していきます。『.devcontainer』フォルダの中の、『devcontainer.json』と『docker-compose.yml』に対して、下記のように記述していきます。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/.devcontainer/devcontainer.json</span>
{
    "name": "Existing Docker Compose (Extend)",
    "dockerComposeFile": &#91;
	"../docker-compose.yml",
	"docker-compose.yml"
    ],
    "service": "python",
    "workspaceFolder": "/code",
    "settings": {
        "terminal.integrated.shell.linux": "/bin/bash"
    },
    "extensions": &#91;
        "ms-azuretools.vscode-docker",
        "ms-python.python"
    ],
    "shutdownAction": "stopCompose",
}</code></pre>



<pre class="wp-block-code"><code><span class="badge-purple">docker/.devcontainer/docker-compose.yml</span>
version: '3'
services:
  python:
    volumes:
      - .:/workspace:cached
    command: /bin/sh -c "while sleep 1000; do :; done"</code></pre>



<p>これで、環境構築に必要なファイルは作成完了です。Pythonのファイルは『Python』フォルダに作成していきます。今回は例として、『sample.py』を下記のように作成します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/Python/sample.py</span>
print('hello world 1')
print('hello world 2')</code></pre>



<h3 class="wp-block-heading"><span id="toc11">リモートコンテナを立ち上げる</span></h3>



<p>VSCodeのターミナル（『Ctrl+Shiht+0』で開く）から、以下のコマンドを実行して、dockerイメージをビルドした後、Pythonコンテナを起動させます。</p>



<pre class="wp-block-code"><code><span class="badge-purple">ターミナル</span>
$ docker-compose build
$ docker-compose up -d</code></pre>



<p>コンテナを起動させた後、VSCodeの画面左下にある下記画像のアイコンをクリックします。Remote-Containerのメニューから「Open Folder in Container&#8230;」を選択し、作業ディレクトリの「Docker」のフォルダを選択すると、「.devcontainer」での設定により、『python』コンテナの中に入ります。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/07184212/vscode_open_remote_window.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/07184212/vscode_open_remote_window.png" alt="VS Codeでリモートコンテナを開く"/></a></figure>



<p>コンテナに入った後で、『sample.py』を開くと、『F5』コマンドでデバッグ実行可能です。ここまでうまくいっていれば、ターミナルに以下が出力されます。</p>



<pre class="wp-block-code"><code><span class="badge-purple">ターミナル</span>
$ hello world 1
$ hello world 2</code></pre>



<p>また、一時停止した表の左端をクリックしブレイクポイントを設定すると、以下画像のように設定した行で一時停止してデバッグできることを確認できます。またこの環境設定で、リモートコンテナ上で、pythonファイルを作成したり、更新したりすることも可能です。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/07193155/VSCodeBrakePoint.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/07193155/VSCodeBrakePoint.png" alt="VS Codeのデバッグ画面"/></a></figure>



<h2 class="wp-block-heading"><span id="toc12">さいごに</span></h2>



<p>これで、Python x Dockerの開発環境をVS Codeで構築する方法についての説明を終わります。Dockerを用いたPythonの開発環境を活用して、開発を効率化していきましょう！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://goal-path.com/info/programing-vscode-docker-python/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
