Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Avatar for Recruit Recruit
August 17, 2021

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

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

Avatar for Recruit

Recruit

August 17, 2021
Tweet

More Decks by Recruit

Other Decks in Technology

Transcript

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

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

    6 ※ VPCサービスが提供されるまではパブリック空間で動作していました(EC2 Classic) 現在ではEC2 Classicを新規で利⽤することはないためこの前提で⼤丈夫です。
  4. 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
  5. 代表的なインスタンスタイプ 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種類が多いです
  6. 代表的なインスタンスタイプ 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種類が多いです
  7. 代表的なインスタンスタイプ 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スライド目より抜粋
  8. 代表的なインスタンスタイプ 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スライド目より抜粋 ⽤途に合わせた最適なタイプとサイズを選択するようにしましょう (悩んだら可能な限り実測してみるようにしましょう)
  9. 需要に合わせた利⽤ • 短時間で起動し、秒単位での課⾦なので需要に併せて スケールアウト、スケールインすることでコストメリットを享受しやすいです。 17 これまで EC2を使う場合 過剰にプロビジョニングして余分なコストを⽀払う (or 余分な初期投資を⾏う)

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

    過⼩にプロビジョニングして機会損失を被る 動的にスケールアウト・スケールインさせる ことでコストを最⼩に保つ 凡例 処理能⼒ 処理リクエスト GUIまたはAWS CLIで都度 ⼿動でスケールアウト・イン AutoScalingなどを利⽤して ⾃動でスケールアウト・イン
  11. 柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 23 オンデマンド リザーブド スポット • デフォルト • 秒単位での料⾦課⾦です

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

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

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

    • 事前に利⽤期間をコミット することで割引が適⽤され ます • 料⾦を前払いするかなど 各種条件で割引率が変動し ます • AWSの余剰リソースをつ かって仮想マシンを⽴ち上 げます • ⼤幅な料⾦割引が適⽤され ます • 余剰リソースが逼迫した場 合は予告の後、停⽌される ことがあります ※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します 数ヶ⽉程度の利⽤の場合に選択 年単位で継続して利⽤する場合に選択 途中で停⽌しても問題ない または処理を再開できるor代替処理が ある場合に選択
  15. EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 30 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ

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

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

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

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

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

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

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

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

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

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

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

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
  31. セキュリティグループ 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の場合はポート番号も) • 送信元または宛先 のセットで記述します
  32. セキュリティグループ 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番ポートへの通信であれば受信を許可し ます
  33. セキュリティグループ 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アドレス、プロトコルともに制限されてないので どこにでもパケットの送信は許可されます
  34. 50

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

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

    インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
  37. アクセス⽅法 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の エンドポイントで通信が可能であること
  38. アクセス⽅法 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の エンドポイントで通信が可能であること
  39. (補⾜)キーペア EC2インスタンスにSSHアクセスする際の秘密鍵と公開鍵のセット • AWS側では公開鍵のみを保管 • 秘密鍵はユーザ側で管理 • AWS側で秘密鍵と公開鍵を作成して秘密鍵をユーザ側で保管するパターンと、 公開鍵をユーザがAWSにアップロードするパターンの2通りが選択可能 58

    ただし、Systems ManagerのSession Managerを利⽤することでキーペアではなく、 IAM(後述)をもちいてEC2インスタンスにアクセスすることも可能なため、 キーペアの管理コストとSession Managerを設定維持する⼿間のバランスを考える。
  40. 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
  41. Amazon EBSの概要 • EC2インスタンスに接続して利⽤するブロックストレージサービス • 99.999%の可⽤性 • スナップショットによるS3へのバックアップ機能やディスク暗号化機能を提供 • さらに、AWS

    Backupと組み合わせてスナップショットによるバックアップ管理を統合的に実施することも可能 • ⽤途に合わせた様々なタイプのボリュームを提供 62
  42. 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 ストレージ タイプ 世代
  43. 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) スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
  44. 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に紐づくの でそのままでは持ち出せません スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
  45. 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に持ち出すことが できます スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
  46. 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にボ リュームのコピーを作成できます スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
  47. 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
  48. 2. EBS以外のボトルネック EBS以外にもEC2インスタンス側の性能がボトルネックになる可能性もあります • EC2インスタンスタイプごとの上限 • EC2のインスタンスタイプごとに性能上限が存在 • 上限にぶつかった場合はインスタンスタイプの変更が必要 •

    https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-optimized.html • EBS最適化オプションの有無 • 現⾏世代のEC2インスタンスではデフォルトで有効化されています • 通常のネットワークIOとは別にストレージIO⽤のネットワーク帯域を確保するオプションです 70
  49. 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
  50. 参考⽂献まとめ • 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