Save 37% off PRO during our Black Friday Sale! »

AWS研修 コンピューティング(EC2)とコンピューティング向けストレージ(EBS)入門

85da685d91fda190e2e3162d0de248a4?s=47 Recruit
August 17, 2021

 AWS研修 コンピューティング(EC2)とコンピューティング向けストレージ(EBS)入門

2021年度リクルート エンジニアコース新人研修の講義資料です

85da685d91fda190e2e3162d0de248a4?s=128

Recruit

August 17, 2021
Tweet

Transcript

  1. コンピューティング(EC2)と コンピューティング向けストレージ(EBS)⼊⾨ 株式会社リクルート クラウドアーキテクトグループ

  2. ⽬次 • AWSにおけるコンピュートサービス • EC2のメリット • EC2インスタンスの構築 2

  3. AWSにおけるコンピュートサービス 3

  4. AWSにおけるコンピュートサービス AWSにおけるコンピュートサービスは主に以下です 4 Amazon EC2 AWSにおける仮想マシンの提供サービスです。 Amazon ECSやAmazon EKSの基盤としても動作します。 AWS

    Fargate Amazon ECSやAmazon EKSの基盤となるコンテナ向け サーバーレスコンピューティングエンジンです。 AWS Lambda AWSが提供するサーバーレスコンピューティングサービスです。 FaaS(Function as a Service)の形で提供されます
  5. AWSにおけるコンピュートサービス AWSにおけるコンピュートサービスは主に以下です 5 Amazon EC2 AWSにおける仮想マシンの提供サービスです。 Amazon ECSやAmazon EKSの基盤としても動作します。 AWS

    Fargate Amazon ECSやAmazon EKSの基盤となるコンテナ向け サーバーレスコンピューティングエンジンです。 AWS Lambda AWSが提供するサーバーレスコンピューティングサービスです。 FaaS(Function as a Service)の形で提供されます 今回は最も基礎的なAmazon EC2について解説します
  6. Amazon EC2(Elastic Compute Cloud)とはなにか︖ • 仮想マシン(Virtual Machine, VM)を提供するサービスです • VPC内部で利⽤します※

    6 ※ VPCサービスが提供されるまではパブリック空間で動作していました(EC2 Classic) 現在ではEC2 Classicを新規で利⽤することはないためこの前提で⼤丈夫です。
  7. Amazon EC2(Elastic Compute Cloud)とはなにか︖ • 仮想マシン(Virtual Machine, VM)を提供するサービスです • VPC内部で利⽤します※

    7 ※ VPCサービスが提供されるまではパブリック空間で動作していました(EC2 Classic) 現在ではEC2 Classicを新規で利⽤することはないためこの前提で⼤丈夫です。 仮想マシンの裏側の仕組みについては 2020年のAWS re:Inventのセッションを⾒てください https://www.youtube.com/watch?v=e1_UJTgyFqM
  8. EC2のメリット 8

  9. EC2のメリット 9 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作

    APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
  10. EC2のメリット 10 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作

    APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
  11. 代表的なインスタンスタイプ 11 m系 汎⽤タイプ m5 : Intel x86-64(Xeon)のタイプ m5a: AMD

    x86-64(EPYC)のタイプ m6g: aarch64(Amazon Graviton2)のタイプ c系 コンピューティング最適化タイプ c5 : Intel x86-64(Xeon)のタイプ c5a: AMD x86-64(EPYC)のタイプ c6g: aarch64(Amazon Graviton2)のタイプ r系 メモリ最適化タイプ r5 : Intel x86-64(Xeon)のタイプ r5a: AMD x86-64(EPYC)のタイプ r6g: aarch64(Amazon Graviton2)のタイプ t系 バースト可能汎⽤タイプ t3 : Intel x86-64(Xeon)のタイプ t3a: AMD x86-64(EPYC)のタイプ t4g: aarch64(Amazon Graviton2)のタイプ 他にも多くのインスタンスタイプが存在しますが、主に利⽤するのは上記4種類が多いです
  12. 代表的なインスタンスタイプ 12 m系 汎⽤タイプ m5 : Intel x86-64(Xeon)のタイプ m5a: AMD

    x86-64(EPYC)のタイプ m6g: aarch64(Amazon Graviton2)のタイプ c系 コンピューティング最適化タイプ c5 : Intel x86-64(Xeon)のタイプ c5a: AMD x86-64(EPYC)のタイプ c6g: aarch64(Amazon Graviton2)のタイプ r系 メモリ最適化タイプ r5 : Intel x86-64(Xeon)のタイプ r5a: AMD x86-64(EPYC)のタイプ r6g: aarch64(Amazon Graviton2)のタイプ t系 バースト可能汎⽤タイプ t3 : Intel x86-64(Xeon)のタイプ t3a: AMD x86-64(EPYC)のタイプ t4g: aarch64(Amazon Graviton2)のタイプ 本番環境向け 開発環境向け 他にも多くのインスタンスタイプが存在しますが、主に利⽤するのは上記4種類が多いです
  13. 代表的なインスタンスタイプ 13 m系 汎⽤タイプ m5 : Intel x86-64(Xeon)のタイプ m5a: AMD

    x86-64(EPYC)のタイプ m6g: aarch64(Amazon Graviton2)のタイプ c系 コンピューティング最適化タイプ c5 : Intel x86-64(Xeon)のタイプ c5a: AMD x86-64(EPYC)のタイプ c6g: aarch64(Amazon Graviton2)のタイプ r系 メモリ最適化タイプ r5 : Intel x86-64(Xeon)のタイプ r5a: AMD x86-64(EPYC)のタイプ r6g: aarch64(Amazon Graviton2)のタイプ t系 バースト可能汎⽤タイプ t3 : Intel x86-64(Xeon)のタイプ t3a: AMD x86-64(EPYC)のタイプ t4g: aarch64(Amazon Graviton2)のタイプ 本番環境向け 開発環境向け 他にも多くのインスタンスタイプが存在しますが、主に利⽤するのは上記4種類が多いです https://www.slideshare.net/AmazonWebServicesJapan/20190305- aws-black-belt-online-seminar-amazon-ec2 の 19スライド目より抜粋
  14. 代表的なインスタンスタイプ 14 m系 汎⽤タイプ m5 : Intel x86-64(Xeon)のタイプ m5a: AMD

    x86-64(EPYC)のタイプ m6g: aarch64(Amazon Graviton2)のタイプ c系 コンピューティング最適化タイプ c5 : Intel x86-64(Xeon)のタイプ c5a: AMD x86-64(EPYC)のタイプ c6g: aarch64(Amazon Graviton2)のタイプ r系 メモリ最適化タイプ r5 : Intel x86-64(Xeon)のタイプ r5a: AMD x86-64(EPYC)のタイプ r6g: aarch64(Amazon Graviton2)のタイプ t系 バースト可能汎⽤タイプ t3 : Intel x86-64(Xeon)のタイプ t3a: AMD x86-64(EPYC)のタイプ t4g: aarch64(Amazon Graviton2)のタイプ 本番環境向け 開発環境向け 他にも多くのインスタンスタイプが存在しますが、主に利⽤するのは上記4種類が多いです https://www.slideshare.net/AmazonWebServicesJapan/20190305- aws-black-belt-online-seminar-amazon-ec2 の 19スライド目より抜粋 ⽤途に合わせた最適なタイプとサイズを選択するようにしましょう (悩んだら可能な限り実測してみるようにしましょう)
  15. EC2のメリット 15 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作

    APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
  16. 需要に合わせた利⽤ • 短時間で起動し、秒単位での課⾦なので需要に併せて スケールアウト、スケールインすることでコストメリットを享受しやすいです。 16 これまで EC2を使う場合 過剰にプロビジョニングして余分なコストを⽀払う (or 余分な初期投資を⾏う)

    過⼩にプロビジョニングして機会損失を被る 動的にスケールアウト・スケールインさせる ことでコストを最⼩に保つ 凡例 処理能⼒ 処理リクエスト
  17. 需要に合わせた利⽤ • 短時間で起動し、秒単位での課⾦なので需要に併せて スケールアウト、スケールインすることでコストメリットを享受しやすいです。 17 これまで EC2を使う場合 過剰にプロビジョニングして余分なコストを⽀払う (or 余分な初期投資を⾏う)

    過⼩にプロビジョニングして機会損失を被る 動的にスケールアウト・スケールインさせる ことでコストを最⼩に保つ 凡例 処理能⼒ 処理リクエスト GUIまたはAWS CLIで都度 ⼿動でスケールアウト・イン
  18. 需要に合わせた利⽤ • 短時間で起動し、秒単位での課⾦なので需要に併せて スケールアウト、スケールインすることでコストメリットを享受しやすいです。 18 これまで EC2を使う場合 過剰にプロビジョニングして余分なコストを⽀払う (or 余分な初期投資を⾏う)

    過⼩にプロビジョニングして機会損失を被る 動的にスケールアウト・スケールインさせる ことでコストを最⼩に保つ 凡例 処理能⼒ 処理リクエスト GUIまたはAWS CLIで都度 ⼿動でスケールアウト・イン AutoScalingなどを利⽤して ⾃動でスケールアウト・イン
  19. EC2のメリット 19 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作

    APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
  20. ⾼い⾃由度 • OSの管理ユーザー権限(root)を利⽤可能なので、任意のソフトウェアを導⼊す ることが可能です。 • ただし、OSレイヤ以上のレイヤについてはユーザ責任となるので、導⼊した ソフトウェアが原因でOSが起動しなくなった場合などはユーザ主導で対応す る必要があります 20

  21. EC2のメリット 21 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作

    APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
  22. 柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 22 オンデマンド リザーブド スポット ※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します

  23. 柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 23 オンデマンド リザーブド スポット • デフォルト • 秒単位での料⾦課⾦です

    ※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します
  24. 柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 24 オンデマンド リザーブド スポット • デフォルト • 分単位での料⾦課⾦です

    • 事前に利⽤期間をコミット することで割引が適⽤され ます • 料⾦を前払いするかなど 各種条件で割引率が変動し ます ※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します
  25. 柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 25 オンデマンド リザーブド スポット • デフォルト • 分単位での料⾦課⾦です

    • 事前に利⽤期間をコミット することで割引が適⽤され ます • 料⾦を前払いするかなど 各種条件で割引率が変動し ます • AWSの余剰リソースをつ かって仮想マシンを⽴ち上 げます • ⼤幅な料⾦割引が適⽤され ます • 余剰リソースが逼迫した場 合は予告の後、停⽌される ことがあります ※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します
  26. 柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 26 オンデマンド リザーブド スポット • デフォルト • 分単位での料⾦課⾦です

    • 事前に利⽤期間をコミット することで割引が適⽤され ます • 料⾦を前払いするかなど 各種条件で割引率が変動し ます • AWSの余剰リソースをつ かって仮想マシンを⽴ち上 げます • ⼤幅な料⾦割引が適⽤され ます • 余剰リソースが逼迫した場 合は予告の後、停⽌される ことがあります ※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します 数ヶ⽉程度の利⽤の場合に選択 年単位で継続して利⽤する場合に選択 途中で停⽌しても問題ない または処理を再開できるor代替処理が ある場合に選択
  27. EC2のメリット 27 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作

    APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
  28. APIをつかった操作 EC2の管理にAWS CLIやTerraform, CloudFormationなどをつかってAPIを操作す ることでコードベースでEC2インスタンスを管理することが可能です 28 AWS CLI Terraform CloudFormation

    AWS EC2 API shell スクリプト HCLコード YAML/JSON ファイル
  29. EC2インスタンスの構築 29

  30. EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 30 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
  31. EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 31 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
  32. 配置先VPC・サブネットの選定 インスタンスの配置先VPCとサブネットを定める 32 Availability Zone ap-northeast-1a Availability Zone ap-northeast-1c Availability

    Zone ap-northeast-1d Region ap-northeast-1(Tokyo) VPC 10.0.0.0/16 Public subnet 10.0.0.0/24 Public subnet 10.0.1.0/24 Public subnet 10.0.2.0/24 Private subnet 10.0.3.0/24 Private subnet 10.0.4.0/24 Private subnet 10.0.5.0/24 Database subnet 10.0.3.0/24 Database subnet 10.0.4.0/24 Database subnet 10.0.5.0/24
  33. 配置先VPC・サブネットの選定 インスタンスの配置先VPCとサブネットを定める 33 Availability Zone ap-northeast-1a Availability Zone ap-northeast-1c Availability

    Zone ap-northeast-1d Region ap-northeast-1(Tokyo) VPC 10.0.0.0/16 Public subnet 10.0.0.0/24 Public subnet 10.0.1.0/24 Public subnet 10.0.2.0/24 Private subnet 10.0.3.0/24 Private subnet 10.0.4.0/24 Private subnet 10.0.5.0/24 Database subnet 10.0.3.0/24 Database subnet 10.0.4.0/24 Database subnet 10.0.5.0/24 Instance Instance Instance 基本はプライベートサブネットに設置 (HTTPリクエストなどの受付はパブリックサブネッ トに配置したロードバランサ経由が原則)
  34. 配置先VPC・サブネットの選定 インスタンスの配置先VPCとサブネットを定める 34 Availability Zone ap-northeast-1a Availability Zone ap-northeast-1c Availability

    Zone ap-northeast-1d Region ap-northeast-1(Tokyo) VPC 10.0.0.0/16 Public subnet 10.0.0.0/24 Public subnet 10.0.1.0/24 Public subnet 10.0.2.0/24 Private subnet 10.0.3.0/24 Private subnet 10.0.4.0/24 Private subnet 10.0.5.0/24 Database subnet 10.0.3.0/24 Database subnet 10.0.4.0/24 Database subnet 10.0.5.0/24 Instance Instance Instance 基本はプライベートサブネットに設置 (HTTPリクエストなどの受付はパブリックサブネッ トに配置したロードバランサ経由が原則) 要件次第ではパブリックサブネット に配置することもある Instance Instance Instance
  35. EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 35 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
  36. 代表的なインスタンスタイプ(再掲) 36 m系 汎⽤タイプ m5 : Intel x86-64(Xeon)のタイプ m5a: AMD

    x86-64(EPYC)のタイプ m6g: aarch64(Amazon Graviton2)のタイプ c系 コンピューティング最適化タイプ c5 : Intel x86-64(Xeon)のタイプ c5a: AMD x86-64(EPYC)のタイプ c6g: aarch64(Amazon Graviton2)のタイプ r系 メモリ最適化タイプ r5 : Intel x86-64(Xeon)のタイプ r5a: AMD x86-64(EPYC)のタイプ r6g: aarch64(Amazon Graviton2)のタイプ t系 バースト可能汎⽤タイプ t3 : Intel x86-64(Xeon)のタイプ t3a: AMD x86-64(EPYC)のタイプ t4g: aarch64(Amazon Graviton2)のタイプ 本番環境向け 開発環境向け 他にも多くのインスタンスタイプが存在しますが、主に利⽤するのは上記4種類が多いです https://www.slideshare.net/AmazonWebServicesJapan/20190305- aws-black-belt-online-seminar-amazon-ec2 の 19スライド目より抜粋
  37. EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 37 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
  38. EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 38 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します 別途後述
  39. EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 39 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
  40. AMI(Amazon Machine Image) • AWSにおける仮想マシンイメージのこと • どのOSを利⽤するか(Linuxではどのディストリビューションを利⽤するか)をベースに選定します • ⾃分で作成して利⽤することも可能です 40

    Instance AMI アプリケーション バイナリ/コードの動作環境 AMIから仮想マシン (EC2インスタンスを作成) 超基本的な利⽤の仕⽅ 必要なパッケージ・ ランタイムの導⼊ アプリケーションのデプロイ
  41. 提供されているAMIの種類 41 パブリック AMI AWSの利⽤者であれば誰でも 利⽤可能なAMI ⾃⼰所有AMI ⾃分で作成したAMI パブリックAMIまたはプライベートAMIをベース に作成します(他にも作成⽅法はありますが他の作

    成⽅法は原則社内では利⽤していません) プライベート AMI 組織内などで共有されているAMI 組織によっては事前に構築したAMIを 利⽤することを推奨している場合もあります
  42. 提供されているAMIの種類 42 パブリック AMI AWSの利⽤者であれば誰でも 利⽤可能なAMI ⾃⼰所有AMI ⾃分で作成したAMI パブリックAMIまたはプライベートAMIをベース に作成します(他にも作成⽅法はありますが他の作

    成⽅法は原則社内では利⽤していません) プライベート AMI 組織内などで共有されているAMI 組織によっては事前に構築したAMIを 利⽤することを推奨している場合もあります AWS公式 AWSの利⽤者であれば誰でも 利⽤可能なAMI マーケット プレイス AWSの利⽤者であれば誰でも 利⽤可能なAMI コミュニティ AWSの利⽤者であれば誰でも 利⽤可能なAMI パブリックAMIの⼩分類
  43. 提供されているAMIの種類 43 パブリック AMI AWSの利⽤者であれば誰でも 利⽤可能なAMI ⾃⼰所有AMI ⾃分で作成したAMI パブリックAMIまたはプライベートAMIをベース に作成します(他にも作成⽅法はありますが他の作

    成⽅法は原則社内では利⽤していません) プライベート AMI 組織内などで共有されているAMI 組織によっては事前に構築したAMIを 利⽤することを推奨している場合もあります AWS公式 AWSの利⽤者であれば誰でも 利⽤可能なAMI マーケット プレイス AWSの利⽤者であれば誰でも 利⽤可能なAMI コミュニティ AWSの利⽤者であれば誰でも 利⽤可能なAMI パブリックAMIの⼩分類 パブリックAMIは原則AWS公式のものを 第⼀候補とします
  44. 提供されているAMIの種類 44 パブリック AMI AWSの利⽤者であれば誰でも 利⽤可能なAMI ⾃⼰所有AMI ⾃分で作成したAMI パブリックAMIまたはプライベートAMIをベース に作成します(他にも作成⽅法はありますが他の作

    成⽅法は原則社内では利⽤していません) プライベート AMI 組織内などで共有されているAMI 組織によっては事前に構築したAMIを 利⽤することを推奨している場合もあります AWS公式 AWSの利⽤者であれば誰でも 利⽤可能なAMI マーケット プレイス AWSの利⽤者であれば誰でも 利⽤可能なAMI コミュニティ AWSの利⽤者であれば誰でも 利⽤可能なAMI パブリックAMIの⼩分類 ハンズオンの中で作成します (最もシンプルなEBSスナップショットからの作成です。 CodeBuildやEC2 ImageBuilderは本講義の範囲外です)
  45. EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 45 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
  46. セキュリティグループ VPC内部のインスタンス間の通信可否を設定するための機能です 46 Instance セキュリティグループ(sg-aaaaaaa) Inbound Outbound TCP 443番ポート 192.168.2.0/24

    TCP 443番ポート sg-bbbbbb Any 0.0.0.0/0
  47. セキュリティグループ VPC内部のインスタンス間の通信可否を設定するための機能です 47 Instance セキュリティグループ(sg-aaaaaaa) Inbound Outbound TCP 443番ポート 192.168.2.0/24

    TCP 443番ポート sg-bbbbbb Any 0.0.0.0/0 許可ルールは • プロトコル(TCP・UDPの場合はポート番号も) • 送信元または宛先 のセットで記述します
  48. セキュリティグループ VPC内部のインスタンス間の通信可否を設定するための機能です 48 Instance セキュリティグループ(sg-aaaaaaa) Inbound Outbound TCP 443番ポート 192.168.2.0/24

    TCP 443番ポート sg-bbbbbb Any 0.0.0.0/0 送信元IPアドレスが192.168.2.0/24のネットワークに含まれる か、sg-bbbbbbのセキュリティグループを保有しているインス タンスからのTCP 443番ポートへの通信であれば受信を許可し ます
  49. セキュリティグループ VPC内部のインスタンス間の通信可否を設定するための機能です 49 Instance セキュリティグループ(sg-aaaaaaa) Inbound Outbound TCP 443番ポート 192.168.2.0/24

    TCP 443番ポート sg-bbbbbb Any 0.0.0.0/0 送信元IPアドレスが192.168.2.0/24のネットワークに含まれる か、sg-bbbbbbのセキュリティグループを保有しているインス タンスからのTCP 443番ポートへの通信であれば受信を許可し ます 送信先IPアドレス、プロトコルともに制限されてないので どこにでもパケットの送信は許可されます
  50. 50

  51. 51 VPCのネットワークACLとセキュリティグループってどう違うの︖

  52. セキュリティグループとネットワークACLの違い 52 セキュリティグループ VPC内インスタンス ネットワークACL 付与単位 ステート ステートフル パケットの戻りを意識する必要なし VPCサブネット

    ステートレス パケットの戻りを意識する必要あり Allow(許可)のみ ルール記述 Allow/Deny(許可/拒否)両⽅
  53. EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 53 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
  54. インスタンスプロファイル インスタンスが他のAWSサービスに対して何をできるかをIAMロールを介して定 義 54 Instance インスタンスプロファイル Role 他のAWSサービス(S3など) 他のAWSサービス(S3など) 他のAWSサービス(S3など)

    他のAWSサービス(S3など) 他のAWSサービス(S3など) OK/NG
  55. EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 55 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
  56. アクセス⽅法 EC2インスタンスにログインする⽅法としては、 (Linuxの場合は)sshとSystems ManagerのSession Managerが存在します。 どちらを選択するかで必要な要件が変わります。 56 SSH Session Manager

    インスタンス要件 セキュリティグループで SSHアクセスが許可されていること インスタンスプロファイルで Session Managerの必要権限が 与えられていること OS内要件 sshdが動作していること SSMエージェントが動作していること ユーザサイド要件 • SSHクライアントが導⼊されていること、 またはブラウザを導⼊していること(条件付) • インスタンスに設定したキーペアの秘密鍵 を保有していること • ブラウザが導⼊されていること、または AWS CLIにSession Managerプラグイン を導⼊済みであること • IAM権限としてSession Manager を利⽤できること ネットワーク要件 SSHクライアントとインスタンスの間で SSHのパケット通信が⾏えること インスタンスとSession Managerの エンドポイントで通信が可能であること
  57. アクセス⽅法 EC2インスタンスにログインする⽅法としては、 (Linuxの場合は)sshとSystems ManagerのSession Managerが存在します。 どちらを選択するかで必要な要件が変わります。 57 SSH Session Manager

    インスタンス要件 セキュリティグループで SSHアクセスが許可されていること インスタンスプロファイルで Session Managerの必要権限が 与えられていること OS内要件 sshdが動作していること SSMエージェントが動作していること ユーザサイド要件 • SSHクライアントが導⼊されていること、 またはブラウザを導⼊していること(条件付) • インスタンスに設定したキーペアの秘密鍵 を保有していること • ブラウザが導⼊されていること、または AWS CLIにSession Managerプラグイン を導⼊済みであること • IAM権限としてSession Manager を利⽤できること ネットワーク要件 SSHクライアントとインスタンスの間で SSHのパケット通信が⾏えること インスタンスとSession Managerの エンドポイントで通信が可能であること
  58. (補⾜)キーペア EC2インスタンスにSSHアクセスする際の秘密鍵と公開鍵のセット • AWS側では公開鍵のみを保管 • 秘密鍵はユーザ側で管理 • AWS側で秘密鍵と公開鍵を作成して秘密鍵をユーザ側で保管するパターンと、 公開鍵をユーザがAWSにアップロードするパターンの2通りが選択可能 58

    ただし、Systems ManagerのSession Managerを利⽤することでキーペアではなく、 IAM(後述)をもちいてEC2インスタンスにアクセスすることも可能なため、 キーペアの管理コストとSession Managerを設定維持する⼿間のバランスを考える。
  59. EC2のまとめ • EC2はAWSにおける仮想マシンの提供サービスです • ワークロードに応じて様々な種類のインスタンスタイプを選択できます • 利⽤傾向に応じた購⼊⽅法を選択することでコストを⼤幅に削減できます • 要件に合わせて仮想マシンとしての割当リソース構成、 OSの種類からアクセス⽅法まで幅広いカスタマイズが可能です

    59
  60. コンピューティング向けストレージ Amazon EBS 60

  61. Amazon EBS(Elastic Block Store) EC2で⼀般的にマウント可能なAWSのストレージサービスは4つ存在します 1. EBS Ÿ AWSの提供するフロックストレージサービス Ÿ

    ネットワークストレージです 2. インスタンスストア Ÿ 仮想化ホストの内蔵ディスク Ÿ インスタンスを停⽌すると内容は消える(=揮発性) Ÿ ⼀時ファイルなどの置き場として活⽤ 3. EFS(Elastic File System) Ÿ NFSのマネージドサービス 4. FSx for Windows File Server Ÿ (Linuxから⾒ると)SMBを使った共有ストレージサービス 61
  62. Amazon EBSの概要 • EC2インスタンスに接続して利⽤するブロックストレージサービス • 99.999%の可⽤性 • スナップショットによるS3へのバックアップ機能やディスク暗号化機能を提供 • さらに、AWS

    Backupと組み合わせてスナップショットによるバックアップ管理を統合的に実施することも可能 • ⽤途に合わせた様々なタイプのボリュームを提供 62
  63. EBSのボリュームタイプ EBSは⽤途に応じた様々なボリュームタイプを提供しています。 • SSD-backed volume: SSDを使ったボリューム • 汎⽤SSD(gp, General Purpose)

    • デフォルトのタイプ、現⾏はgp2、2020年12⽉にgp3が発表されており、 今後は基本的にgp3を利⽤すること推奨です • プロビジョンドIOPS SSD(io) • 最⼤IOPSを指定可能なSSD,⾼いIOPS性能が求められる場合に利⽤します • HDD-backed volume: HDDを使ったボリューム • スループット最適化HDD(st1) • スループット特化のHDDストレージ、ビッグデータ処理などで利⽤します • コールドHDD(sc1, 保管⽤) • 安価な保管⽤ストレージ、IO性能は最も低い 63 gp3 ストレージ タイプ 世代
  64. EBSの注意点(その1: AZをまたいだボリュームの複製) • EBSは特定のAZ内に作成されるため、そのままでは他AZに持ち出すことはできません。 • スナップショットを介して持ち出す必要があります。 64 Availability Zone ap-northeast-1a

    Availability Zone ap-northeast-1c Availability Zone ap-northeast-1d Region ap-northeast-1(Tokyo) EBS Volume Snapshot EBS Volume (Copied) EBS Volume (Copied) スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
  65. EBSの注意点(その1: AZをまたいだボリュームの複製) • EBSは特定のAZ内に作成されるため、そのままでは他AZに持ち出すことはできません。 • スナップショットを介して持ち出す必要があります。 65 Availability Zone ap-northeast-1a

    Availability Zone ap-northeast-1c Availability Zone ap-northeast-1d Region ap-northeast-1(Tokyo) EBS Volume Snapshot EBS Volume (Copied) EBS Volume (Copied) ① EBSボリュームはAZに紐づくの でそのままでは持ち出せません スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
  66. EBSの注意点(その1: AZをまたいだボリュームの複製) • EBSは特定のAZ内に作成されるため、そのままでは他AZに持ち出すことはできません。 • スナップショットを介して持ち出す必要があります。 66 Availability Zone ap-northeast-1a

    Availability Zone ap-northeast-1c Availability Zone ap-northeast-1d Region ap-northeast-1(Tokyo) EBS Volume Snapshot EBS Volume (Copied) EBS Volume (Copied) ① EBSボリュームはAZに紐づくの でそのままでは持ち出せません ② スナップショットはリージョンに 紐づくのでスナップショットを取得 することで他のAZに持ち出すことが できます スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
  67. EBSの注意点(その1: AZをまたいだボリュームの複製) • EBSは特定のAZ内に作成されるため、そのままでは他AZに持ち出すことはできません。 • スナップショットを介して持ち出す必要があります。 67 Availability Zone ap-northeast-1a

    Availability Zone ap-northeast-1c Availability Zone ap-northeast-1d Region ap-northeast-1(Tokyo) EBS Volume Snapshot EBS Volume (Copied) EBS Volume (Copied) ① EBSボリュームはAZに紐づくの でそのままでは持ち出せません ② スナップショットはリージョンに 紐づくのでスナップショットを取得 することで他のAZに持ち出すことが できます ③ スナップショットからボリューム にリストアすることで他AZにボ リュームのコピーを作成できます スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
  68. EBSの注意点(その2:パフォーマンス上の留意点) EBSを利⽤する際のパフォーマンス上の留意点があります 68 (参考) https://www.slideshare.net/AmazonWebServicesJapan/20190320-aws-black-belt-online-seminar-amazon-ebs の 33〜50スライド⽬ バーストクレジット EBSボリューム以外のボトルネック EBSボリュームの限界を超えるには

  69. 1. バーストクレジット gp2やst1ではバーストの概念が存在し⼀時的に性能を⾼めることができる • 時間に応じてクレジットが蓄積され、クレジットを消費して⼀時的にIO性能を ⾼めることができます • gp2では3000IOPS、st1では250MB/secまで⼀時的に性能を⾼めることができ ます 69

    ただし、gp3および、プロビジョンドIOPS SSD、sc1 にはバーストクレジットの概念は存在しないので注意してください。 gp3はIOPSの最低が3000IOPSと完全にgp2の上位互換です。 (参考) https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-volume-types.html
  70. 2. EBS以外のボトルネック EBS以外にもEC2インスタンス側の性能がボトルネックになる可能性もあります • EC2インスタンスタイプごとの上限 • EC2のインスタンスタイプごとに性能上限が存在 • 上限にぶつかった場合はインスタンスタイプの変更が必要 •

    https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-optimized.html • EBS最適化オプションの有無 • 現⾏世代のEC2インスタンスではデフォルトで有効化されています • 通常のネットワークIOとは別にストレージIO⽤のネットワーク帯域を確保するオプションです 70
  71. 3. EBSの限界を超えるには EBSの単⼀ボリュームの性能限界に達した場合は RAID0などを利⽤して複数ボリュームを束ねることで性能を確保します。 • ただし、インスタンスタイプごとのIO性能上限に注意 • バックアップ取得の際には、複数のEBSボリュームが⼀貫性を保った状態でスナップショットを 取得できなければいけないので注意 •

    Taking crash-consistent snapshots across multiple Amazon EBS volumes on an Amazon EC2 instance(https://aws.amazon.com/jp/blogs/storage/taking-crash-consistent-snapshots-across-multiple-amazon-ebs- volumes-on-an-amazon-ec2-instance/)を参考にスナップショットを取得 71 (参考) https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/raid-config.html
  72. EBSのまとめ • EC2インスタンスで永続化データを保存するためのブロックストレージとして EBSが提供されています。 • EBSのバックアップの取得にはスナップショットを利⽤します。 • ⽤途に応じて様々なボリュームタイプを選択可能です。 • IOパフォーマンスのボトルネックにはEBS起因のみではなく、EC2インスタンス

    に起因する場合もあるので注意が必要です。 72
  73. 参考⽂献まとめ • Kernel-based Virtual Machine • https://ja.wikipedia.org/wiki/Kernel-based_Virtual_Machine • 「Amazon EC2

    インスタンスタイプ」 • https://aws.amazon.com/jp/ec2/instance-types/ • AWS re:Invent 2019: Powering next-gen Amazon EC2: Deep dive into the Nitro system (CMP303-R2) • https://www.youtube.com/watch?v=rUY-00yFlE4 • AWS re:Inforce 2019: Security Benefits of the Nitro Architecture (SEP401-R) • https://www.youtube.com/watch?v=kN9XcFp5vUM • Amazon EC2 スポットインスタンス • https://aws.amazon.com/jp/ec2/spot/ • Amazon EC2 リザーブドインスタンス • https://aws.amazon.com/jp/ec2/pricing/reserved-instances/ • Amazon EC2 インスタンスで実⾏されるアプリケーションに IAM ロールを使⽤してアクセス許可を付与する • https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html • ストレージ • https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/Storage.html • Amazon EBS volume types • https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html • Amazon EBS 最適化インスタンス • https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-optimized.html • 20190305 AWS Black Belt Online Seminar Amazon EC2 • https://www.slideshare.net/AmazonWebServicesJapan/20190305-aws-black-belt-online-seminar-amazon-ec2 • 20200707 AWS Black Belt Online Seminar Amazon EC2 Deep Dive: AWS Graviton2 Arm CPU搭載インスタンス • https://www.slideshare.net/AmazonWebServicesJapan/20200707-aws-black-belt-online-seminar-amazon-ec2-deep-dive-aws-graviton2-arm-cpu • 20190320 AWS Black Belt Online Seminar Amazon EBS • https://www.slideshare.net/AmazonWebServicesJapan/20190320-aws-black-belt-online-seminar-amazon-ebs • Amazon EC2 Performance Deep Dive • https://pages.awscloud.com/rs/112-TZM-766/images/B1-06.pdf 73