Edited at

AWSトレーニング(Amazon Web Services 実践入門 1 ~一日で学ぶ、AWSクラウド活用~) 受講してみました

More than 3 years have passed since last update.


概要

AWSトレーニングの初受講だったので、受講記録を残します。


用語紹介


  • リージョン


    • 世界の地域ごとの拠点



  • アベイラビリティゾーン(AZ)


    • リージョンごとのデータセンター郡

    • 別のアベイラビリティーゾーンで発生した障害から隔離するために作られた、リージョン内のデータセンター



  • エッジロケーション


    • キャッシュサービス

    • 物理的に離れた相手に対してサービスをキャッシュに配置することで、
      レスポンスを早くすることが出来る




今回利用したAWSサービス


  • EC2

  • AMI

  • RDS

  • ElasticLoadBalancing

  • S3


Amazon Elastic Compute Cloud(EC2)


特徴


  • 重要課金で利用できる仮想サーバリソース

  • 世界11箇所のリージョンで利用可能

  • OSはWindows、Linuxどちらも選択可能


課金体系


  • 課金はインスタンス利用料と、アウトバウンドのデータ転送量


    • インスタンス利⽤用料($0.02/hour ~)

    • データ転送量(OUT $0.14/GB )



  • 作成と同時にEBSが出来るため、EBSの使用料も発生する。


キーペア

公開鍵をAWS側が保管し、インスタンスが作成されるたびに埋め込んでいる。

キーペアの秘密鍵はキーペア作成タイミングで自動的にダウンロードされる。

紛失した場合、対応するインスタンスには入れなくなってしまう。

第三者に秘密鍵がわたってしまうと、簡単に不正アクセスが出来てしまう。


セキュリティグループ

FWの機能みたいなもの、初期状態では完全に遮断状態。

リージョンごとに独立して管理する。


  • アクセスの許可できる内容


    • プロトコル:HTTP、SSH、ポート番号、ポートレンジ等

    • インバウンド:アクセス元(IPアドレス、セキュリティグループID)

    • アウトバウンド:アクセス先(IPアドレス、セキュリティグループID)



インスタンス起動前に、適切なセキュリティグループを選択しアクセスの制限をかける

稼働中にも編集することも可能

IPの制限は0.0.0.0/0だとIPは完全開放状態となる

セキュリティグループにIPではなく許可するセキュリティグループの指定も可能。

たとえば、DBサーバに対してのセキュリティグループに、

Webサーバ専用のセキュリティグループIDを指定するとWebサーバからのみ、

接続可能とすることが出来る


柔軟性


スピード


  • 必要な時に必要な分調達できる仮想サーバ

  • 定義済みのスペック(インスタンスタイプ)、OSテンプレート(AMI) を 選択

  • 障害や不要になったら即破棄ができる


低コスト


  • 物理ではないので、初期費用はかからない。使った分だけかかる従量課金制

  • ケースバイケースでサーバの増減が簡単にできる。
    ※ ただし、増やしたら増やした分の利用費用はかかる。


管理

共有サーバと違い、与えられるユーザは管理者権限を持っている。

そのため、自由にソフトウェアやミドルウェアを入れることが出来る。


安全性

セキュリティグループによる柔軟なネットワーク・セキュリティモデル


演習内容


  • キーペアの作成

  • セキュリティグループ(HTTP、SSHのみのアクセス許可)を作成

  • EC2インスタンスの作成

  • 作成したインスタンスへのSSH接続、Wordpress稼働環境のインストール


Amazon Machine Image(AMI)


特徴


  • 作成したインスタンスのイメージを生成でき、S3へ保管できる

  • 作成したイメージから同じインスタンスを複製できる

  • Amazon LinuxはAmazonが作成したLinux環境のAMI

  • 作成したAMIはコミュニティ等に公開することが出来る。


課金体系

インスタンスイメージのスナップショット容量に応じた課金のみ。

スナップショットの保存先がS3になるため容量に応じたS3の料金が発生する。


注意点

AMIを削除しても、S3のスナップショットは残っているため課金は発生する。

そのため、AMI削除時にはスナップショットも一緒に削除する必要がある。


演習内容


  • EC2の演習時に作成したEC2のAMIを作成

  • AMIからEC2の生成

  • 生成したEC2のDNSに対して接続し、Wordpressが入っていることを確認


Amazon Simple Storage Service(Amazon S3)


特徴


  • 高い堅牢性:99.999999999%

  • 配置ファイルの数量無制限

  • 様々なAWSサービスとの連携が可能

  • 静的Webサイトであれば、S3のみで公開可能

  • リージョン指定がない

  • バケットは最大100/AWSアカウントまで作成可能

  • オブジェクトの最大容量は1オブジェクト5TBまで

  • オブジェクトごとにURLを付与


課金体系


  • データ格納容量

  • データ転送量(OUT)

  • APIリクエスト数


耐障害制


  • 地理的に離れたデータセンターで3箇所で冗長に保持

  • 2箇所のデータセンターが同時にロストしても耐えられる設計

  • データロストに対して自動発見・自動修復


用語


  • バケット:オブジェクトの置き場

  • オブジェクト:アップロードしたファイル

  • キー:オブジェクトごとに付与される一意の識別子

  • ACL:バケット、オブジェクトへのアクセス制御のためのリスト


演習内容


  • WordPressにプラグインを追加(Amazon S3 for WordPress with CloudFront)

  • S3とWordPressを連携

  • WordPressで画像付きの記事を投稿し、画像がS3に保存されることを確認。


Amazon Relational Database Service(Amazon RDS)


特徴


  • マネージドRDBMSサービス
    管理部分をAmazonが行うRDBのサービス

  • OracleやSqlServerなど、ライセンス費用がかかるサービスは
    ライセンス費が従量課金になっている。
    そのため、初期費用としてライセンス費用がかからない。

  • バックアップ、パッチ適用、フェイルオーバーは自動で行われる


課金体系


  • インスタンスタイプに応じて

  • ストレージ利用料

  • Multi-AZ配置を利用の場合、料金記載の料金


Multi-AZ

同一AZではなく、複数のAZに対して同期レプリケーションを行う。

災害発生時等に、別のAZにあるスレーブにフェイルオーバーを自動で行うことが出来る。

他のフェイルオーバータイミングとしては、障害やパッチ適応などの

計画的メンテナスがある。


バックアップ


  • 自動スナップショット


    • Amazon RDS標準装備

    • 1日1回自動取得 + トランザクションログバックアップ

    • 保存期間は最大35日間まで設定可能



  • 手動スナップショット


    • 任意のタイミングでスナップショットを取得可能



  • 自動パッチ適用


    • サーバOS更新とデータベースエンジンのマイナーアップグレード

    • 自動または手動での適用可能

    • 設定されたメンテナンス期間または次回、あるいは任意のタイミング



※データベースエンジンのメジャーアップグレードは手動で行う


復旧作業


  • RDSインスタンスの削除の際、最後のスナップショットを保管することができる

  • スナップショットからのリストアは既存のDBインスタンスを修復するのではなく、
    新しいDBインスタンスを作成すること

※同じ識別子は使えないため、アプリ側のDBアクセス識別子の変更が必要

 ただし、リストア後に障害DBを削除すれば識別子を同様にすることも可能

 その分、システム停止時間は伸びる


演習内容


  • WordPressの使用するMySQLをRDSにする

  • RDS用のセキュリティグループを作成し、インバウンドには
    EC2のセキュリティグループのIDを設定

  • 復旧作業を行い、識別子が変更されると繋がらなくなることを確認

  • 復旧後に古いRDSインスタンスを削除し、新規で作成したRDSの識別子を変更

  • 正常にWordPressが動作することを確認


Elastic Load Balancing (ELB)


特徴


  • 複数のアベイラビリティゾーンにまたがって、 高レベルの耐障害性を実現

  • ELB⾃体が⾃動的にキャパシティを増減

  • 増減するELBはIPはそれに伴い変わるが、DNSを統一することでアクセス側は気にしなくてよくなっている

  • バックエンドのEC2のセキュリティグループにELB からのトラフィックしか受けない設定が可能


ELBの可⽤性


  • ヘルスチェックを実施


    • EC2の状態を検出



  • 正常稼働しているインスタンスにのみ負荷分散


演習内容


  • ELB用のセキュリティグループ作成

  • ELBを作成し、セキュリティグループを設定

  • EC2インスタンスはRDSの演習時に作成したものを利用

  • EC22台で片方に負荷を与えて、切り替わるのを確認


まとめ


Amazon EC2を使ったシステムの設計


  • 故障に備えた設計 Design for Failureを意識

  • 障害からの復旧時間(Mean Time To Repair , MTTR)を重視


    • 壊れたものを修復するのではなく、AMIやスナップショットから新しく作るほうが早い



  • 平均故障間隔(Mean Time Between Failure, MTBF)にこだわらない

  • AMIを常に作成

  • EBSスナップショットを定期的に取得

  • 複数アベイラビリティゾーンへインスタンスを分散
    ⇛東京リージョンは2箇所ある


次に押さえておきたいサービス


  • IAM

  • CloudWatch

  • AutcoScaling

  • VPC

  • CloudFront


感想

長くなりましたが、受講記録は以上になります。

初めてAWSのトレーニングを受けたので、1Dayセミナーとしては楽しかったです。

割りと細かく教えていただけましたし、ハンズオンで結構好きに触らせてもらえました。

実践入門 2についても受講しましたので、近々また公開します!