読者です 読者をやめる 読者になる 読者になる

技術部

プログラミングのことが中心

AWSの勉強メモ

ELB(load-balancer)

  • 複数仮想サーバーを立てている際に、アクセス集中をその複数のサーバーに振り分けることで処理を振り分けている

EC2(仮想サーバー)

  • インスタンスを作成することで、仮想サーバーを使用可能となる

    1つのインスタンスに対して、一つの仮想サーバーとしての振る舞い

  • イメージ

    Virtual Box的なもの。。。

  • リージョンとは?

    地域に存在するデータセンター群のこと

  • アベイラビリティ

    それぞれのリージョンを分割

    耐障害性を高める概念

    あるリージョンの中のあるアベイラビリティゾーンを選ぶことで、選んだアベイラビリティゾーンが災害被害を受けた際でも、同じリージョンの違うアベイラビリティゾーンに移行することで耐障害性を高めている。

流れとしては、EC2にrailsアプリケーションを置くことで、実際にアプリケーションをウェブ上で動かすことができる。 データ処理などはリクエストが来た際にRDS(データベース)に投げかける

s3(ストレージ)

  • インターネット経由で利用可能なストレージサービス

  • 使用例

    • コンテンツ配信(html js css 画像ファイル)
    • ログデータ等の保存
  • オブジェクトとは

    S3に格納されるファイル

  • オブジェクトのコンテナ(保存場所)。すべてのオブジェクトはバケット内に格納される。

Cloud Front

  • DNSサーバー
  • 高速配信するために強くキャッシュを効かせるネットワーク構成
  • 静的コンテンツの高速配信

RDS(データベース)

  • データベース管理

IAM(Identity and Access Management)

  • ユーザー(開発者)に対して、AWSへのアクセスを制御するもの
  • あるユーザーに体して権限を限定することができる

IAMロール

  • 通常AWSリソースへのアクセス権のないユーザー、アプリケーションなどにアクセス権を与えることができる。

    • あるアプリケーションなどからAWSリソースへのアクセスする際にあるアプリケーションにフルアクセス権限を与えることであるアプリケーションからawsリソースへとアクセスすることができるようになる

デプロイ(踏み台)サーバによる

  • deploy用にのサーバーのこと

    プロダクション環境の各EC2インスタンスソースコードをデプロイする場合、デプロイ用のサーバを1台用意すると便利。踏み代用サーバと兼務しても良い。

この際に、プロダクション環境にある、EC2にはIAMロールから認証することでアクセス可能とする。

踏み台サーバーを使用すると何がいいか?

  • セキュリティの強化

    セキュリティ攻撃のステークホルダーをなるべくなくす

  • 踏み台サーバーによるデプロイをすることでELB(load-balancer)からどこに(EC2インスタンスの住所)デプロイするかの情報を受け取ることできる。

AMIは何をする?

AMI = Amazon Machine Image

EC2をパッケージ化した感じ?

VPCとは何か?どのような役割をしているのか?

VPC = Virtual Private Cloud

  • 実際にサーバー構築をする際にまずどんな役割のサーバーが必要かを検討する

    web(EC2やS3) DataBase など

そこで、インターネットから直接EC2にアクセスすることはできるが、DataBaseにはアクセスできないようにする際にゾーン分けをする。 ゾーン分けをすることで、アクセス権限などを容易にする。DBにアクセスできるのは、このゾーンにあるEC2インスタンスからのみだよーなどの権限を与えることで、セキュリティなどが強化される。

VPCというのは簡単に言うと、クラウド上でゾーン分けをすることができる。

なぜVPCを用いる?

  • セキュリティ

    • VPCを構築することで、サブネット単位・ホスト単位での柔軟なアクセス制御ができる
    • パブリック・プライベートサブネットの切り分けができる
  • ネットワーク

    • 固定のローカルIPを使える

静的コンテンツのみをサーバーに置く際はS3? EC2?

  • s3を使用した方が安全しかし、S3はストレージに特化しているため遅いという問題点がある
  • CDNを使うことで速度の改善ができる(Cloud Front)

結論から言うと、S3に起き、S3と共に、Cloud Frontを使用する。

CDN

CDN = Contents Delivery Network

役割
  • アクセス元からみて距離的に一番近い場所にあるサーバーを自動で選択してくれる

  • キャッシュサーバーによる高速化

    • キャッシュがある場合、ユーザーへレスポンスしてくれる
    • キャッシュがない場合、本来のWebサーバーへアクセス

補足

サーバーの速さを決める要素

  • CPU

    データ処理など行う。

    CPUが早いということは、処理速度が早いということ

  • メモリ

    CPUが処理を実行するための作業スペース

  • DISK

    データの保管庫。容量が多ければ多いほど、ファイル保存量も多くなる。

    HDD => ハードディスクの読み取り装置。

    • 容量が多い
    • データ通信速度が遅い

    SSD => フラッシュメモリを記憶装置としたストレージ。HDDと同じ接続インターフェースを備え、HDDの代替として利用できる

    • HDDよりもデータ通信速度が速い。
    • 容量が少ない

まだまだ理解度が弱いなーと自らが感じる

ひとまず勉強メモ

指摘箇所あれば都度お願いします。