AWSを学ぶ前のインフラの基礎

# インフラとは
***インフラは「インフラストラクチャー」の略称です。***
webアプリケーションが動くための土台の役割があります。
代表的なサービスに```AWS ```があります。


# 記事の概要
この記事は***インフラの業務をするための最低限の基礎知識を
知るための記事***です。
AWSを学ぶためには基礎知識が必要になります。***AWSを学ぶ前段階の記事***です。

# おすすめ資料
https://qiita.com/toma_shohei/items/b7a001d26bd988d52021

AWSのような代表的なサービス詳細はこの記事に載っています。
こちらの記事を読む前段階としてご活用ください。

クラウドエンジニア向けの資料がいろいろ載っているみたいです。

https://qiita.com/yoshiyama_hana/items/96dbe0b82ca783c86be0


# オンプレミス
自社内でサーバーなどの設備を管理したり、運用したりする自社で完結するシステムです。
最近は```クラウド```が台頭したことにより、オンプレミスを扱う企業は減ってきています。

# クラウド
Googleなどが管理しているデータセンターのことで、
ネットワークを通していろいろなことができます。
費用があまりかかわらず、自社でオンプレミスみたいに運用したりする必要がないです。

# AWSなどのインフラ用語資料
基本的な用語はこちらの記事にも載っています。

https://qiita.com/Hashimoto-Noriaki/items/e9516c0f4f14849c1bb3


# AWSとは
```Amazon web servise```の略です。***Amazonから提供されているクラウドサービス***です。
最近web系の開発企業でも導入されています。
***シェア率は1位***です。

⚫︎特徴
・レンタルサーバーの中でも１時間単位での課金がある革命的なサーバー
・クラウドサービスの中でもサービスの入れ替わりが激しい
・クラウドサービスの先駆者みたいな存在

⚫︎アカウントを作る時の注意点
AWSアカウントの作成ユーザーは「管理ユーザー」になります。
全ての権限があるので、アカウントの削除とかもできたりします。
実務では利用しないみたいです。
アカウント作ったらIAMというサービスでユーザーの管理をしたりします。
テストを実行する時には、いろいろな権限が必要になるので、
テスト用のユーザーを作成することもあるみたいです。
複数のユーザーに権限を渡すのは、セキュリティやコスト面を考えてユーザーを統一するみたいです。

MFA認証（多要素認証）を強制させることもあり、
ワンタイムパスワードを強制させることもあるみたいです。


# インフラの基礎
AWSを学ぶ前にこれらの基本を知っておく必要があリます。

1.```ネットワーク```
2.```セキュリティ```
3.```OS```
4.```データベース```
5.```Web```
6.```その他```

これからそれぞれ見て行きます。

# ネットワーク
まずネットワークの基礎部分です。簡単に用語だけ説明します。

1.***LANとWAN***についてです。

⚫︎LANとWANの記事
https://qiita.com/Hashimoto-Noriaki/items/9ab06d391c3aeca3db22

2.***内向け***と***外向け***
ネットワークには***内向け***と***外向け***があります。

***内向け***はインターネットと外部接続しないローカルネットワークのことで、
社内での共有や外部から見ることができないです。

***外向け***は一般公開されているwebサービスなどが該当します。
ネットワークを通じて外部からアクセスできます。

3.```TCPIP```
***TCPとIPを組み合わせたものの総称***で、通信する時の規約の１つです。

・***TCP***
ネットワーク上で送られてきたことを保証する仕組みです。
・***IP***
複数のネットワークでその上をパケットが流れる仕組みです。

両者が組み合わさり。複数のネットワークを渡りながら、
パケットを正しく相手に届ける仕組みを***イントラネット***と言います。
インターネットの技術を企業内LANに転用したネットワークでもあります。

⚫︎補足
***IPアドレス***はネットワークの住所です。
***グローバルIPアドレス***や***プライベートIPアドレス***などもあります。

4.***UDP***
前もって送信相手と接続確認を取らず、一方的にパケットを送りつけるコネクションレス型のプロトコルです。

⚫︎いろんな通信規約
HTTP、HTTPS、SSH、SMTP、FTPなど


5.***ブロードキャスト***
同じネットワーク内の全てのホストに、一斉にデータを送信することです。

6.***MacアドレスとIPアドレスの違い***
この２つは紛らわしいのですが違いはあります。

・****Macアドレス***
***コンピューターの識別番号でお隣同士のコンピューターの通信を可能にする特徴***があります。


・***IPアドレス***
***コンピューターの住所でインターネット上にある目的地のコンピュータまでデータを届ける役割***です。

⚫︎資料
https://medium-company.com/ip%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%A8mac%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AE%E9%81%95%E3%81%84/


7.***DHCP***
このプロトコルを使うと、***IPアドレスの割り当てなどの
ネットワークの設定作業を自動化***ができます。

管理の手間や人為的なミスを防ぐことができます。

8.```NATとIPマスカレード```
***グローバルIPアドレスとプライベートIPアドレスを相互に変換ができる***のが```NAT```で
グローバルIPアドレスに複数のプライベートアドレスを結びつけて、
***１対複数の変換ができる***のが、```IPマスカレード```です。

9.```ドメイン名とDNS```
***ドメイン名***がIPアドレスに対して文字で別名をつけ、わかりやすくしたもので、
***DNS***はドメイン名とIPアドレスを管理しているものです。


# セキュリティ
外部と繋がれたネットワークには脅威があります。外部からの侵入を守るのがセキュリティです。

1. ***セキュリティの３大要素***
```機密性```、```完全性```、```可用性```があります。

2.不正アクセス手法
・***パスワードリスト攻撃***
IDやパスワードを使い、他サイトへのログインをする手法

・***ブルートフォース攻撃***は特定のIDに対し、パスワードとして使えそうな組み合わせを
片っ端から試していく手法

・***リバースブルートフォース***
特定のパスワードに対し、IDとして使えそうな組み合わせを
片っ端から試していく手法。

・***レインボー攻撃***
ハッシュ値から元のパスワードの文字列を解析する手。

他にも、SQLインジェクション、DNSキャッシュボイズニングなど

３.```rootkit```
不正アクセスしたコンピューターをリモート制御できるようにするためのソフトウェアの集合体です。

4.ネットワークのセキュリティ対策

・```ファイアウォール```
***LANの中と外を区切る壁がファイアウォール***です。
外からの不正アクセスを防ぐのが目的です。

・```アプリケーションゲートウェイ(プロキシサーバー)```
LANの中と外の間に位置し、外部とのやりとりを代行する機能です。

・```パケットフィルタリング```
パケットを指定されたルールにのっとって、通過するかしないかを判断する仕組みです。

・```ペネトレーション```
不正アクセスのいろいろな方法を試し、ちゃんと不正アクセスから守る機能を想定通りに働くかをテストすることです。


⚫︎詳しい資料
https://speakerdeck.com/cybozuinsideout/security-2021

### SSL証明
参考記事と被ってしまうのですが、下の記事がわかりやすいのでそちらを載せておきます。

https://qiita.com/TakahikoKawasaki/items/4c35ac38c52978805c69


https://qiita.com/toma_shohei/items/b314c52fae5e282fd6db


# OS
次はOSについてです。
ここでは自分の説明より資料がわかりやすいので参考資料から引用します。

1.```Linux```
参考資料に載っている資料から引用します。

https://eng-entrance.com/category/linux

良かったらこちらの記事も見てみてください。

https://qiita.com/Hashimoto-Noriaki/items/3962f18e7c4d3c460591


2.```windowサーバー```

参考資料に載っている資料から引用します。

>引用　https://www.youtube.com/watch?v=gAh23IH1O84

>引用https://milestone-of-se.nesuke.com/category/sv-basic/windows-basic/


# データベース
説明するとキリがないので今回は資料と動画でご確認お願いします。

・資料
>引用　https://www.ai-shift.co.jp/techblog/1980

・youtube動画
https://www.youtube.com/watch?v=IiX6J0FfGng&list=PL-1KBX2gDRujQaRgEByueezHBiqHP8KDD

・ミクシィ研修動画とスライド
https://www.youtube.com/watch?v=MTUtAYlTpS4

https://speakerdeck.com/mixi_engineers/21-database-training



# Web
***web***とはインターネットでいろんなデータの情報を発信したり見たりできる仕組みです。
webの細かい部分を見て行きます。

1.```URL```
Uniform Resource Locaterの略でインターネット上のデータを特定するためのものです。
例えば下のようなURLがあったとします。

```
http://www.Infra.com/directory/aws.html
```
URLの意味を説明して行きます。

・http:は***スキーム***
・www ***ホスト名(コンピューターの名前)***
・***Infra.comはドメイン名***
・directoryは***ディレクトリ名***
・aws.htmlは***ファイル名***

です。

2.```HTTP```
クライアントとサーバーの間でデータの送受信をする規約(プロトコル)です。


この記事も参考にしてみてください。

https://qiita.com/Hashimoto-Noriaki/items/2f0db583fd9a4309e9fd

https://qiita.com/Hashimoto-Noriaki/items/c5c9eb26565b01150556

3.```HTML```
ネットワーク上で目に見えるようにするためのマークアップ言語です。
これがないとwebページを開いても何も見えません。
CSSと組み合わせてより見やすくなります。


# その他
### 1. ***Git***
Gitはエンジニアになる上で必須のスキルなので、
これはしっかり扱えるようにしていくべきです。
いろいろな資料を貼っておきます。

１.ミクシー研修

https://docs.google.com/presentation/d/1EwjQnoqzzYsijrMNEsWGAj54yfQlbr2mvuxrDtKl-Ww/mobilepresent?slide=id.g3e0bd23512_0_0

2.基本コマンド
https://qiita.com/Hashimoto-Noriaki/items/b38aa0d0ea622f75e672

3.プロジェクトに入ってからマージまで
https://qiita.com/ki_shi_0922/items/988c9da48e9266665503

4.わかりやすい資料
https://backlog.com/ja/git-tutorial/stepup/04/

5.Gitコマンド集
https://qiita.com/fukumone/items/73e1a9a62c5e4454263b

### 2.***メールサーバー***
参考資料と被ってしまいますがわかりやすい資料なのでこの下に貼っておきます。

https://wa3.i-3-i.info/word11136.html


### 3.***SPF***
こちらも参考資料と被ってしまいますがわかりやすい資料なのでこの下に貼っておきます。

https://blastmail.jp/blog/spam/spf-record


# 最後に
AWSを学ぶ上で基礎的な知識になるのでAWSの学習などにお役に立てたら幸いです。

⚫︎参考資料
https://toumasblog.org/infra-engineer-basic/

https://www.amazon.co.jp/%E3%82%AD%E3%82%BF%E3%83%9F%E5%BC%8F%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88IT%E5%A1%BE-%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E4%BB%A4%E5%92%8C03%E5%B9%B4-%E3%81%8D%E3%81%9F%E3%81%BF%E3%82%8A%E3%82%85%E3%81%86%E3%81%98/dp/4297117819