18
$ JAWS-UG CLI 俺俺俺俺俺俺俺俺俺 俺俺俺俺俺 体! 俺俺俺俺俺俺俺俺

俺と JAWS-UG と CLI

Embed Size (px)

Citation preview

Page 1: 俺と JAWS-UG と CLI

  $ 俺 と JAWS-UG と CLI

ガチなハンズオンを体験しよう!業務にすぐ使おう!

Page 2: 俺と JAWS-UG と CLI

自己紹介

長尾 太介 (ナガオ ダイスケ)$ echo “ 某製造業で \ > オレ的物理シミュレータ開発・展開 \ > オレ的スパコン環境の導入・お世話 \ > IoT もオレ担当になったり・・・・”$ echo “ twitter: daikumatan”$ echo “EC2(c4.8xlarge), Kinesis, は俺の嫁!”

Page 3: 俺と JAWS-UG と CLI

俺 と AWS CLI のキュンな出会い$ echo “ マネージメントコンソールって・・・・ \ > 自動化できなくね?自由ないよね! \ > デザインよく変わるし手順書のスクショ修正めんどくさくね?”

$ echo “C と シェルしか書けないんすけど〜、あと Fortran(泣)・・・”

$ echo “ そんな俺に! AWS CLI !!” | grep “AWS CLI!!”

AWS CLI !!

Page 4: 俺と JAWS-UG と CLI

AWS CLI (Command Line Interface)

コレ

# 黒い画面に呪文 (API) を唱えて AWS を操作するアレ

$ これを専門的に学ぶ黒魔術ギルドが・・・・ \> JAWS-UG CLI 専門支部 ( ガチのハンズオンが特徴 )

Page 5: 俺と JAWS-UG と CLI

ホモサピエンスが手順書のコマンドをコピペ .. コピペ .. して、なんとか理解しながらも動作確認可能なギリギリの分量をねらった「ど M なハンズオン!」 主催者はド S ?

JAWS-UG CLI ハンズオンに参加して気づいたこと

な私にムチうってくれる 素敵な関係!

M で

Roger Blackwell

Page 6: 俺と JAWS-UG と CLI

AWS CLI は俺の嫁素敵なワンライナーにいつでも会える

JSON に会うのが怖く無くなった!

ハンズオンに参加して得られたもの

# Account ID の取得AWS_ID=`aws iam get-user --query 'User.Arn' --output text | sed 's/^.*:://' | sed 's/:.*$//'` && echo ${AWS_ID}

jq “.Regions[] | .Region | .When_I_Fall_In_Love”

Jsonlint

Page 7: 俺と JAWS-UG と CLI

これでオレもシェル芸( 人 )?

Stephen Brace

Page 8: 俺と JAWS-UG と CLI

$ なによりもステキなことは

実際の業務の役に立ったこと

Page 9: 俺と JAWS-UG と CLI

資料をダイレクトにシェルスクリプト化!

SQSqueue SNStopicCloudWatch alarm

#8 - SNS & SQS 入門#9 -CloudWatch 入門

ハンズオン資料のクオリティー高い!コピペ & 微修正で

本番環境に耐えうるシェルスクリプトを作れた!

# 主要なサービスはすでにハンズオン実施済み!# ハンズオン資料活用で運用屋さんの負担を大幅削減!

### あるあるデザインパターンの適応例 ###

Page 10: 俺と JAWS-UG と CLI

ハンズオン資料はこんな感じ

$ 引数はちゃんと変数化$ 適切な変数名

$ 実行結果がわかる

確認用コマンドも資料の中に多く含まれエラー処理も

入れやすい

$ 現場で使える工夫がいろいろされている!

Page 11: 俺と JAWS-UG と CLI

$ 悪魔と契約!それがスポットインスタンス!

ここで俺の事例!

Page 12: 俺と JAWS-UG と CLI

シェルスクリプトINSTANCE="c4.8xlarge c3.8xlarge”DAYS=7START=`date -u -v-${DAYS}d +"%Y-%m-%dT%H:%M:%S"`END=`date -u +"%Y-%m-%dT%H:%M:%S”`printf "%16s%20s%10s%10s%10s%10s\n" "InstanceType" "AZ" "average" "stdev" "max" "min"for TMP_INS in `echo "${INSTANCE}"`; do for REGION in `aws ec2 describe-regions | jq -r ".Regions[] | .RegionName"`; do export AWS_DEFAULT_REGION=${REGION}; for TMP_AZ in `aws ec2 describe-availability-zones --region ${REGION} | jq -r ".AvailabilityZones[] | .ZoneName"`; do aws ec2 describe-spot-price-history --instance-types ${TMP_INS} --product-description "Linux/UNIX (Amazon VPC)" --start-time ${START} --end-time ${END} --availability-zone ${TMP_AZ} | jq -r '.SpotPriceHistory[] | "\(.Timestamp)\t\(.SpotPrice)"' | sed s/.000Z//g | awk -v instance=${TMP_INS} -v az=${TMP_AZ} 'BEGIN{i=0; sum=0;}{price[i]=$2; sum+=$2; i++;}END{imax = i; if(imax!=0){ave=sum/imax; sumdx=0; max=ave; min=ave; for (i = 0; i < imax; i++) {val = price[i]; dx = val - ave; dx2 = dx * dx; sumdx += dx2; if (val > max) max = val; if (val < min) min = val;} sigma = sqrt(sumdx / imax); printf("%16s%20s%10.3f%10.3f%10.3f%10.3f\n",instance, az, ave, sigma, max, min);} else {printf("%16s%20s%40s\n",instance, az, "--- NO DATA ---");}}'; done done done

Page 13: 俺と JAWS-UG と CLI
Page 14: 俺と JAWS-UG と CLI

インスタンスタイ

プ Availability Zone

平均標準偏差

最大 最小

世界のスポットインスタンス価格と変動の大きさが一瞬にわかる

ここ1週間のスポット価格における

Page 15: 俺と JAWS-UG と CLI

悪魔発見!

Page 16: 俺と JAWS-UG と CLI

つまり $9.6 で一定!

$ AWS CLI でやりたいことを自動化しよう \ > 工夫次第で , 利用コストも抑制できる!> 新たな価値を創出し提案型の攻めの運用を実現しよう

Page 17: 俺と JAWS-UG と CLI

ということで皆さんもおいでやす!

$ JAWS-UG CLI 専門支部

• 短編完結なハンズオン。始めての方も安心 !• お酒飲みながらで OK !• 遅刻早退自由!• 主催者、波田野さんが優しくあなたをフォロー!

Page 18: 俺と JAWS-UG と CLI

宣伝!

6 月 08 日 18:00 - 20:30 JAWS-UG CLI 専門支部 #21 - もくもく会 ( 初心者歓迎 )

6 月 22 日 19:00 - 21:00 JAWS-UG CLI 専門支部 #22 - Kinesis ( 予定 )

Doorkeeper から参加登録してください