フロントエンド勉強用+メモ

主にフロントエンドの勉強用+メモとして自分用に残していくブログ

AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得【セクション3】

VPC】ネットワークを構築する

AWSのネットワークの概念を学ぼう

リージョンとは、AWSの各サービスが提供されている地域のこと 最新機能はアメリカのリージョンで使用可能。徐々に広がっていく

アベイラビリティゾーン 独立したデータセンター群のこと

VPCは、AWS上に仮想ネットワークを作成できるサービス VPCの中にサブネットを作成し、ネットワークを区切る(今回だとパブリックとプライベートで区切る)

サブネットを複数のアベイラビリティゾーンに作成することで、冗長性を高めることがベストプラクティスとされている。

ネットワークのIPアドレスを決めよう

東京には3つのアベイラビリティゾーンがある(ap-northeast-1a,1c,1d)

パブリックIPアドレス ・インターネットに接続する際に使用するIPアドレス ・重複するの正しく通信できなくなるため、ICANNという団体が管理している ・プロバイダーやサーバー業者から貸し出される(AWS上でも)

プライベートIPアドレス ・インターネットで使用されないIPアドレス ・下記範囲内のアドレスを自由に使用できる 10.0.0.0~10.255.255.255 172.16.0.0~172.31.255.255 192.168.0.0~192.168.255.255 ・社内LANの構築やネットワークの実験時はプライベートIPアドレスを使用する

ネットワーク部とホスト部で区分けできる。 CIDR表記かサブネットマスク表記で区分けをみる。

VPCを作成しよう
サブネットを作成しよう
  1. パブリックサブネットを作成
  2. プライベートサブネットを作成
    ルーティングを設定しよう
  3. インターネットゲートウェイを作成し、VPCにアタッチする
  4. ルートテーブルを作成し、パブリックサブネットに紐づける

ルートテーブルは「宛先IPアドレス」と「次のルーターAWSではターゲット)という書式で設定する

インターネットゲートウェイ・・・VPCとインターネットをつなぐ、仮想のルーター

ネットワーク設計で考慮すべきポイント

VPCの設計のポイント  プライベートIPアドレス範囲から指定しよう  作成後は変更できないので、大きめに設定しよう   大きさは/28 ~ /16。/16が推奨  オンプレミスや他VPCのレンジと重複しないように気を付ける

VPCを分割するか?アカウントを分けるべきか?  異なるシステムの場合はアカウントを分けよう

同一システム(社内、ステージングなど)の各環境はVPCとアカウントのどちらを分けるか?  VPCを分けると、IAMの設定が一度でよい。反面、各環境のリソースが見えてしまい、事故のもとになる。  アカウントを分けると、他の環境のリソースが見えず、作業しやす。反面、環境毎にIAMの設定が必要。  著者的には、同一アカウントで、VPCとリージョンを分けるのがおすすめ。

サブネットの設計のポイント 将来的に必要なIPアドレス数を見積もって設定しよう  /24が標準的 サブネットの分割は、ルーティングとアベイラビリティゾーンを基準に行う  サブネットに割り当てられるルートテーブルは1つ  インターネットアクセスの有無、拠点アクセスの有無などのルーティングポリシーに応じて分割する  高可用性のために、2つ以上のアベイラビリティゾーンを使用する

AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得【セクション2】

初期設定

AWSのアカウント作成
CloudWatchで料金アラートを設定する

請求ダッシュボードで請求アラートを受け取るように設定する CloudWatchで料金アラートを設定する

IAMで作業用ユーザーを作成する

AWSアカウントを作成するとルートユーザーが作成される。 ベストプラクティスとしては、作業用のIAMユーザを使用する。 誤操作防止や、ログ管理のため。

ルートユーザー ・AWSリソース全てに完全なアクセス権を持つ特権ユーザー ・アカウントの変更、解約、サポートプランの変更等の時のみ使用する ・極力利用しない

作業用ユーザー ・認証情報とアクセス許可の権限を個別に変更できる ・作業者事に個別に作成する ・通常作業はIAMユーザーで行う

CloudTrailで操作ログを記録する

いつ誰が何をしたのかを記録しておくことで、不正アクセスや不正操作をチェックできる

■設定方法 CloudTrailで証跡を作成する→S3にログが保存される

デフォルトで有効になっているが、保存期間は90日のみ S3に保存することで、ずっと保存できる CloudTrail自体は無料。S3は有料

AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得【セクション1】

コースの内容

AWSを実際に触ることで、インフラが苦手でも理解できるようになる

  1. 手を動かし、ゼロからAWSでインフラを構築する

  2. 使われることの多いAWSサービスをピックアップ。設計パターンを習得

  3. 作りながらインフラの基礎知識も身に付く

目標:設計、運用、構築ができるようになること 基礎編(構築編)、発展編(運用編)に別れる

インフラができるようになるメリット

自分でサービスを作れたり、課題に対してシステム全体で対応できるようになる 開発時のテスト環境くらいは自分で構築できるようになると、システム全体を把握できる

インフラを構築する時は、ネットワークやサーバーを、次の手順で設計する ①サーバーの構成  どのようなサーバーが必要か  サーバーの設置  サーバーのOSをインストールし、各種設定を行う  ソフトウェアのインストール ②構築したサーバをネットワークに接続する  IPアドレスの範囲を決める  サーバーにIPアドレスを割り当てる  ドメイン名とIPアドレスの対応を割り当てる

AWSとは?

サーバーやネットワークを構築するクラウドサービス AWSの特徴 ・サービスが豊富 ・リソースを、必要な時に必要な分だけ調達できる ・従量課金制 ・不必要な時は使う必要がなく、費用対効果に優れている

インフラとは?

サーバーやネットワークのこと Infrastructure:基盤

サーバーとは?

クライアントに対してサービスを提供するコンピューター 実態はただのコンピューターだが、呼び方が異なる (WebサーバーやDBサーバーなど)

ネットワークとは?

複数のコンピューターをつないで、データを送受信できるようにするもの

クラウドとは?

ネットワークを利用してコンピューターリソースを利用する形態のこと

オンプレミス ①自前で用意し、自社で所有・管理すること ②欠点は、調達期間が必要で、サーバーの増減がしにくいこと

クラウド ①インフラをネットワーク経由で使用・管理すること ②すぐに始められ、サーバーの増減が自由にできる ③欠点は、費用の予測が付きにくいこと。クラウド全体で障害が起こると対応のしようがないこと

Actions,Reducers,Storeの働き

Actions

純粋にデータだけを記述するため

Reducers

Actionsからデータを受け取り、Storeのstateをどう変更するか決める
Reducersはデータの初期状態、変更前と後を知りたいので、initialStateを記述する

Store

react-reduxのProviderとは

  1. propsにstoreを渡す →ラップしたコンポーネントにstoreの情報を渡す
  2. Reactコンポーネント内でreact-reduxのconnect関数を付けるようにする →ReactとReduxを接続してstoreを変更できるようにする

Fluxフローとは

なぜReduxを使うのか?

  1. stateの見通しをよくするため
  2. どこからでもstateを参照/変更可能にするため
  3. モジュール(機能のまとまり)を疎結合にするため

もしReactのみでstateを管理した場合


ひ孫でイベントが発生
孫→子→親へ伝達
親→子→孫へ伝達

Propsのバケツリレーが発生する

Reduxでstateを管理した場合


ひ孫でイベントが発生
ひ孫→Storeへ伝達
Store→孫へ伝達

Fluxフローとは?

  1. データフロー設計の1つ
  2. データが常に1方向に流れる
  3. イベントによってデータが変化(イベント駆動)

Flux思想をReactの状態管理に適用したライブラリがRedux