新人SEの学習記録

14年度入社SEの学習記録用に始めたブログです。気づけば社会人3年目に突入。

学習記録:AWS

[学習記録] AWS

2章:特徴を理解してAWS使いになる

5つのポイントを抑える

スケーラビリティ
  • スケールアップ:CPUの追加、メモリ増設、ディスク交換など
    • EC2やRDSなら、一旦停止>異なるインスタンスタイプを指定して再起動するだけ
  • スケールアウト:ノード数を増やして処理を分散
コスト
  • オンプレミスに比べ、AWSは初期コストや災害対策コストは低く、調達期間やサーバ性能の変更も短期間で実現可能
    • 利用コストについてはどちらが低くなるか一概には言えない(利用の仕方による)
    • TCO(総所有コスト) Calculator Web Applicationを使ってオンプレミスとAWSでのコストを比較
可用性
  • 主要サービスの幾つかではSLAを規定
    • SLAの内容はサービスによって異なり、定められていないサービスも存在
    • 算出条件は「リージョン使用不能」で、同一リージョンの複数Availability Zoneを同時に使用できないこと
  • AWSのサーバは落ちるものという前提に立っておくこと
    • ELBを使って複数AZのサーバに振り分け、DBはMulti-AZの項目を設定してレプリケーションする
    • リージョンそのものが利用できない場合にも対応する、リージョン間でサービスを複製してRoute 53でルーティング
セキュリティ
  • Shared Responsibility:AWSが管理している範囲はAWSが責任を持ち、利用者が管理している部分は利用者が責任を持つ
    • EC2ではOSから上、RDSではユーザアカウントから上の層については利用者がセキュリティを確保する
    • AWSのセキュリティについては、取得している認証や公開情報をもとに評価
    • 利用者のセキュリティ対策:アクセス制御、暗号化、ログ管理
    • アクセス制御:VPCAWS Identity and Access Management(IAM)の利用
    • 暗号化:独自に暗号化、もしくはAWSの暗号化機能を利用
    • ログ管理:AWS CloudTrailを利用、リソースへのアクセスログを取得・管理できる
  • 運用管理
    • AWSが管理する部分には運用も含まれる
    • RDSなら、管理コンソールからパッチ適用やバックアップ、レプリケーションポリシーを設定できる
    • EC2のシステムイメージやデータは、管理コンソールで手動でスナップショットを取得
    • RDSはスナップショット取得だけでなく自動バックアップ機能も提供。1日1回自動でスナップショットを取得
  • EC2, RDSのバックアップをAMIで登録しておくと、AMIをテンプレートにしてインスタンスを作成可能
    • 開発チームで同一の開発環境が必要な場合など

3章:12個の最新サービス/最新機能

インフラ
  • Amazon RDS for Aurora
    • AWS独自開発のエンジン、MySQL 5.6と互換性
    • 性能、キャパシティ、セキュリティ、可用性が高まっている
    • EC2インスタンスの挙動や障害を管理する必要がない
  • AWS Lambda
    • AWS内で発生したイベントをトリガーにNode.jsで書かれたプログラムを実行するPaaS
    • 実行するプログラムはLambda functionと呼び、デプロイするだけで動作する
    • イベントはS3/DBの更新、Amazon Kinesisへのデータ入力など
    • S3に画像ファイルがアップロードされたら、Lambdaでサムネイルを作成といった使い方
  • Amazon EC2 Container Service(ECS)
    • 複数のEC2インスタンス上でDockerコンテナを稼働させて一元管理するサービス
    • Dockerコンテナとそれが稼働するEC2インスタンスの状態を管理し、コンテナの配置換えを行う
    • 運用管理者はDOckerコンテナに必要なCPUやメモリを設定ファイルに記述
    • 設定ファイルに基づき、EC2インスタンスクラスタ内でコンテナをさいてき配置する
開発ツール
  • CodeDeploy
    • EC2インスタンスにプログラムをデプロイするサービス
    • 1回設定しておくと何度でも繰り返しデプロイ実行可能
    • インスタンスを停止せずにデプロイすうローリングアップデートや成功/失敗を監視するヘルスチェック機能などを備える
  • CodeCommit
    • バージョン管理ツールとチケット管理ツールを組み合わせたサービス
    • ユーザに対してプライベートなリポジトリを提供、バージョン管理にはGitを使用
  • CodePipeline
    • ビルド、テスト、デプロイといった一連の作業を自動化
    • 自動化した作業を繰り返し実行するCIを実現するサービス
管理・監査
  • AWS Key Management Service(KMS)
    • ディスクやS3に保存したデータなどを暗号化する鍵を管理するサービス
    • 暗号化対象のAWSのサービスやアクセス許可ユーザなどを管理コンソールで設定
  • AWS Config
    • AWS各種サービスの設定変更履歴を管理するサービス
    • 変更の実施内容、実施者、変更が影響する別のサービスといった情報を記録
    • システム監査で利用できる
  • AWS Service Catalog
    • システム構築自動化ツールAWS CloudFormationと組み合わせて使う
    • CloudFormationはシステム構成をテンプレートと呼ばれる形式で保存
    • Service Catalogは独自テンプレートの一覧をWeb上のカタログにし、そこから選択するだけでシステムを自動構築する