EC2+RDSを基本から #cmdevio2017

50
EC2+RDSを基本から Developers.IO 2017 AWS事業部 にしざわ

Transcript of EC2+RDSを基本から #cmdevio2017

EC2+RDSを基本からDevelopers.IO 2017

AWS事業部 にしざわ

フィードバックお願いします︕︕︕

#cmdevio2017

⾃⼰紹介 3

⻄澤 徹訓 • クラスメソッド株式会社 • AWS事業部 • アーキテクトグループ所属 • 2015年8⽉⼊社 • チームREDリーダー • 構築チームリーダー

好きなAWSサービス 4

特集カテゴリー ブログ登場回数AWS-CLI 23EC2 22RDS 17S3 15Directory Service 10Windows 10Database Migration Service 9IAM 8

このセッションのテーマ 5

• 対象 • AWS初⼼者のインフラエンジニア

• テーマとなるAWSサービス • EC2、RDS

• ⽬的 • AWSに少しでも慣れる • オンプレのインフラとの違いを理解する • 設計ポイントやハマりどころを抑える • 今後の学習の⽅向性をつかむ

注意事項 6

• 本セッションでは細かく正確な情報を伝えることよりも、わかりやすく伝えることを優先した為、あえて極端な表現や雑な⾔葉を使っているところがありますが、ご了承ください。

• 正確な情報はAWS公式ページをよくお読みください。

• 質問も⼤歓迎です。時間に余裕があればセッション内で、時間が無ければあとで直接どうぞ。

Amazon EC2 (Elastic Compute Cloud)

Amazon EC2とは︖ 8

• 仮想サーバ • コンピューティングリソースが必要なすべての

AWSサービスの基礎となっている

EC2のスペック 9

• EC2のvCPU数やメモリ割当は⾃由に調節できない • ⽤意された”インスタンスタイプ”から選択して利⽤

EC2インスタンスタイプの歴史 10

https://www.slideshare.net/JulienSIMON5/deep-dive-on-amazon-ec2-instances-march-2017/6

EC2インスタンスタイプの歴史 11

https://aws.amazon.com/jp/blogs/news/ec2-instance-type-update-t2-r4-f1-elastic-gpus-i3-c5/

EC2のインスタンスファミリー 12

https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2017-amazon-ec2/17

EC2のインスタンスタイプ 13

• 最新世代の⽅が安くて⾼性能 • 同⼀世代内でスペックを上げると性能と値段が倍に • インスタンスタイプによってネットワーク性能も変わる • T2で安く開発、本番では使わないこと推奨 • まずはM4で検討 • 様⼦を⾒て、コンピューティング最適(C4)、メモリ最適(R4)に • 特別な⽤途ではそれ以外を

どのように使い始めれば良いのか︖ 14

• ありがちな質問 • OSインストールってどうやるの︖ • コンソール接続ってどうやるの︖ • ISOマウントしてDVDブートって、、、

ちなみにコンソール画⾯の参照は可能ですが 15

OSインストールは不要 16

• OSインストール作業はできない(不要) • 事前に⽤意されたAMI(Amazon Machine Image)の中から選

択して、EC2インスタンスを起動する

AMIの話をする前に 17

https://aws.amazon.com/jp/aws_history/details/

なぜEC2の歴史を知る必要があるのか︖ 18

• 当初の設計思想がわかる • 当然今は変わっていることもたくさんある • 現状はほぼ不要となっているパラメータが存在するが、新規

AWSユーザには何のことかわかりづらい • 知ることで理解が深まり、最適な構成とすることができる

例えば 19

https://aws.amazon.com/jp/aws_history/details/

EC2ができたときには EBSもVPCもなかった︕︕︕

EBS-BackedとInstance Store(S3)-Backed 20

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ComponentsAMIs.html

特徴 Amazon EBS-Backed Amazon Instance Store-Backed

サイズ制限 16 TiB 10 GiB

ルートデバイスボリューム Amazon EBS ボリューム インスタンスストアボリューム

データの永続性 データを残せる データ残せない

停⽌状態 削除も停⽌もできる 削除できるけど停⽌できない

昔はこれ(使わないリソース=削除)しか無かった

ちなみにAWSの考え⽅はこんなところにも 21

• Elastic IPアドレスの利⽤料⾦ • 実⾏中のインスタンスと関連付けられているEIPは無料 • 使われずに確保だけされているEIPは有料

• AWSは、使われているもの以上に、誰にも使われていないものがコストであると考えている︕

EC2-ClassicとEC2-VPC 22

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ComponentsAMIs.html

• EC2-Classic(VPC前) • 他のAWSアカウントと共⽤のプライベートネットワークを利

⽤(他のAWSアカウントが作ったEC2とプライベート通信可) • 専有インスタンス利⽤不可 • Outbound通信制御不可 • IPv6⾮サポート • 最近作ったアカウントでは使えない

PV AMIとHVM AMI 23

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/virtualization_types.html

• 仮想化⽅式 • 準仮想化=PV(Paravirtual) • 完全仮想化=HVM(Hardware-assisted Virtual Machine)

• PV AMIはPV-GRUB(特別なブートローダー)を使⽤して起動 • 以前はPVの⽅が速かったので、PVしか無かった • PVは古いインスタンスタイプ(T1、M1、C1等)でしか使えない • PV on HVMドライバで、HVMの⽅が性能が良くなった • 現在はHVM⼀択で問題なし

EC2の歴史からわかること 24

• コンピューティング環境を従量課⾦で、使いたいときにだけ使う、使わなくなったら捨てる、余ったマシンリソースを安くみんなで使う、というのが当初のコンセプト

• どんどん安く良いマシンが便利に使えるようになっており、EC2も進化を続けている

• とりあえず今はEBS-BackedなHVM AMIをEC2-VPCで利⽤すればOK

利⽤できるOS 25

• 通常は”クイックスタート”から選べば⼗分 • Linux

• Amazon Linux • SUSE Linux • Red Hat Enterprise Linux • Ubuntu Server

• Windows • Windows Server 2016 • Windows Server 2012/R2 • Windows Server 2008/R2 • Windows Server 2003 R2

AMIの種類 26

• 共有AMI • クイックスタートもこの⼀種 • Marketplace(別途ソフトウェア利⽤料が必要) • Community AMI(Amazonが⽤意しているものはこちらに

分類される) • カスタムAMI

• 構築したEC2インスタンスからイメージ作成可能

カスタムAMIの使い⽅ 27

• カスタムAMI • EC2のバックアップとして使う

• AMIはシステムバックアップではない • 起動時に指定するパラメータ(インスタンスタイプ、ネットワー

ク、等)まで確認しておかなければ元には戻らないことに注意 • クローンするイメージとして使う

• Auto Scaling環境の起動設定として利⽤する、等 • Windowsならsysprepを • 他のアカウントと共有、公開することも可能

Amazon Linux 28

• RHELベースのAWS⽤Linux • kernelバージョンが新しい • yum,rpmでパッケージ管理 • upstart(systemdではない) • AWSのサポート • 継続的なセキュリティとメンテナンス • AWS CLI等のAPIツール • 特別な要件が無ければこれを使うのがベスト

その他のLinux 29

• MarketplaceやAMI選択画⾯から検索 • ⼤量のパブリックイメージが公開 • ソフトウェアライセンス費⽤が追加で

かかるものがあるので注意

http://dev.classmethod.jp/cloud/aws/cm-advent-calendar-2015-aws-re-entering-ec2-linux/

Linux OSの初期設定 30

• 選択するディストリビューションによってOS初期設定が異なる • 初回接続ユーザ(ec2-user,ubuntu,centos,root等) • NTP起動設定 • SELinux(RedHat系) • AWS APIツールの導⼊有無 • ディスクパーティション、ファイルシステムサイズ • cloud-init

Linux OSの初期設定での確認ポイント 31

• OSホスト名 • 初回接続ユーザ、sudo設定 • Timezone(デフォルトUTC) • Locale • Firewall(iptables, firewalld) • ディスク、ファイルシステム、マウント • swap(AWSは何もしないので注意) • パッケージ管理、サービス起動設定

cloud-init 32• Amazon Linux等のAmazonが⽤意したディストリビューションには

cloud-initが標準で導⼊されていて、いい感じに初期設定してくれる • Amazonが⽤意したディストリビューションでない場合、初期設定がバ

ラバラなので注意

http://dev.classmethod.jp/cloud/five-confs-of-ec2-linux-sysops/

WindowsのAMI 33

• ⽇本語OSもすべてのリージョンで⽤意されている

• Windowsパッチを毎⽉適⽤してアップデートされる

• 直近2ヵ⽉程度を残して古くなったAMIは⾮公開になる

http://dev.classmethod.jp/cloud/aws/cm-advent-calendar-2015-aws-re-entering-ec2-windows/

Windows OSの初期設定の注意 34

• Windows Server 2016からはEC2 Launch • Windows 2012まではEC2 Config • ただし、2016年11⽉のWindows AMIから、EC2 Configに

SSM Agentも含まれるように • 現在過渡期にあり若⼲混乱中 • (今回は詳細な説明は割愛)

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2-windows-instances.html

EC2 Launch, EC2 Config 35

• 設定してくれる内容はほぼ同じ • 違いはGUIかPowerShellスクリプトセットか

• 壁紙設定 • Administratorパスワード再設定 • RDPホスト証明書⽣成 • パーティション⾃動拡張 • sysprep • などなど

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2launch.html

EC2の正しい使い⽅(まとめ) 36

• EC2はすべてのAWSサービスの基本 • 使いたい時に使いたいだけ使うのが本来の使い⽅ • 公式ドキュメントも充実、調べれば情報はたくさんある • EC2に限らずAWSのほぼ全てはAPIで操作可能 • 新しいものに置き換え可能な状態に

Amazon RDS (Relational Database Service)

Amazon RDSとは︖ 38

• フルマネージドなリレーショナルデータベース • 数クリックすれば10分も要らずにDBを利⽤可能 • スケールアップ/ダウン、ストレージ拡張 • 容易に⾼可⽤な構成に、バックアップも • 対応DBエンジン

• Oracle/Micorsoft SQL Server • MySQL/MariaDB/PostsgreSQL • Aurora(MySQL互換/PostgreSQL互換)

Amazon RDSの特徴 39

https://www.slideshare.net/AmazonWebServicesJapan/20170510awsblackbeltrds/11

数クリックで⾼可⽤な構成に 40

http://dev.classmethod.jp/cloud/aws/cm-advent-calendar-2015-aws-re-entering-rds/

RDSの機能制限 41

• RDSの機能制限との戦い • 管理者権限でログインできない • OSログインできない • DBエンジンごとに⼀部機能に制約がある

RDS for Oracleの制約事項 42

https://www.slideshare.net/AmazonWebServicesJapan/20170510awsblackbeltrds/13

RDSにその機能が本当に必要なのか︖ 43

• 必要なものはプロシージャとして⽤意されている • バックアップやレプリケーションはほぼAWSに任

せることができる • 監視系は今後の機能拡張に期待

• 可能な限りRDSで検討した⽅が幸せになれる • どうしようもないときはEC2でがんばる

オンプレからのデータベース移⾏ 44

http://dev.classmethod.jp/cloud/aws/database-migration-from-on-premise/

DMS/SCTが⾮常に便利 45

https://www.slideshare.net/AmazonWebServicesJapan/rdbmsaws-75043784/17

データベース移⾏の注意 46

• 検証環境を⽤意して試す • プロジェクトのスケジューリング • データ移⾏が正常に⾏われたことを確認する⽅法を決め

ておく • DMS/SCTの制限事項や使い⽅についてドキュメントをよ

く読む

RDSの正しい使い⽅(まとめ) 47

• AWSでRDBMSを使うならRDSファースト • 専任のDB管理者がいなくても、信頼性の⾼いDB運⽤

が可能

今⽇できなかった話 48

• クラウド=エンジニアも利⽤コストから逃げられない • 安く使う技術が必要 • 費⽤に関する知識、コード化/⾃動化 • Reserved Instance/Spot Instance • ライセンス

• ライセンス込みモデルを使って、ソフトウェアも従量課⾦とするのが吉

• クラウド活⽤、柔軟なシステムに

最後に 49

• AWSに移⾏することでエンジニアが元気になった、新しい技術に興味を持つようになった、という声をよく聞きます。

• 私もその⼀⼈です。 • 情報発信/情報交換し、AWS好きが増え、元気になるエン

ジニアが少しでも増えていったら嬉しいです。