AWS研修のメモ

about

AWS AWS Technical Essentials1を受講した際のメモ。
何も知らなかったので受講してよかったと思った。
EC2とかS3とか聞いて、聞いたことあるけどよくわからんって人は受講オススメ。

AWSの歴史

  • 当初はAmazonもモノリシックアーキテクチャだった
  • そこからSOA
  • SOAをさらに分割してマイクロサービスに
  • APIベースの開発にすることでアジリティが向上

  • 規模の経済

    • 2006年以降、料金改定は全部値下げ
    • 料金はリージョンごとに違う
  • オンプレシステムは基本的にAWS移行可能

グローバルインフラストラクチャ

  • リージョン
    • 地理的なロケーション
    • 18コある(15+3)、特殊なリージョンが米国と中国に
    • 大阪にローカルリージョンという特殊なリージョンがある
      • DR対応をするため
  • アベイラビリティゾーン(AZ)
    • 1リージョンの中に2つ以上存在する
    • 1リージョン内の個々のAZの障害は他のAZに影響しない
  • データセンタ
  • エッジロケーション
    • Route 53(DNS), Cloud Front(CDN)だけが乗っている

AWSの設計の推奨事項としては、複数のAZをまたぐように構築する 高い可用性を実現できる

  • rootユーザでのログインは非推奨
  • IAMユーザを作成してのログインが求められる

AWSインフラストラクチャ

EC2

  • サイズ変更可能なコンピューティングリソース
  • Linux or Windows、IAサーバなら動く
  • EC2インスタンスは汎用機上で動いている
    • 可用性を高めるには複数インスタンスでの運用が推奨
    • AZももちろん分けたほうが良い
    • ハードを占有するにはDedicated Hostを利用する

EC2の用語

  • aws market place

    • 販売したいソフトをAMIに組み込んで売る
  • インスタンスタイプ

    • t2 : CPUパワーは20%に抑えられていて、従量課金でマックスまでリソースを使うことができる
    • m系: 常にフルでリソースを利用できる。mの後の数字はXeonの世代。
  • ネットワーク
    • vpcはネットワークの設定
    • ネットワークのサブネットの位置を指定することでAZが決まる
    • パブリックIP : グローバルIP
  • テナンシー
    • ハード共有・占有が選択可
    • ハード占有は割り当てられるハードは指定できない、ハードウェアに対する可視性がない、物理で何が乗っているかわからない
    • dedicatedは自分で選択した物理的構成ができる、ハードの構成に可視性がある
      • 物理的に指定ができるのでライセンス問題を回避できる
  • ユーザデータ
    • 起動スクリプトの定義ができる
    • cloud-initというサービスが組み込まれている
    • cloud-initはsystemctlから操作が可能
  • タグ
    • 設定必須項目ではない、key:valueの設定ができる
    • 運用上必要なラベルをはるもの
  • セキュリティグループ(SG)
    • 仮想的なfirewall
    • EC2インスタンスを起動する際は、1つ以上のSGの設定が必要
    • デフォルトではインバウンド通信はすべて遮断
    • ソースIPをすべて許可する際はプルダウンから「任意の場所」を選択
  • SSH
    • デフォルトでec2-userが作成される

ストレージ

EC2にマウントして使う - Amazon EBS - ネットワークを介してアクセスできるストレージ - 永続的なストレージ - root volumeとして利用する

ストレージサービス

Amazon Simple Storage Service (S3)

  • HTTP接続
  • どのような量でも格納できる
    • スケーラビリティ

用語 - バケット - データを格納する領域 - 名前をグローバルで一意につける必要がある - オブジェクト - S3上に格納されるデータ - 最大5TBのオブジェクトを保管可能 - オブジェクトキー - オブジェクトのもつ一意の識別子 - 次のように表されるhttp://$backet_name$.s3.amazonaws.com/$object_key$

一般的な使用シナリオ - ストレージとバックアップ - アプリファイルのホスティング - AMI, スナップショットの保存

料金 - 従量課金 - ストレージ料金 - リクエスト料金 : httpリクエスト毎 - データ転送料金 : S3の外へのデータ転送

Amazon Glacier

  • データを低コスト長期ストアするサービス
  • データはすぐに扱えず、アーカイブ化されている
    • 取り出しには3~5時間ほどかかる
  • sound cloudは2.5PBのデータを保存している

Amazon Elastic Block Store (EBS)

  • 永続的なブロックレベルでのストレージボリューム
  • 自動レプリケーション
  • スナップショットはS3にストア
  • EBSのボリュームは単一のAZに依存

料金はプロビジョンニングした分のみ

ネットワーク

VPC

隔離された仮想ネットワーク。特定のリージョンに作成する。  

  • サブネット
    • サブネットはAZゾーンの位置を特定するのに用いられる。
    • プライベート/パブリックサブネットに分割される

セキュリティ・アイデンティティ・アクセス管理

セキュリティ指針

  • SSLエンドポイント
    • APIエンドポイントはTLSセッションで提供
  • セキュリティグループ
    • ユーザが適切なfirewallを設定することが求められる
  • 多層セキュリティグループ
    • 3層スキーマにあわせて、それぞれのレイヤでセキュリティポリシを設定できる
  • VPC
    • ユーザがリソースを適切に配置すること

AWS Identity and Access Management (IAM)

  • AWSの認証・認可を行う機構
  • 認可(IAMポリシー)はJSON形式で記述される
  • IAMロールは一時的に権限を委任する機構

IAMのベストプラクティス

  • 個別のIAMユーザの作成
  • 一律の権限付与にはIAMグループを用いる
  • EC2インスタンスで実行するアプリにはIAMロールを適用する

データベース

Amazon Relational Database Service(RDS)

  • サイズ変更が可能(データベースインスタンス)
  • インストールはサービスが自動的に
  • データベースの管理タスクはサービスに含まれる
  • 自動バックアップがデフォルトで有効(1日に1回フルバックアップ)
  • マルチAZ構成にしてHAにすることも可能

Amazon DynamoDB

  • 保存できるデータ量に制限はなし
  • フルマネージド型のサービス

  • パーティションキー

  • ソートキー

2つを組み合わせてプライマリキーにする