サバカン屋のサバ缶はRe:inventで通用し
たのか&すぐに使える!最新運用ネタ
2
自己紹介
• 星 幸平/ Hoshi Kohei
• 株式会社スカイアーチネットワークス
• インフラエンジニア
• 好きなAWSサービス
IAM、CloudFormation、AWS CLI
• 最近のハマり事
ゴルフ(コース未デビュー)テニス
ポケゴー(赤28)、油そば
3
どんな会社?
サバカン屋
(サーバー管理)
大阪
NY
大連
東京サバ缶活動
4
普段の業務風景
サーバー購入
サーバー構築 サーバー運用
5
ラスベガス用のサバ缶つくりました
【オリジナル】
サーバー屋のサバ缶
【トレンドマイクロコラ
ボ】
サーバーを守る会社のサバ
缶
【ラスベガス限定】
サーバー屋のラスベガス
缶!!
6
300缶作りました
7
出展しました
8
余る
9
現地でお茶漬け会開催しました
10
そろそろ本題
すぐに使える!最新運用実践ネタ
11
AWS Personal Health Dashboardとは
• AWSサービスのイベント情報を収集サービス
• メンテナンスイベントや障害情報
• 必要なサービスの情報だけを確認できる
• CloudWatch Eventsと連携してイベントの通知
12
これまでのメンテナンスイベント管理
• 各サービス毎に用意されたAPI、CLI経由で監視
• サービス毎に確認方法と出力情報が異なる
• 利用サービス毎に仕組みを作る必要があって大変・・・
• 登録メールアドレスに飛んでくるイベントメール
• メールの対応範囲がそもそもよくわからない
• そもそもメールでの連絡はベストエフォート扱いでどこまで信用し
ていいのかわからない
• AWS Personal Health Dashboardでイベント管理が楽になりました
13
メンテナンスイベントをダッシュボードで確認 イベントがある場
合はベルの横に●
が表示される
14
ダッシュボード上で詳細情報も確認可能
15
CloudWatch Eventsと連携してイベントをSNS通知
16
AWS Personal Health Dashboardの運用ネタ
• メンテナンス情報をメールだけでなくSlack等のツールに通知させる
• EC2リタイヤ時、自動的にEC2を停止してリタイヤ対応を自動化
• Zabbixなどの監視ツールと連携
等、活かす場面はとても多いです(要検証)
17
まずはこれだけはやっておけ!
• マネージメントコンソールでまずは触ってみる
• 利用サービスのイベント情報を一括で簡単にマネジメントコンソー
ル上で確認できるようになっている
• これだけでも結構使い勝手が良い。運用上、問題が発生したら見る
癖をつけると良いかも
• SNS通知機能を使ってみる
• 全イベントを受け取ってみて使用感を確認
• または、利用サービスのみに絞っても良い
• 環境、構成に適した活用方法を模索する
18
AWS CLI 最新アップデート情報
19
AWS CLIつかっていますか?
• いわゆる黒い画面に文字だけのインターフェースです
• マネジメントコンソールとほぼ同等の操作が可能
20
AWS CLIは運用向き?
• 作業のログを取得可能
• 操作コマンド、出力結果等
• 実行結果が出力されるので問題が発生しても切り戻し可能
• 決められた運用のルーチンワークシェルスクリプト化して自動化
などなど・・・
CLI操作に不向きなサービスもありますが、運用上の利点が多い
(CLI一択ではなく、マネコンとの共存が必要不可欠)
21
AWS CLIセッションの様子
22
AWS CLIを最新版にしましょう(お約束)
[ec2-user@ip-10-0-0-242 ~]$ aws --version
aws-cli/1.11.17 Python/2.7.10 Linux/4.1.17-22.30.amzn1.x86_64 botocore/1.4.74
[ec2-user@ip-10-0-0-242 ~]$
[ec2-user@ip-10-0-0-242 ~]$ sudo pip install -U awscli
[ec2-user@ip-10-0-0-242 ~]$
23
--generate-cli-skelton outputで変数の活用
• コマンドの実行結果サンプルをJSONデータとして出力します(コマンド
自体は実行されない)
[ec2-user@ip-10-0-0-242 ~]$ aws ec2 create-vpc --cidr-block 10.0.0.0/16 --generate-cli-skeleton output
{
"Vpc": {
"VpcId": "VpcId",
"State": "State",
"CidrBlock": "CidrBlock",
~~~~ 省略
}
}
[ec2-user@ip-10-0-0-242 ~]$
24
--generate-cli-skelton outputで変数の活用
[ec2-user@ip-10-0-0-242 ~]$ vpcid=$(aws ec2 create-vpc --cidr-block 10.0.0.0/16 --generate-cli-skeleton
output --query Vpc.VpcId --output text)
[ec2-user@ip-10-0-0-242 ~]$ echo $vpcid
VpcId
[ec2-user@ip-10-0-0-242 ~]$
作成するVpcのVpcidを抽出して変数に格納するコマンドをテスト
25
--generate-cli-skelton outputで変数の活用
[ec2-user@ip-10-0-0-242 ~]$ vpcid=$(aws ec2 create-vpc --cidr-block 10.0.0.0/16 --query Vpc.VpcId --output
text)
[ec2-user@ip-10-0-0-242 ~]$ echo $vpcid
vpc-cd77a1a9
[ec2-user@ip-10-0-0-242 ~]$
--generate-cli-skelton outputオプションを外してVPCを作成
VPCIDを変数$vpcidに格納
26
--generate-cli-skelton outputの活用
• コマンドは実際に実行されず、実行後のJSONの出力結果サンプルを返し
てくれる
• コマンドのドライラン、実行コマンドのテストに役立つ
• 出力結果を効率的に変数に格納しながら作業
• 作業内容を簡単にスクリプト化できる
• Historyから簡単に作れます
• 例:history 20 | cut -c 8- > command.sh
27
history
[ec2-user@ip-10-0-0-242 ~]$ history 20 | cut -c 8-
vpcid=$(aws ec2 create-vpc --cidr-block 10.0.0.0/16 --query Vpc.VpcId --output text)
echo $vpcid
aws ec2 create-subnet --cidr-block 10.0.0.0/24 --vpc-id $vpcid --generate-cli-skeleton output --query Subnet.SubnetId
aws ec2 create-subnet --cidr-block 10.0.0.0/24 --vpc-id $vpcid --generate-cli-skeleton output --query Subnet.SubnetId --
output text
subnetid=$(aws ec2 create-subnet --cidr-block 10.0.0.0/24 --vpc-id $vpcid --generate-cli-skeleton output --query
Subnet.SubnetId --output text)
echo $subnetid
subnetid=$(aws ec2 create-subnet --cidr-block 10.0.0.0/24 --vpc-id $vpcid --query Subnet.SubnetId --output text)
echo $subnetid
history 20 | cut -c 8-
[ec2-user@ip-10-0-0-242 ~]
28
--debugオプションの活用
詳細なデバック情報を表示
[ec2-user@ip-10-0-0-242 ~]$ aws ec2 create-vpc --cidr-block 10.0.0.0/16 --debug 2>&1
2016-12-06 10:19:20,697 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.11.25 Python/2.7.10
Linux/4.1.17-22.30.amzn1.x86_64 botocore/1.4.82
2016-12-06 10:19:20,697 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['ec2', 'create-
vpc', '--cidr-block', '10.0.0.0/16', '--debug']
2016-12-06 10:19:20,697 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler
<function add_scalar_parsers at 0x7fa5f30d25f0>
略
An error occurred (VpcLimitExceeded) when calling the CreateVpc operation: The maximum number of VPCs
has been reached.
[ec2-user@ip-10-0-0-242 ~]$
29
--debugオプションの活用
• より詳細なデバック情報を表示
• データが多いのでless等に渡すと良い
• 構文エラーの場合、デフォルトでエラー表示されるのであまり出番がな
いかも
• 困ったらとりあえず—debugで情報を確認する
• ステータスコードやエラーコードを確認する
• AWSサポートへの問い合わせに役立つ(かも)
30
aliasの活用
AWS CLIでエイリアス機能を利用可能
aws sts get-caller-identityコマンドのエイリアスファイルを作成
[ec2-user@ip-10-0-0-242 .aws]$ more ~/.aws/cli/alias
[toplevel]
whoami = sts get-caller-identity
[ec2-user@ip-10-0-0-242 .aws]$
31
aliasの活用
[ec2-user@ip-10-0-0-242 .aws]$ aws whoami
{
"Account": "972651055327",
"UserId": "AIDAILNL7FVK4CSMCPUEO",
"Arn": "arn:aws:iam::972651055327:user/hoshi"
}
[ec2-user@ip-10-0-0-242 .aws]$
[ec2-user@ip-10-0-0-242 .aws]$ aws sts get-caller-identity
{
"Account": "972651055327",
"UserId": "AIDAILNL7FVK4CSMCPUEO",
"Arn": "arn:aws:iam::972651055327:user/hoshi"
}
[ec2-user@ip-10-0-0-242 .aws]$
32
aliasの活用
• Linuxにもあるエイリアスと似たような機能
• オプションの指定、実行時に指定させる等応用の幅は広い
• 設定ファイルを参考にまずは使ってみる
• https://github.com/awslabs/awscli-aliases/blob/master/alias
• 運用の場面では運用方法を考慮する必要はある
• 秘伝のalias、俺だけの専用aliasにならないように!
33
CLIパフォーマンス関連
• 大きいデータは時間の掛かる処理はサーバーサイドで処理させる
• 例:--queryオプションはクライアントサイド、--filterはサーバサイド
処理
• 似たようなオプションだが、扱うデータの大きさを意識して使い分
ける
• S3のパフォーマンス調整
• ~/.aws/configファイルに記載して調整可能
[[default]
s3 =
max_concurrent_requests = 20
multipart_chunksize = 16MB
multipart_threshold = 64MB
max_queue_size = 10000
34
これだけはやっておけ!
• AWS CLIを最新版にアップデートしてとりあえず触ってみよう
• --generate-cli-skelton outputで変数の格納を意識して作業
• 作業後のシェルスクリプト化がとても容易になる
• エラーで困ったらとりあえず—debugオプション
• よく使うコマンド、オプションはaliasに登録
• 運用面を考慮すること!
35
AWS CLIに興味がわいた&さらに極めたいあなたへ
36
まとめ
• サバカンのダジャレはラスベガスでは通用しなかった
• サバ缶、完売せず!w
• お茶漬け会は好評でした(和食が恋しくなる)
• サバ缶は重い
• サバ缶は機内持ち込みできない。その場で食べるか諦める。
37
coming soon….
ご清聴ありがとうございました。

サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016

Editor's Notes

  • #3 まず自己紹介ですが、スカイアーチネットワークスの星と申します。 インフラをメインに担当エンジニア 好きなAWSサービスはIAM、CloudFormation、AWS CLIです 最近のハマり事はゴルフ、テニス、ポケゴーと油そばです アメリカといえば
  • #35 CLIのまとめです