質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

3回答

2102閲覧

AWSとDocker

oeiqgfodgfhps

総合スコア35

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2020/04/12 14:45

編集2020/04/12 16:13

IT企業へのインターン採用を目指しプログラミングの勉強を始めた大学生です。
今まで、HTML、CSS、Javascript、PHP、MySQL、Laravelの学習をしました。
いくつかのチュートリアルを経てLaravelアプリケーションの開発はひとまずは自走できるという段階です。
なのでこれからポートフォリオを作成しようと思ったのですが、AWSやDockerを使ってポートフォリオを作成するといいということを聞き、この二つについて、調べました。
ざっくりとわかったことは

❶AWSは仮想サーバーを作るEC2や、IDEを用意するCloud9などのサービスが入った、アプリケーション制作を手助けしてくれるようなサービスがいっぱい詰まったもの
❷Dockerは環境構築をイメージというものに保存しておくことでどこでも(語弊があるかもしれませんが)そのイメージをビルドすることにより、はじめに作った開発環境を用意できるようなアプリケーションである

ということです。
ここまでの学習?でDockerの利便性は理解することができました。

ここで調べたことに対する疑問点がいくつか上がりましたが、結論から言うと、みなさんはAWSやDockerを開発時にどのように使っているかお聞きしたいです。疑問点を詳しく書くと、webアプリ制作時にAWSを使うということなのでしょうか?そしたらEC2で用意したアプリケーションのhtmlやphpファイルなどはターミナル上で編集するしかないのでしょうか?それともCloud9などで作っていくものなのでしょうか?そしたらAWSというのはいくつものサービスを複合して使用することを前提に作られたものなのでしょうか?
またDockerをどのように活かすのかという具体的なイメージもまだつかめていません。
現時点ではDockerで開発環境を用意して、VScodeなどでコードを書いていきアプリケーションを作り、Dockerで本番環境にデプロイするものなのかなというぼんやりとした理解です。この理解で正しいでしょうか?

抽象的な質問で申し訳ございませんが、ご回答よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/04/12 15:50

> AWSやDockerを使ってポートフォリオを作成するといいということを聞き、この二つについて、調べました。 からの > しかしここまで調べてもポートフォリオにAWSを組み込むのはどういうことかという疑問が浮かんできました。 なら、それ言った本人に質問しましょうや。 じゃないと正確な意図は誰にもわかりませんよ。
oeiqgfodgfhps

2020/04/12 15:56

アドバイスありがとうございます。 Youtubeの方で、AWSを組み込むべきと言っていた投稿者に対し、質問のコメントを送りましたが、なかなか返信がもらえず、ここで質問をしてしまった次第でございます。 teratailはそのような質問は思做してないのですか? それとも私の質問の書き方がおかしかったのでしょうか? なにぶん使用するのが初めてなもので、無意識のうちに失礼なことをしてしまったのならすみませんでした。
gentaro

2020/04/12 16:05

いや、第三者が「こうじゃないの?」と思って回答したところで、その発言者の意図と合ってる保証がないので、本人にその発言の意図を確認しないと意味ないんじゃないの?という理屈です。
oeiqgfodgfhps

2020/04/12 16:13

理解いたしました。私が欲しい回答をもう一度整理してみたところ、みなさんはAWSとDockerを開発の際にどのように使っているのかということを聞きたかったのだということに焦点を絞れました。ご迷惑をかけて申し訳ございません。 質問を修正します。
hoshi-takanori

2020/04/12 16:34

EC2 でアプリを動かすのと、EC2 で直接開発するのとは別です。普通はローカルで開発したものを EC2 に持っていって動かすと思います。 ちなみに、Laravel で作ったものはどこで動かしてますか? また、バージョン管理はしてますか?
oeiqgfodgfhps

2020/04/12 16:40

どこで動かしているかという質問に正確に答えれるかはわかりませんが php artisan serveでサーバーをたてて、8000番ポートでwebブラウザから確認している感じです。 バージョン管理はしていません… githubでmasterブランチにコミットしまくっているくらいです。これをバージョン管理というのならバージョン管理をしているというのかもしれませんが…
hoshi-takanori

2020/04/12 16:52

それはローカルで動かしてるってことですね。それだと他人(インターンに応募したい会社の人とか)に見てもらえないので、どこかのサーバーで動かしたいですよね。 あと、github を使ってるなら一応バージョン管理してることになりますね。EC2 などで github から clone したら動かせるのでは。
oeiqgfodgfhps

2020/04/12 16:56

はい、なのでいつかは本番環境にデプロイ?のようなことをして、サイトを公開しなければいけないと思っています。その際に、Dockerを使えば本番環境への移行が簡単という認識で大丈夫でしょうか?また、「どこかのサーバーで動かす」というのをEC2の仮想サーバーを使うということで認識は合っていますか?
hoshi-takanori

2020/04/12 17:12

「どこかのサーバー」の選択肢の一つとして EC2 がありますね。 Docker に関しては、ちゃんと使えれば「本番環境への移行が簡単」なんでしょうけど、個人的にはその前にまず普通に Linux を使えるようになった方がいいんじゃないかと思ってます。
guest

回答3

0

ベストアンサー

Dockerに焦点を当てます。Dockerとは平たく言えば必要なソフトを詰め込んでパッケージ化(イメージと呼ぶ)することができるソフトウェアです。例えばphpの実行環境と設定ファイルがが必要でしたらそれらをイメージの中に詰め込みます。開発時に同じイメージを他の人と一緒に使うことでバージョンも設定も同じphpが動くことが保証されます。これは大きなメリットです。

開発が進みphpのアプリケーションができました。今度はphpの実行環境とアプリケーションをDockerのイメージとして一つにまとめます。するといちいちphpの設定などをすることなくDockerのイメージを動かす(コンテナを立ち上げるといいます)ことができればどこでも開発したアプリケーションが動くことになります。それが手元のマシンでもクラウド上の仮想マシンでも変わりません。

AWSにはたくさんの機能がありますが、関連する内容に絞って言うと仮想マシンを立ち上げる機能(EC2)やDockerイメージを自動で動かして管理してくれる仕組み(ECS、EKS)などがあります。前者の場合は仮想マシンを立てたあとはsshを通じて手元のマシンで操作したのと同じようにコンテナを立ち上げなければいけませんが、後者の場合はそれも自動的に行ってくれます。

以上が概略ですが、まずは手元でDockerを動かして触って見るところから始めるのが理解するには易しいのではないのでしょうか。

投稿2020/04/15 02:43

A_kirisaki

総合スコア2853

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

AWSとDocker
❶AWSは仮想サーバーを作るEC2や、IDEを用意するCloud9などのサービスが入った、アプリケーション制作を手助けしてくれるようなサービスがいっぱい詰まったもの

切り口によっては正しいですが、おおよそ、主となる部分で間違っています。
AWS とは

クラウドプラットフォームを提供することが主です。
記述にあるような機能は、継続的な開発を行うためのツール群であり、主たるものではありません。

❷Dockerは環境構築をイメージというものに保存しておくことでどこでも(語弊があるかもしれませんが)そのイメージをビルドすることにより、はじめに作った開発環境を用意できるようなアプリケーションである

従来、プラットフォームと密接に関わっていたアプリケーションを仮想化することで、結合が疎になり、ワークフローを簡素化したり高速化すると同時に、開発者が各プロジェクトのツール、アプリケーションスタック、およびデプロイメント環境を自由に選択できるようになります。
Developers bring their ideas to life with Docker

AWSやDockerを使ってポートフォリオを作成するといいということを聞き、この二つについて、調べました。

目的によります。
AWS への理解や、Docker への理解をプレゼンしたいのであれば、利用していることを見せるのは効果的ですが、単なる基盤として使用したいのであれば過剰です。

ここで調べたことに対する疑問点がいくつか上がりましたが、結論から言うと、みなさんはAWSやDockerを開発時にどのように使っているかお聞きしたいです。疑問点を詳しく書くと、webアプリ制作時にAWSを使うということなのでしょうか?

前提にずれがあるので、今回答をもらってもあまり役に立たないかと。

私は、AWS で、サクッとプレゼン用のプロトタイプを作成し、ソレを本番用に仕上げ、運用でも使用する、自身の仕事全体に使用しているユーザですが、それでも全機能は使っていません。また、Docker もたまに使用しますが、適当なサービスを適当に構築してしまうときにも使用しますし、本番環境でも使用します。
どちらも幅広く使用することのできる道具なので、どうとでも使えます。
事例でも見て理解を深めるとよいかと。

投稿2020/04/14 09:05

編集2020/04/14 09:07
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

webアプリ制作時にAWSを使うということなのでしょうか?

開発環境として使う場合もありますが、本番環境として使うことの方が多いように思います。

そしたらEC2で用意したアプリケーションのhtmlやphpファイルなどはターミナル上で編集するしかないのでしょうか?それともCloud9などで作っていくものなのでしょうか?

ターミナル上で直接編集することもできますが、開発環境で作ったものを本番環境へアップロードするというのが一般的なフローだと思います。

そしたらAWSというのはいくつものサービスを複合して使用することを前提に作られたものなのでしょうか?

個々のサービスは、他の AWS サービスまたは他社サービスと連携することも考慮して設計されています。
単体で利用できるサービスもありますので、すべてのサービスが「連携するのが前提」というわけではありません。

またDockerをどのように活かすのかという具体的なイメージもまだつかめていません。
現時点ではDockerで開発環境を用意して、VScodeなどでコードを書いていきアプリケーションを作り、Dockerで本番環境にデプロイするものなのかなというぼんやりとした理解です。この理解で正しいでしょうか?

そのイメージで合っていると思います。

投稿2020/04/14 08:40

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問