classmethod.jp
基礎だからこそ改めて知っておく

EC2勘所
AWS勉強会 in 北海道

Developers.IO Meetup 03
1
2014/3/21
クラスメソッド株式会社
佐々木 大輔
classmethod.jp
2
!
!
自己紹介
3
classmethod.jp
4
自己紹介
佐々木 大輔
!
!
!
!
@smokeymonkey
a.k.a. すもけ
!
クラスメソッド株式会社
ソリューションアーキテクト
classmethod.jp
5
classmethod.jp
6
8
9
10
classmethod.jp
11
はじめに
•EC2はAWSの中で最も基本的なリソース
!
•そのEC2上で「安定して」「安全で」「高性能な」実
行環境を提供できるようカスタマイズされているのが
Amazon Linux
!
•お手軽に構築出...
classmethod.jp
12
一番最初にやること
yum update
classmethod.jp
13
タイムゾーンの設定
•Amazon Linux AMIのデフォルトタイムゾーンはUTC
•運用に併せて適切に変更する
•例えば日本のシステムで日本で運用管理するなら日
本時間(JST,UTC+9)にする
•設...
classmethod.jp
14
IAM roleの設定
•アプリケーションからAWSリソースにアクセスするに
はAWS認証情報を持ってAPIリクエストする必要があ
る
•Sample:AWS SDK for Ruby
AWS.config({...
classmethod.jp
15
IAM roleの設定
•IAM role for EC2
•IAM: AWSサービス・リソースへのアクセスコント
ロール基盤
•元々IAMはユーザやグループに割当てるものだった
が、IAMロールによってアプ...
classmethod.jp
16
IAM roleの設定
•設定手順
•(1)IAM DashboardでIAM role for EC2を作る
•(2)EC2起動時にIAM roleを割り当てる。
classmethod.jp
17
IAM roleの設定
•注意!
•IAM roleはEC2 Launch時にしか割り当てられな
い。
•Launchしたあとには割り当てられない!
!
    ___
   /\ /\   _   
 /(...
classmethod.jp
18
バックアップ
•ファイルレベルでのバックアップはオンプレと一緒
•EBS単位のバックアップが取れる!
•EBS Snapshot
•オンプレで言うところのディスクイメージレベル
•リストア
•EBS Snap...
classmethod.jp
19
バックアップ
• ec2-automate-backup
•https://github.com/colinbjohnson/aws-missing-
tools/tree/master/ec2-automa...
classmethod.jp
20
バックアップ
•run ec2-automate-backup to snapshot all EBS
volumes that contain the tag Backup=true"
$ /home/ec...
classmethod.jp
21
swapの設定
•Amazon EC2(Linux)のswap領域ベストプラクティス
•http://dev.classmethod.jp/cloud/ec2linux-
swap-bestpractice/
22
swapの設定
•公式AMIにはswap領域が含まれない
•m1.small、c1.mediumには900MBのスワップ領域が
おまけでついてくる
•EC2インスタンスストアスワップボリューム
•インスタンスタイプに依るので、インスタンス...
classmethod.jp
23
swapの設定
•swap設定でやること
•インスタンスストアを作る
•インスタンスストアにswapファイルを作る
!
•インスタンスストア
•無料で使えるボリューム
•インスタンスをストップするとデータが全...
classmethod.jp
24
swapの設定
•注意!
•インスタンスストアはLaunch時に指定しないと作
られない
•LaunchしたEC2には追加出来ない!
!
    ___
   /\ /\   _   
 /((⃝)(⃝))\...
classmethod.jp
25
swapの設定
•EC2のLaunch時にインスタンスストアを作る。
classmethod.jp
26
swapの設定
•起動時にインスタンスストアにswapファイルを作成し
swaponする。
$ sudo vi /etc/rc.local
!
SWAPFILENAME=/swap.img
MEMSIZE=`...
classmethod.jp
27
IPアドレスの考慮
•EC2のIPアドレスはデフォルトで動的
容易に構築したり廃棄したりできる
=
出来るだけ固定的な要素は
持たせないほうが汎用性が高い
•EC2間の通信をIPアドレス指定以外で行う
•つま...
classmethod.jp
28
IPアドレスの考慮
•aws cli
•http://aws.amazon.com/jp/cli/
•jq (JSON processor)
•http://stedolan.github.io/jq/
$ ...
classmethod.jp
29
まとめ
•クラスメソッドに入社して3ヶ月が経ちました
•ひたすらAWSで設計して構築してリリースして…
•EC2だけでも覚えること、知るべき事がたくさんある
  そだ  ¦------、`͡ー--、
  れが...
AWS勉強会 in 北海道札幌 at smokeymonkey #cmdevio
AWS勉強会 in 北海道札幌 at smokeymonkey #cmdevio
Upcoming SlideShare
Loading in …5
×

AWS勉強会 in 北海道札幌 at smokeymonkey #cmdevio

1,569 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,569
On SlideShare
0
From Embeds
0
Number of Embeds
764
Actions
Shares
0
Downloads
7
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

AWS勉強会 in 北海道札幌 at smokeymonkey #cmdevio

  1. 1. classmethod.jp 基礎だからこそ改めて知っておく
 EC2勘所 AWS勉強会 in 北海道
 Developers.IO Meetup 03 1 2014/3/21 クラスメソッド株式会社 佐々木 大輔
  2. 2. classmethod.jp 2 ! ! 自己紹介
  3. 3. 3
  4. 4. classmethod.jp 4 自己紹介 佐々木 大輔 ! ! ! ! @smokeymonkey a.k.a. すもけ ! クラスメソッド株式会社 ソリューションアーキテクト
  5. 5. classmethod.jp 5
  6. 6. classmethod.jp 6
  7. 7. 8
  8. 8. 9
  9. 9. 10
  10. 10. classmethod.jp 11 はじめに •EC2はAWSの中で最も基本的なリソース ! •そのEC2上で「安定して」「安全で」「高性能な」実 行環境を提供できるようカスタマイズされているのが Amazon Linux ! •お手軽に構築出来るけど、運用も踏まえ適切な手法で 構築するべき ! •今日は「EC2でAmazon LinuxをLaunchするときに考 慮すべき点」を、EC2の勘所としてお伝えします
  11. 11. classmethod.jp 12 一番最初にやること yum update
  12. 12. classmethod.jp 13 タイムゾーンの設定 •Amazon Linux AMIのデフォルトタイムゾーンはUTC •運用に併せて適切に変更する •例えば日本のシステムで日本で運用管理するなら日 本時間(JST,UTC+9)にする •設定方法 $ sudo cp /usr/share/zoneinfo/Japan /etc/localtime
  13. 13. classmethod.jp 14 IAM roleの設定 •アプリケーションからAWSリソースにアクセスするに はAWS認証情報を持ってAPIリクエストする必要があ る •Sample:AWS SDK for Ruby AWS.config({ :access_key_id => 'ACCESS_KEY_ID', :secret_access_key => 'SECRET_ACCESS_KEY', :region => 'us-west-2', }) ! • 認証情報をローカルに持つのはセキュリティからも汎 用性からもいまいち
  14. 14. classmethod.jp 15 IAM roleの設定 •IAM role for EC2 •IAM: AWSサービス・リソースへのアクセスコント ロール基盤 •元々IAMはユーザやグループに割当てるものだった が、IAMロールによってアプリケーションやEC2の ようなAWSサービスに対してアクセス権限を割り当 てることが出来るようになった ! •IAM roleをEC2に割り当てることでローカルにセキュ リティ情報を持たなくて良い!
  15. 15. classmethod.jp 16 IAM roleの設定 •設定手順 •(1)IAM DashboardでIAM role for EC2を作る •(2)EC2起動時にIAM roleを割り当てる。
  16. 16. classmethod.jp 17 IAM roleの設定 •注意! •IAM roleはEC2 Launch時にしか割り当てられな い。 •Launchしたあとには割り当てられない! !     ___    /\ /\   _     /((⃝)(⃝))\  /   マジで!?  ¦ ゚ (__人__) ゚  ¦  \  \   ¦r┬、¦  /   ̄   /   `́͡ ヽ ! 割当て忘れていて   あとで気づいて   ショックを受けることも   多々あります… 補⾜足:割り当てさえしておけば、後から roleが持つ権限の内容を変更更することは出 来ます。とりあえず割り当てておこう!
  17. 17. classmethod.jp 18 バックアップ •ファイルレベルでのバックアップはオンプレと一緒 •EBS単位のバックアップが取れる! •EBS Snapshot •オンプレで言うところのディスクイメージレベル •リストア •EBS SnapshotからEBS Volumeを作成 •ファイル単位 … 作成したEBS Volumeをマウント してファイルを取り出す •イメージレベル … 障害のあるEBSを取り外して変 わりに作成したEBS Volumeをマウント
  18. 18. classmethod.jp 19 バックアップ • ec2-automate-backup •https://github.com/colinbjohnson/aws-missing- tools/tree/master/ec2-automate-backup ec2-automate-backup was created to provide easy backup/snapshot functionality for multiple EC2 EBS volumes.
  19. 19. classmethod.jp 20 バックアップ •run ec2-automate-backup to snapshot all EBS volumes that contain the tag Backup=true" $ /home/ec2-user/ec2-automate-backup.sh -s tag -t "Backup=true" • バックアップ取得対象のEBSにTagを付けておく • あとはcronで回しておけばおk
  20. 20. classmethod.jp 21 swapの設定 •Amazon EC2(Linux)のswap領域ベストプラクティス •http://dev.classmethod.jp/cloud/ec2linux- swap-bestpractice/
  21. 21. 22 swapの設定 •公式AMIにはswap領域が含まれない •m1.small、c1.mediumには900MBのスワップ領域が おまけでついてくる •EC2インスタンスストアスワップボリューム •インスタンスタイプに依るので、インスタンスタイ プを変更すると使えなくなってしまう。頼るのはリ スキー •swap領域は手作業で追加しておくのがベター •swap領域には、インスタンスストア(別名 Ephemeral Disk)を使うべし
  22. 22. classmethod.jp 23 swapの設定 •swap設定でやること •インスタンスストアを作る •インスタンスストアにswapファイルを作る ! •インスタンスストア •無料で使えるボリューム •インスタンスをストップするとデータが全部消える •インスタンスタイプによってサイズが決まっている
  23. 23. classmethod.jp 24 swapの設定 •注意! •インスタンスストアはLaunch時に指定しないと作 られない •LaunchしたEC2には追加出来ない! !     ___    /\ /\   _     /((⃝)(⃝))\  /   マジで!?  ¦ ゚ (__人__) ゚  ¦  \  \   ¦r┬、¦  /   ̄   /   `́͡ ヽ ! 割当て忘れていて   あとで気づいて   ショックを受けることも   多々あります…
  24. 24. classmethod.jp 25 swapの設定 •EC2のLaunch時にインスタンスストアを作る。
  25. 25. classmethod.jp 26 swapの設定 •起動時にインスタンスストアにswapファイルを作成し swaponする。 $ sudo vi /etc/rc.local ! SWAPFILENAME=/swap.img MEMSIZE=`cat /proc/meminfo ¦ grep MemTotal ¦ awk '{print $2}'` if [ $MEMSIZE -lt 2097152 ]; then SIZE=${((MEMSIZE * 2))}k elif [ $MEMSIZE -lt 8388608 ]; then SIZE=${MEMSIZE}k elif [ $MEMSIZE -lt 67108864 ]; then SIZE=${((MEMSIZE / 2))}k else SIZE=4194304k fi fallocate -l $SIZE $SWAPFILENAME && mkswap $SWAPFILENAME && swapon $SWAPFILENAME
  26. 26. classmethod.jp 27 IPアドレスの考慮 •EC2のIPアドレスはデフォルトで動的 容易に構築したり廃棄したりできる = 出来るだけ固定的な要素は 持たせないほうが汎用性が高い •EC2間の通信をIPアドレス指定以外で行う •つまり、どうやってEC2を特定するか •Tagが簡単
  27. 27. classmethod.jp 28 IPアドレスの考慮 •aws cli •http://aws.amazon.com/jp/cli/ •jq (JSON processor) •http://stedolan.github.io/jq/ $ aws ec2 describe-instances --filters Name=tag-value,Values="web" | jq '.Reservations[].Instances[] | {PrivateIpAddress}’ ! { "PrivateIpAddress": "172.31.4.218" }
  28. 28. classmethod.jp 29 まとめ •クラスメソッドに入社して3ヶ月が経ちました •ひたすらAWSで設計して構築してリリースして… •EC2だけでも覚えること、知るべき事がたくさんある   そだ  ¦------、`͡ー--、   れが  ¦ハ{{ }} )))ヽ、l l ハ   が   ¦、{ ハリノノノノノノ)、 l l   い   ¦ヽヽー、彡彡ノノノ}  に   い   ¦ヾヾヾヾヾヽ彡彡}  や   !!    /:.:.:.ヾヾヾヾヽ彡彡} l っ \__/{ l ii ¦ l¦} ハ、ヾ} ミ彡ト 彡シ ,ェ、、、ヾ{{ヽ} l¦l ィェ=リ、シ} ¦l lミ{ ゙イシモ'テ、ミヽ}シィ=ラ'ァ、 }ミ}} l ヾミ    ̄ 'ィ''': ¦゙:ー. ̄   lノ/l ¦ ¦ ヾヾ   "  : : !、  `  lイノ l¦ ¦  >l゙、    ー、,'ソ     /.¦}、 l¦ ¦ :.lヽ ヽ   ー_ ---ァ'  /::ノl ト、 :.:.:.:\ヽ     二"  /::// /:.:.l:.:. :.:.:.:.:.::ヽ:\     /::://:.:,':.:..:l:.:. ;.;.;.;.;;.:.:.:.\`ー-- '" //:.:.:;l:.:.:.:l:.: クラスメソッド株式会社 北海道札幌市リージョンは 仲間を募集しています!

×