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
Azure Functions HTTPトリガーにおけるタイムアウトでハマったこと
recruitengineers
PRO
2
150
実務につなげる数理最適化
recruitengineers
PRO
6
690
うちにも入れたいDatadog
recruitengineers
PRO
2
380
リクルートのデータ基盤 Crois 年3倍成長!1日40,000コンテナの実行を支える AWS 活用とプラットフォームエンジニアリング
recruitengineers
PRO
2
330
Splunk Enterpriseで S3のデータを直接検索してみた!
recruitengineers
PRO
2
150
Looker APIを使い倒す ユーザーフィードバックを基にした継続的改善サイクル
recruitengineers
PRO
3
57
Kaggleふりかえり会〜LLM 20 Questions & ISIC 2024
recruitengineers
PRO
2
230
Balancing Revenue Goals and Off-Policy Evaluation Performance in Coupon Allocation
recruitengineers
PRO
2
51
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
390
Other Decks in Technology
See All in Technology
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
300
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
530
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
160
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
150
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
370
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
550
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
How STYLIGHT went responsive
nonsquared
95
5.2k
The Cost Of JavaScript in 2023
addyosmani
45
7k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
RailsConf 2023
tenderlove
29
940
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
What's in a price? How to price your products and services
michaelherold
243
12k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
Statistics for Hackers
jakevdp
796
220k
GraphQLとの向き合い方2022年版
quramy
44
13k
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