見出し画像

エンジニア採用担当がプログラミング頑張る話【28日目/2ヶ月間】

こんにちは、@hiroki_maekawaです。

画像は安定のGopherです。このデザインを作られた方、エンジニアTシャツやロゴを作られていて面白いなぁと。自分はアメリカのエンジニアYoutuberがデザインしたパーカー買ったことあります(笑)

さて、今日も引き続きAWSをさわっていきたいと思います!EC2立てるのが余りに早くできてしまったので、今週はもっと色んなことができそうです。


今日の目標

・EC2に自分の書いたコードを送る
・AtCoderの問題1時間解く


1. EC2に自分の書いたコードを送る

今回GoでhttpリクエストをEC2に送って、出力をWebブラウザ上で確認したいと思います。

・Nginxのインストール

まずはWebサーバをインストールする必要があると思ったので、EC2インスタンスにSSH接続を行なった後、インスタンス内でNginxとGoをインストールしました。

$ sudo amazon-linux-extras install nginx1.12
$ sudo amazon-linux-extras install golang1.11

goやNginx以外にもphpやrubyなど色々インストールできるようです。


・HTTP接続の許可

その後、HTTP接続もできるようにインバウンドルールの編集を行いました。

・EC2インスタンスの「セキュリティグループ」をクリック
・「インバウンドルール」をクリック(昨日設定したSSH接続のみが表示されてます)
・「インバウンドルールを編集」をクリック
・「ルールを追加」をクリック
・タイプをHTTPに設定
・「ルールを保存」をクリック

その後EC2インスタンスの説明に記載されているパブリック DNS (IPv4)をコピーし、その前にhttp://を入れてアクセスしてみます。ちゃんと反映されました。

スクリーンショット 0032-06-30 17.46.59


・Nginxの設定

NginxのWebサーバー上でGoが動くように設定する。
この方法が分からず@Sueken51さんに質問したところ、先週まで自分でhttpサーバープログラムを書いているので、今回はNginxインストールしなくて良いことが分かってしまいました。

またこの質問をしたことで、サーバーの概念の理解まで行うことができたため、下記、備忘録として残しておきます。

サーバーとは、何かしらのプログラムが起動しているマシンのことで、先週まではgoでechoを使ってサーバープログラムを書き、それを自分のパソコンで起動していました。

そして今週からは、自分のパソコンではなく外部にEC2を立てて、そこにサーバープログラムを送信し、起動させることで外部にサーバーを作ることが可能になるという感じです。

NginxはOSSの「httpサーバープログラムなので、先週自分が書いていたようなプログラムがすでに色々書かれていて、後はリクエスト送るだけでOKってやつなんだな、と理解しました。

だから課題の内容も「EC2に自分の書いたコードを送る」だったのか。。とここで初めて理解。やっと今日やりたかったことのスタートラインに立てた気分(白目)


2. AtCoderの問題を解く

package main

import "fmt"

func main() {

	var X, A, B, C int
	count := 0
	fmt.Scan(&X, &A, &B, &C)

	for a := 0; a <= A; a++ {
		for b := 0; b <= B; b++ {
			for c := 0; c <= C; c++ {
				if 500*a+100*b+50*c == X {
					count++
				}
			}
		}
	}

	fmt.Println(count)
}

昨日の模範解答を思い出しながら自分で書いてみて、提出したところこんな結果に、、合わないものまで全パターンを検索してしまうと途中で間違えてしまうのでしょうか、、(解決策が分かりそうな方、こっそり教えて頂けると嬉しいです🙇‍♂️)

スクリーンショット 0032-06-30 20.58.02


今日できるようになったこと

・(強いて言うなら)EC2のインバウンドルールの編集


さいごに

今日はサーバーについての理解が深まったことが1番の収穫でした。

これまで何となくのイメージでサーバーサーバー言ってましたが、自分で手を動かすことで今までより深くサーバーについて理解することができました。また@Sueken51さんには自分の質問に根気強く回答頂き、本当に感謝です🙇‍♂️

プログラミング学習期間も残り3週間を切っているので、1日1日より大事にしていきたいと思います。

それではまた!

この記事が気に入ったらサポートをしてみませんか?