Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS研修 コンピューティング(EC2)とコンピューティング向けストレージ(EBS)入門
Search
Recruit
PRO
August 17, 2021
Technology
2
9.7k
AWS研修 コンピューティング(EC2)とコンピューティング向けストレージ(EBS)入門
2021年度リクルート エンジニアコース新人研修の講義資料です
Recruit
PRO
August 17, 2021
Tweet
Share
More Decks by Recruit
See All by Recruit
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
74
VPC Traffic Mirroring とOSS を利⽤した ネットワークフォレンジック基盤の構築・運⽤
recruitengineers
PRO
1
44
スタサプ ForSCHOOLアプリのシンプルな設計
recruitengineers
PRO
3
1k
リクルート流データ基盤塾~鶴谷と学ぶ~
recruitengineers
PRO
5
240
『SUUMO』 スマホサイト デザインリニューアルへの挑戦
recruitengineers
PRO
5
340
『リクルートダイレクトスカウト』 のリニューアルから振り返る: ビジョンドリブンの可能性
recruitengineers
PRO
3
310
負債あるモノリスのオブザーバビリティに組織で向き合う
recruitengineers
PRO
9
400
あなたの知らないiOS開発の世界
recruitengineers
PRO
4
330
大規模プロダクトにおける組織作りと技術ポートフォリオマネジメント
recruitengineers
PRO
4
490
Other Decks in Technology
See All in Technology
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
580
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
470
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
140
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
170
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
0
110
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
380
元旅行会社の情シス部員が教えるおすすめなre:Inventへの行き方 / What is the most efficient way to re:Invent
naospon
2
330
TypeScript、上達の瞬間
sadnessojisan
46
13k
Can We Measure Developer Productivity?
ewolff
1
150
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
200
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
GitHub's CSS Performance
jonrohan
1030
460k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Become a Pro
speakerdeck
PRO
25
5k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Statistics for Hackers
jakevdp
796
220k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Adopting Sorbet at Scale
ufuk
73
9.1k
How GitHub (no longer) Works
holman
310
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Unsuck your backbone
ammeep
668
57k
Transcript
コンピューティング(EC2)と コンピューティング向けストレージ(EBS)⼊⾨ 株式会社リクルート クラウドアーキテクトグループ
⽬次 • AWSにおけるコンピュートサービス • EC2のメリット • EC2インスタンスの構築 2
AWSにおけるコンピュートサービス 3
AWSにおけるコンピュートサービス AWSにおけるコンピュートサービスは主に以下です 4 Amazon EC2 AWSにおける仮想マシンの提供サービスです。 Amazon ECSやAmazon EKSの基盤としても動作します。 AWS
Fargate Amazon ECSやAmazon EKSの基盤となるコンテナ向け サーバーレスコンピューティングエンジンです。 AWS Lambda AWSが提供するサーバーレスコンピューティングサービスです。 FaaS(Function as a Service)の形で提供されます
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について解説します
Amazon EC2(Elastic Compute Cloud)とはなにか︖ • 仮想マシン(Virtual Machine, VM)を提供するサービスです • VPC内部で利⽤します※
6 ※ VPCサービスが提供されるまではパブリック空間で動作していました(EC2 Classic) 現在ではEC2 Classicを新規で利⽤することはないためこの前提で⼤丈夫です。
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
EC2のメリット 8
EC2のメリット 9 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作
APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
EC2のメリット 10 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作
APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
代表的なインスタンスタイプ 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 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 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 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スライド目より抜粋 ⽤途に合わせた最適なタイプとサイズを選択するようにしましょう (悩んだら可能な限り実測してみるようにしましょう)
EC2のメリット 15 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作
APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
需要に合わせた利⽤ • 短時間で起動し、秒単位での課⾦なので需要に併せて スケールアウト、スケールインすることでコストメリットを享受しやすいです。 16 これまで EC2を使う場合 過剰にプロビジョニングして余分なコストを⽀払う (or 余分な初期投資を⾏う)
過⼩にプロビジョニングして機会損失を被る 動的にスケールアウト・スケールインさせる ことでコストを最⼩に保つ 凡例 処理能⼒ 処理リクエスト
需要に合わせた利⽤ • 短時間で起動し、秒単位での課⾦なので需要に併せて スケールアウト、スケールインすることでコストメリットを享受しやすいです。 17 これまで EC2を使う場合 過剰にプロビジョニングして余分なコストを⽀払う (or 余分な初期投資を⾏う)
過⼩にプロビジョニングして機会損失を被る 動的にスケールアウト・スケールインさせる ことでコストを最⼩に保つ 凡例 処理能⼒ 処理リクエスト GUIまたはAWS CLIで都度 ⼿動でスケールアウト・イン
需要に合わせた利⽤ • 短時間で起動し、秒単位での課⾦なので需要に併せて スケールアウト、スケールインすることでコストメリットを享受しやすいです。 18 これまで EC2を使う場合 過剰にプロビジョニングして余分なコストを⽀払う (or 余分な初期投資を⾏う)
過⼩にプロビジョニングして機会損失を被る 動的にスケールアウト・スケールインさせる ことでコストを最⼩に保つ 凡例 処理能⼒ 処理リクエスト GUIまたはAWS CLIで都度 ⼿動でスケールアウト・イン AutoScalingなどを利⽤して ⾃動でスケールアウト・イン
EC2のメリット 19 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作
APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
⾼い⾃由度 • OSの管理ユーザー権限(root)を利⽤可能なので、任意のソフトウェアを導⼊す ることが可能です。 • ただし、OSレイヤ以上のレイヤについてはユーザ責任となるので、導⼊した ソフトウェアが原因でOSが起動しなくなった場合などはユーザ主導で対応す る必要があります 20
EC2のメリット 21 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作
APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 22 オンデマンド リザーブド スポット ※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します
柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 23 オンデマンド リザーブド スポット • デフォルト • 秒単位での料⾦課⾦です
※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します
柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 24 オンデマンド リザーブド スポット • デフォルト • 分単位での料⾦課⾦です
• 事前に利⽤期間をコミット することで割引が適⽤され ます • 料⾦を前払いするかなど 各種条件で割引率が変動し ます ※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します
柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 25 オンデマンド リザーブド スポット • デフォルト • 分単位での料⾦課⾦です
• 事前に利⽤期間をコミット することで割引が適⽤され ます • 料⾦を前払いするかなど 各種条件で割引率が変動し ます • AWSの余剰リソースをつ かって仮想マシンを⽴ち上 げます • ⼤幅な料⾦割引が適⽤され ます • 余剰リソースが逼迫した場 合は予告の後、停⽌される ことがあります ※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します
柔軟な課⾦形態 ⽤途に応じて課⾦形態を選択したコストを削減することが可能です 26 オンデマンド リザーブド スポット • デフォルト • 分単位での料⾦課⾦です
• 事前に利⽤期間をコミット することで割引が適⽤され ます • 料⾦を前払いするかなど 各種条件で割引率が変動し ます • AWSの余剰リソースをつ かって仮想マシンを⽴ち上 げます • ⼤幅な料⾦割引が適⽤され ます • 余剰リソースが逼迫した場 合は予告の後、停⽌される ことがあります ※ Savings Plansなどのサービスを利⽤することで賢くコストʼ削減することも可能ですが、本講義では割愛します 数ヶ⽉程度の利⽤の場合に選択 年単位で継続して利⽤する場合に選択 途中で停⽌しても問題ない または処理を再開できるor代替処理が ある場合に選択
EC2のメリット 27 多様なインスタンスタイプ ⽤途別にパフォーマンス特性の異なる仮想マシンを提供しています 需要に合わせた利⽤ 料⾦は秒単位で計算、数分で起動・停⽌が可能なので、 需要に合わせて仮想マシンの利⽤開始と停⽌が可能です ⾼い⾃由度 仮想マシンのOS上ではrootユーザの利⽤が可能です APIをつかった操作
APIを介した操作によって各種作業の効率化・⾃動化が容易です 柔軟な課⾦形態 ⽤途や利⽤機関に応じて様々な課⾦形態を選択可能です
APIをつかった操作 EC2の管理にAWS CLIやTerraform, CloudFormationなどをつかってAPIを操作す ることでコードベースでEC2インスタンスを管理することが可能です 28 AWS CLI Terraform CloudFormation
AWS EC2 API shell スクリプト HCLコード YAML/JSON ファイル
EC2インスタンスの構築 29
EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 30 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ
インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 31 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ
インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
配置先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
配置先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リクエストなどの受付はパブリックサブネッ トに配置したロードバランサ経由が原則)
配置先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
EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 35 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ
インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
代表的なインスタンスタイプ(再掲) 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スライド目より抜粋
EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 37 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ
インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 38 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ
インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します 別途後述
EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 39 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ
インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
AMI(Amazon Machine Image) • AWSにおける仮想マシンイメージのこと • どのOSを利⽤するか(Linuxではどのディストリビューションを利⽤するか)をベースに選定します • ⾃分で作成して利⽤することも可能です 40
Instance AMI アプリケーション バイナリ/コードの動作環境 AMIから仮想マシン (EC2インスタンスを作成) 超基本的な利⽤の仕⽅ 必要なパッケージ・ ランタイムの導⼊ アプリケーションのデプロイ
提供されているAMIの種類 41 パブリック AMI AWSの利⽤者であれば誰でも 利⽤可能なAMI ⾃⼰所有AMI ⾃分で作成したAMI パブリックAMIまたはプライベートAMIをベース に作成します(他にも作成⽅法はありますが他の作
成⽅法は原則社内では利⽤していません) プライベート AMI 組織内などで共有されているAMI 組織によっては事前に構築したAMIを 利⽤することを推奨している場合もあります
提供されているAMIの種類 42 パブリック AMI AWSの利⽤者であれば誰でも 利⽤可能なAMI ⾃⼰所有AMI ⾃分で作成したAMI パブリックAMIまたはプライベートAMIをベース に作成します(他にも作成⽅法はありますが他の作
成⽅法は原則社内では利⽤していません) プライベート AMI 組織内などで共有されているAMI 組織によっては事前に構築したAMIを 利⽤することを推奨している場合もあります AWS公式 AWSの利⽤者であれば誰でも 利⽤可能なAMI マーケット プレイス AWSの利⽤者であれば誰でも 利⽤可能なAMI コミュニティ AWSの利⽤者であれば誰でも 利⽤可能なAMI パブリックAMIの⼩分類
提供されているAMIの種類 43 パブリック AMI AWSの利⽤者であれば誰でも 利⽤可能なAMI ⾃⼰所有AMI ⾃分で作成したAMI パブリックAMIまたはプライベートAMIをベース に作成します(他にも作成⽅法はありますが他の作
成⽅法は原則社内では利⽤していません) プライベート AMI 組織内などで共有されているAMI 組織によっては事前に構築したAMIを 利⽤することを推奨している場合もあります AWS公式 AWSの利⽤者であれば誰でも 利⽤可能なAMI マーケット プレイス AWSの利⽤者であれば誰でも 利⽤可能なAMI コミュニティ AWSの利⽤者であれば誰でも 利⽤可能なAMI パブリックAMIの⼩分類 パブリックAMIは原則AWS公式のものを 第⼀候補とします
提供されているAMIの種類 44 パブリック AMI AWSの利⽤者であれば誰でも 利⽤可能なAMI ⾃⼰所有AMI ⾃分で作成したAMI パブリックAMIまたはプライベートAMIをベース に作成します(他にも作成⽅法はありますが他の作
成⽅法は原則社内では利⽤していません) プライベート AMI 組織内などで共有されているAMI 組織によっては事前に構築したAMIを 利⽤することを推奨している場合もあります AWS公式 AWSの利⽤者であれば誰でも 利⽤可能なAMI マーケット プレイス AWSの利⽤者であれば誰でも 利⽤可能なAMI コミュニティ AWSの利⽤者であれば誰でも 利⽤可能なAMI パブリックAMIの⼩分類 ハンズオンの中で作成します (最もシンプルなEBSスナップショットからの作成です。 CodeBuildやEC2 ImageBuilderは本講義の範囲外です)
EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 45 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ
インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
セキュリティグループ VPC内部のインスタンス間の通信可否を設定するための機能です 46 Instance セキュリティグループ(sg-aaaaaaa) Inbound Outbound TCP 443番ポート 192.168.2.0/24
TCP 443番ポート sg-bbbbbb Any 0.0.0.0/0
セキュリティグループ 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の場合はポート番号も) • 送信元または宛先 のセットで記述します
セキュリティグループ 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番ポートへの通信であれば受信を許可し ます
セキュリティグループ 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
51 VPCのネットワークACLとセキュリティグループってどう違うの︖
セキュリティグループとネットワークACLの違い 52 セキュリティグループ VPC内インスタンス ネットワークACL 付与単位 ステート ステートフル パケットの戻りを意識する必要なし VPCサブネット
ステートレス パケットの戻りを意識する必要あり Allow(許可)のみ ルール記述 Allow/Deny(許可/拒否)両⽅
EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 53 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ
インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
インスタンスプロファイル インスタンスが他のAWSサービスに対して何をできるかをIAMロールを介して定 義 54 Instance インスタンスプロファイル Role 他のAWSサービス(S3など) 他のAWSサービス(S3など) 他のAWSサービス(S3など)
他のAWSサービス(S3など) 他のAWSサービス(S3など) OK/NG
EC2インスタンスの構築 EC2の仮想マシン(インスタンス)を構築する際は以下要素を考える必要があります 55 配置先VPC・サブネット インスタンスタイプ ストレージ セキュリティグループ インスタンスプロファイル アクセス⽅法 仮想マシンイメージ
インスタンスを配置するVPC・サブネットを定めます インスタンスに要求されるパフォーマンス要件に合わせて インスタンスタイプを選択します インスタンスに要求されるパフォーマンス要件に合わせて ストレージのタイプ、容量を選択します どのOSを利⽤したいかに合わせて仮想マシンイメージを選択します 送受信先に応じた通信許可設定を⾏います インスタンスとして利⽤したいAWSサービスの権限を設定します インスタンスにログインして操作する際のアクセス⽅法を考えます 基本的にはSSHかSystems Manager Session Managerを選択します
アクセス⽅法 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の エンドポイントで通信が可能であること
アクセス⽅法 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の エンドポイントで通信が可能であること
(補⾜)キーペア EC2インスタンスにSSHアクセスする際の秘密鍵と公開鍵のセット • AWS側では公開鍵のみを保管 • 秘密鍵はユーザ側で管理 • AWS側で秘密鍵と公開鍵を作成して秘密鍵をユーザ側で保管するパターンと、 公開鍵をユーザがAWSにアップロードするパターンの2通りが選択可能 58
ただし、Systems ManagerのSession Managerを利⽤することでキーペアではなく、 IAM(後述)をもちいてEC2インスタンスにアクセスすることも可能なため、 キーペアの管理コストとSession Managerを設定維持する⼿間のバランスを考える。
EC2のまとめ • EC2はAWSにおける仮想マシンの提供サービスです • ワークロードに応じて様々な種類のインスタンスタイプを選択できます • 利⽤傾向に応じた購⼊⽅法を選択することでコストを⼤幅に削減できます • 要件に合わせて仮想マシンとしての割当リソース構成、 OSの種類からアクセス⽅法まで幅広いカスタマイズが可能です
59
コンピューティング向けストレージ Amazon EBS 60
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
Amazon EBSの概要 • EC2インスタンスに接続して利⽤するブロックストレージサービス • 99.999%の可⽤性 • スナップショットによるS3へのバックアップ機能やディスク暗号化機能を提供 • さらに、AWS
Backupと組み合わせてスナップショットによるバックアップ管理を統合的に実施することも可能 • ⽤途に合わせた様々なタイプのボリュームを提供 62
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 ストレージ タイプ 世代
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) スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
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に紐づくの でそのままでは持ち出せません スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
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に持ち出すことが できます スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
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にボ リュームのコピーを作成できます スナップショットの取得 (バックアップ) スナップショットからボリュームを作成 (リストア)
EBSの注意点(その2:パフォーマンス上の留意点) EBSを利⽤する際のパフォーマンス上の留意点があります 68 (参考) https://www.slideshare.net/AmazonWebServicesJapan/20190320-aws-black-belt-online-seminar-amazon-ebs の 33〜50スライド⽬ バーストクレジット EBSボリューム以外のボトルネック EBSボリュームの限界を超えるには
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
2. EBS以外のボトルネック EBS以外にもEC2インスタンス側の性能がボトルネックになる可能性もあります • EC2インスタンスタイプごとの上限 • EC2のインスタンスタイプごとに性能上限が存在 • 上限にぶつかった場合はインスタンスタイプの変更が必要 •
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-optimized.html • EBS最適化オプションの有無 • 現⾏世代のEC2インスタンスではデフォルトで有効化されています • 通常のネットワークIOとは別にストレージIO⽤のネットワーク帯域を確保するオプションです 70
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
EBSのまとめ • EC2インスタンスで永続化データを保存するためのブロックストレージとして EBSが提供されています。 • EBSのバックアップの取得にはスナップショットを利⽤します。 • ⽤途に応じて様々なボリュームタイプを選択可能です。 • IOパフォーマンスのボトルネックにはEBS起因のみではなく、EC2インスタンス
に起因する場合もあるので注意が必要です。 72
参考⽂献まとめ • 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