概要
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についても受講しましたので、近々また公開します!