Help us understand the problem. What is going on with this article?

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

hisayuki
IT系ノマドワーカーです。主にWeb系だけどRuby未経験、PHPはあんま好きじゃない。メインはJVM言語、そろそろ他のやりたいなって思えてきてる。 最近使ってる: aws/terraform/spring/kotlin/Angular/Typescript/DDD/github/CICD 興味ある: serverless/自動化/gcp
https://hisa-tech.site
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away