泳げないたいやきの日記

趣味でCSを勉強したことをまとめるノートです。誤字脱字や、誤った記事などがあればご教授いただますと幸いです。

S3を使用した静的Webサイトを公開するまで

始めに

HTML+CSSJavaScriptを使い静的なWebサイトを作成しS3で公開したので、手順を忘れないように書き残しておこうと思いこの記事を書きました。

S3とは

S3とは、Amazon Simple Storage Serviceの略称であり、高機能で耐久性が高いストレージサービスです。

S3の主な機能は、ファイルのアップロードやダウンロード、Webサーバの作成となっている。

 

S3でバケットを作成する手順

1.AWSマネジメントコントールからS3を探す。

 

2.S3のバケットにある「バケットを作成」を押す。

 

 

3.バケットを作成のページ内の「バケット名」、「リージョン」、「ブロックパブリックアクセスのバケット設定」の欄を埋める。

バケット名」:自身が使いたいドメインの名前を入力する。

「リージョン」:私は東京を選択した。

「ブロックパブリックアクセスのバケット設定」:全てのチェックを外す。

f:id:OyogenaiTaiyak1:20201202101056p:plain

バケットの作成

 

4.バケット作成のページ内の最後にある「バケットの作成」を押す。

この段階でバケットは作成される。

 

作成したバケットの静的ウェブホスティングの設定の手順

1.S3のコンソールから作成したバケットを選択する。

 

2.プロパティを選択する。

 

3.「プロパティ」内の「静的ウェブホスティング」の編集ボタンを押し、「有効にする」を選択する。

 

4.「インデックスドキュメント」と「エラードキュメント」を公開したい自身のHTMLファイルの名前を入力し、変更の保存を行う。

f:id:OyogenaiTaiyak1:20201202101211p:plain

静的ウェブサイトホスティングの編集

 

作成したバケットのアクセス許可の手順

1.「アクセス許可」を選択する

 

2.「ブロックパブリックアクセス(アクセス設定)」のチェックボックスが全て外れている事を確認する。

 

3.「バケットポリシー」の編集を行う。

バケットポリシーはJSONで記述するのですが、今回はAmzonさんが提供している例のJSONを使用します。

(例として提供されているバケットポリシーでは、セキュリティが緩くなってしまうので、後にバケットポリシーを書き直した方が良いと思います。)

docs.aws.amazon.com

 

Resourceの箇所は、公開するバケット名を入力します。

 

4.最後に「変更の保存」ボタンを押してアクセス許可設定は終了です。

 

 

公開するバケットにファイルをアップロードする手順  

1.オブジェクトを選択する

 

2.「オブジェクト」内の「アップロード」ボタンを押す。

 

3.「アップロード」内の「ファイルを追加」ボタンを押し、公開するHTMLファイルを選択する。

f:id:OyogenaiTaiyak1:20201202101409p:plain

バケットへのアップロード

 

4.アップロードが完了後、「プロパティ」の「静的ウェブサイトホスティング」のURLを押すと、自身が公開したHTMLファイルが閲覧できるようになっています。

 

 

最後に

 今回は、HTML+CSSJavaScriptを使った静的なWebサイトを公開したかったのでS3を使いました。今後、現在公開しているWebサイトにPHPSQLを追加して動的なWebサイトを

作成した時に、EC2を使いたいと思います。

 

※誤字や脱字、誤っている内容などがありましたら、コメントをいただけると幸いです。

 

参考文献

 

 

 

Route 53 ドメイン取得

始めに

 Webシステムを作りたいと考え、Route53でドメインを取得しました。

Route 53とは

 Route 53はDNSであり、Amazon EC2Amazon S3などの接続点に結び付けることができる。

さらにドメイン取得も行うことができる。

DNSについてはこちらをご覧ください。

DNSについて - 泳げないたいやきの日記

 

Route 53でドメイン取得する手順 

1:AWSのマネジメントコントロールにログインする。

 

2:マネジメントコントロールからRoute 53を探す。

 

3:Route 53のダッシュボードのドメイン登録内の「ドメイン名の入力」に欲しいドメイン名を入力する。

f:id:OyogenaiTaiyak1:20201124225508p:plain

Route 53のダッシュボード

 

 

4:ドメイン名の使用可否の判定が表示されるので、使用可能なドメイン名であればカートに入れ、ページ下部にある続行を押す。

f:id:OyogenaiTaiyak1:20201124230124p:plain

Route 53のドメイン使用可否の判決

 

 

5:自分の個人情報を入力する

f:id:OyogenaiTaiyak1:20201128164730p:plain

個人情報の登録

 

6:個人情報とドメインの自動更新の確認とメールアドレスの認証を行う。

(私は、更新を忘れてドメイン名を使えなくなるのが嫌なので自動更新にしました)

 

 

7:個人情報で登録したメールアドレスに認証メールが届くので承認する。

f:id:OyogenaiTaiyak1:20201124231902p:plain

Route 53から送られてくる認証メール

 

 

8:承認するとEmail address verificationというページに移動する。

f:id:OyogenaiTaiyak1:20201124232311p:plain

認証完了画面

 

 

9:メールでの認証が完了すると6での個人情報の確認画面の「登録者の連絡先のEメールアドレスの確認」の場所に緑色のチェックマークが付きます。

最後に注文完了ボタンを押す。

 

f:id:OyogenaiTaiyak1:20201124230953p:plain

個人情報の確認

 

 

 

10:再びRoute 53のダッシュボードに入ると、ドメインの登録が1となっておりドメインの取得が完了する。

f:id:OyogenaiTaiyak1:20201124232712p:plain

ドメイン取得後のRoute53のダッシュボード

 

最後に

 少し記憶があやふやなのですが、Route 53でのドメインの取得までの大まかな流れは上記の手順の通りです。

 

 

PCについて

初めに

 普段使用しているPCの中身がどのようになっているのか知りたいと思い、簡単にまとめてみました。

PCの中身

 PCは、主に「HDD」、「SSD」、「CPU」、「SATAケーブル」、「ビデオカード」、「マザーボード」、「メインメモリ」、「BIOS」により構成されている。

 

HDD (Hard Disk Drive / 補助記憶装置)について

  HDDは、たくさんのデータを保存することができ、更に価格が安い。

メモリだけでは、電源が切れた時などにデータが消えてしまうので補助記憶装置や外部記憶装置と呼ばれるHDDやSSDが必要とされる。

SSD (Solid State Drive / 補助記憶装置)について

 SSDは、データのアクセスが早い

SSDとHDDは、データの読み取り速度はほぼ同じだが、データがある目的地までに掛かる速さがSSDの方が早い。

 

CPU (Central Processing Unit / 中央処理装置)について

 CPUは、「ALU (Arithmetric Logic Unit / 算術論理演算装置)」、「レジスタ(記憶装置)」、「制御ユニット」から構成されており、PCの頭脳の役割を持ち、ほとんどの計算はCPUが行っている。(人間の脳みそようなもの)

 

ビデオカードについて

 ビデオカードは、「ジオメトリエンジン」、「物理エンジン」、「シェーダー」などの部品から構成されており、PCが処理した結果を画像としてディスプレイに表示する役割を持つ

 

マザーボードについて

 マザーボードは、さまざまなデバイスのソケット、コネクタ、スロットを装備しており、マザーボード内の回路を通してデバイス間の情報交換を行う。

 ※主なコネクタには、「メモリスロット」、「電源コネクタ」、「バッテリ」、「BIOS」、「SATAコネクタ」、「CPUソケット」、「ポート」、「イーサネットポート」、「USB」などが挙げられる。

SATAケーブルについて

 SATAケーブルは、HDDとマザーボードを接続する役割を持つ

SATA:HDDで使用されている「ATA (AT Attachment)」という規格を1ビットずつ伝送する方法であるシリアル化をしたもので、「SATA (Serial AT Attachment)」と呼ばれる。

メインメモリ(主記憶装置)について

 メインメモリは、プログラムやデータが処理される時の一時的な保存場所である。

 

BIOSBasic Input Output System)について

 BIOSは、PCに電源が入った時に起動される最初のプログラムであり、「HDD」、「CPU」、「メモリ」の種類の確認と設定を行うソフトウェア

 

参考文献

  • OS自作入門 川合秀美著
  • 作って理解するOS 林高勲著 川合秀美監修
  • コンピューター&テクノロジー解体新書 ロン・ホワイト著 ティモシー・エドワード・ダウンズ(イラスト) トップスタジオ訳
  • なるほどナットク!サーバがわかる本 小関祐明著 小野哲監修
  • 絵で見てわかるOS/ストレージ/ネットワーク 小田圭二著
  • Cプログラミング入門以前第2版 村山公保著

Wiresharkをインストールしよう(Windows)

初めに

ネットワークの流れや、TCPUDPなどのプロトコルがどのように動いているのかについて興味が沸き、Wiresharkで見てみようと思ったのでインストールをしてみました。

環境

OS:Microsoft Windows 10 Home 64bit

CPU:Intel Core i3-7020U

 

Wiresharkをインストールするまでの手順

1.Wiresharkのダウンロードページからインストール

検索エンジンで「Wireshark ダウンロード」と検索し、上位のページにある「wireshark.org」のページからダウンロードしました。

f:id:OyogenaiTaiyak1:20200905153932p:plain

wireshark.org

インストールする環境がWindows 10 Home 64bitなので 「Windows Installer(64-bit)」を選択しました。

 

2.インストーラの起動

Wiresharkインストーラを起動すると画像の画面がでてくるので、「Next」を選択

f:id:OyogenaiTaiyak1:20200905160600p:plain

wiresharkインストーラ

 

3.コンポーネントの選択

上記の2で「Next」を選択後、インストールするコンポーネントを選んでくださいと聞かれるので、私は全てのチェック項目を選択して先に進みました。

f:id:OyogenaiTaiyak1:20200905161407p:plain

コンポーネントの選択

 

4.Npcapをインストールするかどうかの選択

Wiresharkを使用するのに必要なNpcapを一緒にインストールするかどうかを聞かれます。

私はWiresharkを使用するのは初めてなので、一緒にインストールを行いました。

f:id:OyogenaiTaiyak1:20200905161756p:plain

Npcap

 

5.インストール完了後

Wiresharkのインストールが無事に終わり、使用することができました。

f:id:OyogenaiTaiyak1:20200905161929p:plain

Wireshark インストールの完了後

 

最後に

これからネットワークの流れや、プロトコルの数値を見るのが楽しみです。

 

本の記録

初めに

2019年2月頃に趣味でプログラムの勉強を始めました。

読んできた本やこれから読む本を記録していこうと思います。

 

本の記録

  • インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門 みやたひろし 著

  • Webを支える技術 HTTP、URI、HTML、そしてREST 山本陽平 著

  • 達人データサイエンティストによる理論と実践 Python 機械学習プログラミング Sebastian Raschka 著 株式会社クイーブ 訳

  • 独学プログラマー Python言語の基本から仕事のやり方まで アーリー・アルソフ 著

  • Pythonプログラミング パーフェクトマスター 金城俊哉 著

  • CSSグリッドで作るHTML5&CSS3レッスンブック エビスコム著

  • マスタリングTCP/IP 入門編 竹下隆史・村山公保・荒井透・苅田幸雄著

  • マスタリングTCP/IP 応用編 Philip Miller 著 苅田幸雄著

  • イラスト図解式 この一冊で全部わかるサーバーの基本 きはしまさひろ著

  • やさしく学ぶ 機械学習を理解するための数学のきほん LINE Fukuoka株式会社 立石賢吾著

  • スラスラわかるネットワーク&TCP/IPのきほん 第2版 リブロワークス著

  • 絵で見てわかるOS/ストレージ/ネットワーク データベースはこう使っている 小田圭二著

  • リーダブルコード   Dustin Bowswell、 Trevor Foucher  著   角 征典訳

  •  地元学をはじめよう 吉本哲郎著

  • OS自作入門 川合秀実
  • Cプログラミング入門以前 第2版 村山公保著
  • 小学館の図鑑NEO 宇宙
  • 新・明解C言語 入門編 柴田望洋
  • おうちで学べるデータベースの基本 ミック、木村明治著
  • 英検2級 長文読解問題150 旺文社著
  • 英単語ターゲット1900  ダーゲット編集部著
  • TOEIC L&R TEST 金のフレーズ TEX加藤著
  • 良いウェブサービスを支える「利用規約」の作り方 雨宮美季、片岡玄一、橋詰卓司著
  • DNSがよくわかる教科書 株式会社日本レジストリサービス(JPRS) 渡邉結衣、佐藤新太、藤原和典著 森下泰宏監修
  • 宇宙のがっこう JAXA宇宙教育センター著
  • パケットキャプチャの教科書 みやたひろし著
  • 詳説Cポインタ RichardReese著 菊池彰訳

ラズベリーパイでホームカメラを作る

初めに

4月に人生で初めてのラズベリーパイを購入してみました。

箱を開けて中身を見た時に、小学生の時にプラモデルを買って開けた時をなぜか思い出し懐かしく感じました。

 

ラズベリーパイ

購入したラズベリーパイは

を購入しました。

f:id:OyogenaiTaiyak1:20200827222418p:plain

ラズベリーパイ4

 

ホームカメラを作ろう

ラズベリーパイを購入し、何かラズペリーパイでやってみたいなと考えていた時に、youtubeコジコジさんという方の動画でラズベリーパイを使用したホームカメラを作成していたので、早速真似をしてみました。

 

ホームカメラのシステムの概要

 

1 カメラの接続

ラズベリーパイにUSB接続ができるカメラを接続します。 

 

2 ラズベリーパイのIPアドレスの固定

まず最初にIPアドレスの設定を行いました。

IPアドレスを固定する際に、コジコジさんの動画のようにIPアドレスを「192.168.1.81/24」と設定してが、PuttySSHの接続をしようとしても、タイムアウトになりラズベリーパイに接続できませんでした。

                   

上記の設定はダメで悩んでいたところ、我が家のIPアドレスが「192.168.10.XX」だったので、ラズベリーパイのIPアドレスを前半を同じにした「192.168.10.81/24」に固定したら、PuttySSHラズベリーパイに接続する事ができました。

 

3 ラズベリーパイの中に「mjpg-streamer」をダウンロードする 

ラズベリーパイのシェルを開き「git clone https://github.com/jacksonliam/mjpg-streamer.git」を入力するとダウンロードできました。

 

4 「mjpg-streamer」内でmakeコマンドを実行 

cd コマンドで、「mjpg-streamer」の中の「/mjpg-streamer/mjpg-streamer-experimental $」の内で、makeコマンドを実行してソースコードコンパイルします。

 

5 ソースコードコンパイル

「/mjpg-streamer/mjpg-streamer-experimental $」内で、「sudo make install」を実行してコンパイルしたコマンドのインストールを行います。

 

6 コンパイルしたコマンドのインストール後

「/mjpg-streamer/mjpg-streamer-experimental $」内で、「sudo apt-get -y install apache2」を実行して、ラズベリーパイの中にApache2をインストールします。

 

7 Apache2の確認

「/mjpg-streamer/mjpg-streamer-experimental $」内で、「system status apache2」を実行します。

 

8 環境変数の設定

「/mjpg-streamer/mjpg-streamer-experimental $」内で、「export  LD_LIBRARY_PATH=. 」を入力し、環境変数を整えます。

 

9 カメラの起動

「/mjpg-streamer/mjpg-streamer-experimental $」内で、「mjpg_stremaer -o "output_http.so -w ./www"  -i  "input_uvc.so" 」を入力します。

 

ラズベリーパイの電源を落とした後でも、6番から実行していけば、カメラの起動ができました。

 

最後に

6月にカメラを起動させていたので、少し時間が経ってしまいましたが、私はこの手順でホームカメラを起動させる事ができました。

この手順のみだと、ラズベリーパイと同じネットワークの中からでしかカメラに接続できませんでした。

グローバルIPアドレスの勉強をもう少ししてから、今度は外部ネットワークからの接続を可能にしたいと考えています。

 

参考文献

www.youtube.com

 

 

www.sasapy.com

 

qiita.com

 

 

 

Linuxカーネルにコントリビュートする方法

初めに

OSSという存在を知ったのは2019年の夏頃で、いつか自分もOSSの活動に貢献?挑戦?してみたいと思っていた。

 

Linuxカーネルについて

いくつかのOSSのコントリビュートの方法は見つかったのですが、Linuxカーネルに関するコントリビュートの方法が見つからなかったので、今後のためにまとめてみようと思いました。

(もしかしたら、どこかに記事があるのかもしれません)

 

Linuxカーネルのコントリビュートの方法

  1. Linuxカーネルのコーディングスタイルとライセンス要件に従い、コントリビューションを作成する。
  2. Linuxカーネルのコントリビューションを、メーリングリストの中から誰に送信するのかを決める。
  3. コントリビューションをメールで送信できる様にシステムの設定を行う
  4. メールで送信を行い返信が来るのを待つ。

大まかな手順としては、以上の通りです。

 

GitHubではなくメールリストで 

Linuxカーネルの開発はGitHubではなく、メールリストで行います。

現在、GitHub上にあるリポジトリは閲覧専用であり、プルリクエストは受け付けていないようです。

メールでLinuxカーネルのコントリビューションを送信する時は、修正や変更が適用される様にパッチとして送信する。

 

 パッチについて

パッチとは、Linuxカーネルのコードに加えたい修正や変更を示し、加えたい部分について、自身が「その修正・変更がどの様に役に立つのか?」や「なぜ、その方法が良いアイデアだと思うのか?」 などの理由を誰にでも読みやすいように文書化したドキュメントです。

 

「その修正・変更がどの様に役に立つのか?」や「なぜ、その方法が良いアイデアだと思うのか?」の文書は、パッチ内にコミットメッセージとして記載します。

 

コードの修正・変更については、Linuxカーネルのコーディングスタイルとライセンス要件に従いながら行います。

 

詳しくは下のURLに記述されています。

www.kernel.org

 

 

git-scm.com

 

 コントリビュートの方法がわからない時

  • 基本的には、インターネットの検索エンジンで検索すれば解決方法を手に入れることが可能みたいです。。。(英語力が試されそうです)

 

パッチの送信後について

パッチ送信した後に、返信が返ってくるまで数週間かかることがよくあるそうなので気長に待つことが大切です。

さらに、自身が送信したパッチが完全に無視されることが時々あるそうですが、そのような時は、再びパッチを送信すると良いらしいです。

 

カーネルの開発者の方々は、パッチを提出するためのガイドラインや、その他のルールを違反したパッチについても無視されます。

※時間が経ち過ぎた事に対しての怒りの文章などを記載してパッチを送信すると、そのパッチは無視され、さらに、ブラックリストに登録されるようですので注意しましょう。

 

最後に

ここに記載してある事は、GitHub上のLinuxカーネルのkernelPRBotが記載していた事を和訳し、要約したものです。

まだ、自分自身Linuxカーネルにコントリビュートをしていないので憶測の域でしかありませんが、今後のために備忘録として書き残します。

Linuxカーネルにコントリビュートを行った後に、再びこの記事を更新したいと思います。

 

参考文献

 

Pull requests · torvalds/linux · GitHub