EC2+RDSを基本から
Developers.IO 2017
AWS事業部 にしざわ
フィードバックお願いします︕︕︕
#cmdevio2017
⾃⼰紹介 3
⻄澤 徹訓
• クラスメソッド株式会社
• AWS事業部
• アーキテクトグループ所属
• 2015年8⽉⼊社
• チームREDリーダー
• 構築チームリーダー
好きなAWSサービス 4
特集カテゴリー ブログ登場回数
AWS-CLI 23
EC2 22
RDS 17
S3 15
Directory Service 10
Windows 10
Database Migration Service 9
IAM 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好きが増え、元気になるエン
ジニアが少しでも増えていったら嬉しいです。
EC2+RDSを基本から #cmdevio2017

EC2+RDSを基本から #cmdevio2017