AWSでWebサーバーの構築(備忘録)

Amazon Web ServerでWebサーバの構築

AWSのインターン課題の備忘録である。AWSでWebサーバ―構築を1からやる人は参考になれば。

開発環境

  • Windows10
  • Git Bash

AWSで実現したい事

1. Webサーバ環境の構築(Apacheの設定)

http://[IPアドレス]/でアクセスし、"AMAZON"と表示。なお、OSを再起動した場合でも自動的にWebサーバが起動できるように設定。

$ curl "http://1.2.3.4/"
AMAZON

手順

①Apacheの設定

https://web.arena.ne.jp/support/suiteprov2/manual/centos4/webserver/apache.html

②サービスの自動起動設定

https://web.arena.ne.jp/support/suiteprov2/manual/centos4/serveradmin/chkconfig.html

参考

よく使うもの

https://qiita.com/macer_fkm/items/dda5e343e19c432a1ccd

何もわからん!って人がいればこちらを参考に。

https://eng-entrance.com/web-server-mechanism

2. ベーシック認証

http://[IPアドレス]/secret/へアクセスした際、ベーシック認証をする。成功ならSUCCESS

ユーザ名:amazon
パスワード:candidate

(認証なしでのアクセス例)
$ curl "http://1.2.3.4/secret/"
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Authorization Required</title>
</head><body>
<h1>Authorization Required</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
<hr>
<address>Apache/2.2.29 (Amazon) Server at 1.2.3.4 Port 80</address>
</body></html>

(認証ありでのアクセス例)
$ curl -u amazon:candidate "http://1.2.3.4/secret/"
SUCCESS

手順

①.htaccessの作成

ざっくりいうと、設定を書く。

②.htpasswdの作成

認証する情報を書く。

参考

https://blanche-toile.com/web/htaccess-htpasswd-basic

https://tweeeety.hateblo.jp/entry/2015/07/05/163040

https://qiita.com/syama1127/items/d72aa5d8786fe19f26ff

https://qiita.com/nadonado/items/6125959b50955515f567

3. 四則演算

  • 数字と+-*/()以外の文字列が与えられたらERRORと表示。
  • 余剰が発生するちょうな除算、0による除算は発生なし。
  • ファイルの拡張子は自由。
$ curl 'http://1.2.3.4/calc?abc'
ERROR
$ curl 'http://1.2.3.4/calc?1+1'
2
$ curl 'http://1.2.3.4/calc?2-1'
1
$ curl 'http://1.2.3.4/calc?3*2'
6
$ curl 'http://1.2.3.4/calc?4/2'
2
$ curl 'http://1.2.3.4/calc?1+2*3'
7
$ curl 'http://1.2.3.4/calc?(1+2)*3'
9

手順

※あくまで筆者の方法です

①CGIを許可するようにApacheを設定

http://httpd.apache.org/docs/2.0/ja/howto/cgi.html

②コードを書く

teratailに似たようなものがあったので、これを参考にしました

https://teratail.com/questions/66108

筆者はbashを使用したので、bashで書きたい人はこちらも参考に

https://takuya-1st.hatenablog.jp/entry/2016/12/22/175514

4. 商品在庫管理システム

  • 予期しない値が入力された場合には、ERRORと出力。
  • 必ず一番最初に全削除リクエストがある。
  • 以下の機能を実装する。
  1. 在庫の追加
  2. 在庫チェック
  3. 販売
  4. 売上チェック:checksales
  5. 全削除:deleteall

手順

筆者はPHP+MySQLで作成しました。

①PHPのインストールと設定

https://qiita.com/snowdog/items/121ad82fcbcd17eac779

②MySQLのインストールと設定

https://qiita.com/toshihirock/items/c5933d3628c7d4e81ffa

http://ossfan.net/setup/mysql-04.html

一連の流れの参考

https://miyabi-lab.space/blog/16

最後に

「Webサーバーの構築」は難しそうに見えて、手順を踏めば誰でもできるものです。
今回のAWSの課題は1週間程度の期限がありました。つまり、誰でも1週間あればこの程度ができるわけです。見ていただいた方の参考になれば幸いです。
詳細な問題に関しては、AWSにエントリーしていただくか、Github上でオマージュした問題を公開していますので、そちらをご覧ください。

7vvXi
B4になってしまった。情弱から少しでも脱却しようともがく日々。やりたい!と思い立ったら色々やります。
https://7vvxi.github.io/portfolio/
cdsl
東京工科大学コンピュータサイエンス学部クラウド・分散システム研究室
https://www.tak-cslab.org/
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
コメント
この記事にコメントはありません。
あなたもコメントしてみませんか :)
すでにアカウントを持っている方は
ユーザーは見つかりませんでした