AWS クラウドサービス活用資料集 Route53編で知らなかったことメモ
EC2, ELB編に続いてRoute53編です。
yamano3201.hatenablog.jp
yamano3201.hatenablog.jp
Route53編資料
SLA
サービスレベルアグリーメント - Amazon Route 53 | AWS
- SLA 100%(すごい。。)
- 使用可能時間割合が出なかった場合は払い戻しがあるようです。
- ↓の表からは5分から払い戻しが発生するものと読み取れます。
パブリックホストゾーン/プライベートホストゾーン
- 特にコメントなし
ALIASレコード
- Route53固有のレコード
- 変動する可能性のあるレコードに対してCNAMEではなくAレコードで返すことでレスポンスが高速になります
- S3, CloudFront, ELB, ホストゾーン内のリソースレコードセット?で使用可能
トラフィックルーティング
- ポリシーベースでのルーティングが可能
- Simple, Weighted, Latency, Failover, Geolocationがあります
- Weightedの重みは0-255で指定可能です。
- 0を指定すればルーティングが無効になります。
- 全て0にした場合は、等しい確率でルーティングされます
- Failoverで障害時のsorryページを指定しておけば自前でリダイレクトを実装しなくてもよくなります
- リダイレクトするやつが死ぬことがなくなるのは良いですね
トラフィックフロー
- 使わなくてもルーティング自体は実現可能なので複雑でなければ不要
- ルール作成が簡単でビジュアル的にもわかりやすくなります
【Black Belt】AWS Identity and Access Management (IAM) Confirmation 参加ログ
2016/9/21開催の [Black Belt] AWS Identity and Access Management (IAM) Confirmation に参加しました。
Black Beltに初めて参加しましたが、オンラインで参加できるので移動がなくて良いですね。
質問も読み上げられました(^^)
資料は公開されたら添付します。
2016/10/17 遅くなりましたが、添付しました。
以下、メモの箇条書き。
メモ
AWS rootアカウント
- AWS rootアカウントは極力利用しない
- 侵入テストのリクエストとかで使う
- 侵入テストのリクエスト専用の権限を作ってほしい。そもそも3ヶ月に1回全環境に定期検査が入るのでリクエストがめんどい。となりのグループのお偉いさんに毎回依頼するのめんどい
IAMで使用する認証情報(アクセスキー/シークレットキー)
- AMIの中へは埋め込まない
MFA
- 手持ちデバイスを使った二段階認証の仕組み
- そこまでの要求はまだないかな
- SMS MFAはまだプレビュー
Credential Report
- これを使って認証情報のローテーションを確認することができる
- 定期的なローテーションとか実際やると大変そう
インラインポリシー
- 従来通り、ユーザ/グループに紐付いたポリシー
リソースベースのポリシー
- AWSアカウントを越したアクセス許可を書くことができる
作成支援ツール
- AWS Policy Generator
- IAM Policy Simulator
ユーザのアクティビティの記録
- AWS CloudTrail を使用する
Access Advisor&Service Last Accessed
- 最後にAWSサービスにアクセスした日付と時刻を表示する機能
- ユーザーやグループ、ロールに与えられた権限で利用されていないものを発見。利用状況がわかる
AWS ConfigのIAMサポート
- IAMの変更履歴を管理することができる
IAMロール
- アプリケーション(EC2など)に付与する
- 認証情報が漏洩するリスクがなくなる
- ネットワークのせいで認証に失敗することが極稀にあるのでリトライ処理をしておく必要がある(体験談)
- 下のQAでも書いたけど、アプリからのみアクセスを許可する場合はAssumeロールを検討する必要がある
Q&A
質問読まれた
— 山野 健太 (@yamano3201) September 21, 2016
Q.S3アクセス可のIAMロールをEC2に付けると、EC2にログインできる人は誰でもアクセスできてしまいます。アプリだけがアクセスできる方法はありますか?
A.Assumeロールをアプリから使うことでより多くのコントロールを得れるのでは。 #awsblackbelt
最後に
今後もできるだけ参加します。
AWS クラウドサービス活用資料集 ELB編で知らなかったことメモ
EC2編に続いてELB編です。
yamano3201.hatenablog.jp
www.slideshare.net
知らなかったことをメモしました。
ELB自体もスケーラブル
- ELBインスタンスの数や性能が変化します。
- ELBのスケーリングが間に合わない場合は503を返します
- Business / Enterpriseサポートをしている場合はPre-Warming申請を行うことで対応できる
クロスゾーン負荷分散
- デフォルト有効で、有効であればAZをまたいでバックエンドのインスタンスに振り分けます。
- このときAZ間遅延があることを考慮する必要がある
Internet-Facing ELB / Internal ELB
スティッキーセッションの有効期間
- アプリケーション制御の場合は、アプリケーションが作成したCookieに合わせる
- ロードバランサ制御の場合は、指定した有効期間に合わせる
- アプリケーション制御できるの知らなかった。
Route 53 DNSファイルオーバ対応
- Route 53のヘルスチェック機能とELBが連携することで障害時にSorryページへ誘導することが可能
- 別の仕組みでsorryページを出していた。。
最後に
ALBを使えばパスベースのルーティングもできますね。
yamano3201.hatenablog.jp
まだ触ってないので触っておきたいです。
AWS クラウドサービス活用資料集 EC2編で知らなかったことメモ
前々から読んでおきたかった、AWS クラウドサービス活用資料集に目を通していきたいと思います。
aws.amazon.com
まずはEC2編に目を通して、知らなかったことをメモしました。
EBS 最適化インスタンス
- EBS専用帯域を確保するオプション
- t2.mediumでは使用できない
インスタンスストア
- (割愛)
- t2.mediumでは使用できない
拡張ネットワーキング
- ネットワークレイテンシが低くなる
- t2.mediumでは使用できない
プレイスメントグループ
- インスタンス間通信を最適化
- t2.mediumでは使用できない
最後に
普段はt2.mediumしか使用してないので、知らない単語がたくさん。
使ってないと目にしないもんですね。
EC2以外の項目も、一度学びなおした方が良さそう。
AWS EC2の情報をRuby/ERBを使ってHTMLとして出力する方法
AWS EC2の情報をERBを使ってHTMLを出力する方法をメモしておきます。
うまく表示してパラメータシートの代わりとして使えないかなーと思ってサンプルを作って見ました。
Javascript SDKで作るのがめんどくさかったので、慣れてるRubyで楽してしまいました。
出力した情報はDataTablesで表にして見やすくしています。
qiita.com
完成イメージ
AWS EC2の情報を表にして表示してます。各キーでソート、ページネーション、検索ができます。
ファイル作成
Gemfile, instance.rb, index.html.erbを用意します。
Gemfile
まずはGemfile
source :rubygems gem 'aws-sdk', '~> 2' gem 'aws_config'
instance.rb
ERBからHTMLを作成するrubyコードです。
EC2の情報を取得して、必要な情報を@arrayに格納してerbファイルに渡しています。
require 'erb' require 'aws-sdk' require 'aws_config' def name(instance) instance.tags.select do |tag| tag.key == "Name" end.first.value end def id(instance) instance.instance_id end def type(instance) instance.instance_type end def status(instance) instance.state.name end def az(instance) instance.placement.availability_zone end def subnet_id(instance) instance.subnet_id end def security_group(instance) res = [] instance.security_groups.each do |sg| res.push(sg.group_id) end res.join(", ") end def private_ip_address(instance) instance.private_ip_address end def public_ip_address(instance) instance.public_ip_address end Aws.config.update( :access_key_id => "XXXXXXXXXXX", :secret_access_key => "XXXXXXXXXXXXXXXXXXXXXX", :region => "us-east-1" ) ec2 = Aws::EC2::Client.new instances = [] reservations = ec2.describe_instances.reservations reservations.each do |reservation| instances.push(reservation.instances.first) end @array = [] instances.each do |instance| hash = { "Name" => name(instance), "ID" => id(instance), "Type" => type(instance), "Status" => status(instance), "AZ" => az(instance), "SubnetID" => subnet_id(instance), "SecurityGroup" => security_group(instance), "PrivateIP" => private_ip_address(instance), "PublicIP" => public_ip_address(instance), } @array.push(hash) end contents = ERB.new(File.read("index.html.erb")).result(binding) erb = ERB.new(contents) puts erb.result(binding)
index.html.erb
cdn.datables.netを読み込むだけで表が見やすくなるのが良いですね。
あとは@arrayで渡された値のkey, valueをeachで回して表示するだけ。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="https://cdn.datatables.net/t/bs-3.3.6/jqc-1.12.0,dt-1.10.11/datatables.min.css"/> <script src="https://cdn.datatables.net/t/bs-3.3.6/jqc-1.12.0,dt-1.10.11/datatables.min.js"></script> <script> jQuery(function($){ $("#foo-table").dataTable(); }); </script> <title></title> </head> <body> <table id="foo-table" class="table table-bordered"> <thead> <tr> <% @array.first.keys.each do |key| %> <th><%= key %></th> <% end %> </tr> </thead> <tbody> <% @array.each do |info| %> <tr> <% info.values.each do |item| %> <td><%= item %></td> <% end %> </tr> <% end %> </tbody> </table> </body> </html>
実行コマンド
$ bundle install --path=vendor/bundle $ bundle exec ruby instance.rb > index.html; open index.html
ちょっと雑に作ってますが、欲しい情報を整理してHTMLで表示させればパラメーターシートとして使えそうな気がしてきました。
アカチャンホンポのプレパパナイトツアーに参加していろいろ聞いてきた
アカチャンホンポのプレパパナイトツアーに参加してきました。
www.akachan.jp
参加者が私一人だったこともあって、クイズや体験はなく、商品の説明を通して疑問を解消していくというものでした。
90分間じっくりと話を聞くことができたので、とっても勉強になりました。
新生児衣料、生活用品、おでかけグッズの三人の担当の方に説明していただいた内容をメモしておきたいと思います。
新生児衣料
短肌着
産まれる前に購入する必要があるものです。5, 6枚必要とのこと。
長下着、コンビ肌着
産まれる前に購入する必要があるものです。いずれか合わせて5, 6枚必要とのこと。短肌着の上に重ねて使うようです。
ドレスオール
産まれる前に購入する必要があるものです。外に出るときに肌着の上に重ねて使うようです。
ほとんどのものが2WAYになっていて、股の部分を開けたり閉めたりして使うことができます。
足がバタバタ動くようになる3ヶ月くらいまで使えるようです。
プレオール、カバーオール、ロンパス
足がバタバタ動くようになる3ヶ月くらいになると、足が分かれていたり足が出るタイプが必要になるそうです。
おくるみ
必須ではないとのことですが、1つあると便利に使えるとのことです。
生後1ヶ月のときにお宮参りに行くのであれば白色のおくるみを購入しておくと良いとのことです。
セレモニードレスオール、祝着
お宮参りで着る服です。レンタルなどもあるそうなので必須ではないとのことです。
ガーゼハンカチ
たくさん必要。
生活用品
哺乳びん
ガラスのものとプラスチックのものがあり、衛生面でガラスのものが選ばれることが多いそうです。
ピジョン 母乳実感哺乳びん プラスチック製 アニマル柄 240ml
- 出版社/メーカー: ピジョン
- 発売日: 2016/03/11
- メディア: Baby Product
- この商品を含むブログを見る
消毒用品、哺乳びんブラシ、乳首ブラシ
これらは必須ですね。哺乳びんは洗浄消毒→授乳→洗浄消毒と使うたびに洗浄消毒が必要になるそうです。
消毒の方法は煮沸、薬液、電子レンジの3つがあるそうです。
とりあえず煮沸で初めてみようと思います。
搾乳器
手で絞る、手動、電動のタイプがあるようです。
子供をあずけるようになる場合は必要になるそうです。
必要になったら検討することにします。
紙おむつ
新生児、S、M、Lの4つのサイズがあるようです。
太ももに痕がつくようになってきたらサイズアップしていくと良いとのことでした。
メリーズテープ 新生児用(お誕生~5kg)さらさらエアスルー 90枚
- 出版社/メーカー: 花王
- メディア: Tシャツ
- 購入: 7人 クリック: 36回
- この商品を含むブログ (7件) を見る
ベビー衣料用洗剤
衣料用洗剤の他に、衣料用リンスという柔軟剤を使う人も多いようです。
おしりふき
トイレに流せるタイプや厚手のタイプがあるそうです。
水99% Super 新生児からのおしりふき 100枚×5個パック
- 出版社/メーカー: 赤ちゃん本舗
- メディア: Baby Product
- この商品を含むブログを見る
おむつバケツ
使用済のおむつを捨てる専用のバケツです。5, 6枚しか入らないらしいのでいらないかも。
普段使用しているゴミ箱に臭わない袋をつけてしのごうと思います。
驚異の防臭袋 BOS (ボス) おむつが臭わない袋 Sサイズ 90枚入り 赤ちゃん用 おむつ ・ うんち 処理袋 【袋カラー:ピンク】
- 出版社/メーカー: BOS-SHOP
- メディア: その他
- この商品を含むブログを見る
あとは移動時に使える携帯ゴミ袋が便利だそうです。
ウィズベビー 使用済み ベビー紙オムツ 処理袋 消臭タイプ 120枚×2個 (240枚) 袋の大きさ (横23cm×縦33.5cm)
- 出版社/メーカー: サンシャインポリマー
- メディア: ヘルスケア&ケア用品
- この商品を含むブログを見る
ベビーバス
プラスチックのバスは安定しているけど場所をとる。空気を入れて使うエアータイプのバスは不安定だけど収納に便利。
- 出版社/メーカー: 永和
- 発売日: 2012/08/25
- メディア: Baby Product
- この商品を含むブログを見る
リッチェル ふかふかベビーバスW グリーン 【対象年齢:新生児~3カ月頃まで】
- 出版社/メーカー: リッチェル
- メディア: Baby Product
- この商品を含むブログを見る
エアータイプを購入しようと思います。
湯温計は気になる人は購入。タオルは親と一緒でかまわないそうです。
ベビーソープ、ベビーシャンプー
泡タイプや肌に弱い人向けなどあるそうです。
沐浴液
すすぎがいらないのでおすすめだそうです。
ベビーローション、ベビーオイル
どちらかで良いそうです。おむつを取り替えるときにも使用すると良いそうです。
つめ切りばさみ、やすり
顔をかく子の場合は必須だそうです。
【日本製】コンビ Combi ベビーレーベル つめきりハサミ パウダーピンク (対象月齢 新生児~)つめやすり付
- 出版社/メーカー: コンビ
- メディア: Baby Product
- この商品を含むブログを見る
鼻吸い器
必要かは子供によるそうです。
手動と自動のものがあるそうです。
ベビーゲート、ベビーサークル、安全グッズ
動き始めてからで良いそうです。
おでかけグッズ
チャイルドシート
退院のときに必要になるので、産まれる前に購入する必要があるそうです。
里帰り出産でタクシーを予定していたので、タクシー会社に問い合わせが必要とのことでした。
目安としては4歳くらいまで使えるそうです。
ただ6歳までは使用が義務つけられているので、その頃にはジュニアシートが必要になるそうです。
車の車種や年式で使用可能かが変わるそうなので、購入するときは事前に調べておくと良いとのことでした。
ベビーカー + グッズ
使用は1ヶ月から3歳ころまでになります。子供の相性もあるので、産まれてからの購入で十分とのことでした。
2輪、4輪、3輪のものがあるそうです。
2輪
- 軽くて持ちやすくて安い
4輪
- 動きやすく段差も越えやすいけど重くて高い
3輪
- 2輪と4輪の良いとこどりで、店員さんのおすすめとのことでした。
- ただ、3輪のものは対象が4ヶ月からなので、最初は抱っこ紐で頑張る必要があるそうです。
動きやすいのが魅力なので、4輪を購入しようと思います。
セカンドベビーカーというのがあるそうですが、ファーストベビーカーと同じく対象は3歳までなので必須ではないそうです。
2人目が産まれてもう1台安く購入したくなった場合に検討します。
荷物をひっかけるフックやドリンクホルダー、レインカバーを購入する方が多いそうです。
抱っこ紐
1ヶ月から使えるようになるので、退院時はまだ使えないそうです。
こちらも子供の相性があるので、産まれてからの購入で十分とのことでした。
下の3つが有名だそうです。
エルゴ
肩腰のクッションが分厚くお母さんの体に優しいです。
Ergobaby 【日本正規品保証付】【日本限定ベビーウエストベルト】 エルゴベビー ベビーキャリア 360スリーシックスティ/ブラックキャメル CREGBC360BLKCAM1NL 【抱っこひも】
- 出版社/メーカー: ERGO Baby
- 発売日: 2015/12/01
- メディア: Baby Product
- この商品を含むブログを見る
ベビービョルン
赤ちゃんとの接点に布が一枚あるので、抱っこからおんぶに切り替えるのが楽だったり、親と同じ方向に赤ちゃんを向けることができるそうです。
ベビービョルン 【日本正規品保証付】 ベビーキャリア オリジナル シティーブラック 023056
- 出版社/メーカー: ベビービョルン
- メディア: Baby Product
- この商品を含むブログを見る
アプリカ
エルゴとベビービョルンのいいとこどり。
ただ首が座るまで横抱きになってしまうそうです。横抱きだと少し不安定で両手が開かないのが不便なところになります。
アップリカ 抱っこ紐 コランハグ オリジナル キングダムネイビーNV (つかれにくい腰ベルトタイプ よだれパッド付) 39425
- 出版社/メーカー: アップリカ
- 発売日: 2014/09/26
- メディア: Baby Product
- この商品を含むブログを見る
私はエルゴにする予定です。
最後に
とりあえずメモを列挙しました。
とても勉強になりましたし、おしりふきなどの試供品を大量にいただけて大満足の90分でした。
近くにアカチャンホンポのプレパパツアーがある方は、ぜひ参加してみることをおすすめします。
ruby SDKでEC2 Run Commandを試してみる
ruby SDKでEC2 Run Commandを試してみました。
EC2上で任意のコマンドを叩けるサービスです。
下のリンクを参考にしています。
recipe.kc-cloud.jp
事前準備
対象インスタンスにSSMエージェントを入れる
$ curl https://amazon-ssm-us-east-1.s3.amazonaws.com/latest/linux_amd64/amazon-ssm-agent.rpm -o amazon-ssm-agent.rpm $ yum install -y amazon-ssm-agent.rpm
CLIで実行するユーザにアクセス権をつける
AmazonSSMFullAccessを対象ユーザにつけます
実行
CLIで実行
$ aws ssm send-command --document-name "AWS-RunShellScript" --instance-ids "i-xxxxxxxxxxxxxxxxx" --parameters '{"commands":["touch test"],"executionTimeout":["3600"]}' --timeout-seconds 600 --region us-east-1
testファイルが作成されていることを確認しました。
ruby SDKで実行
Gemfileとrubyファイルを用意します。
Gemfile
source :rubygems gem 'aws-sdk', '~> 2' gem "aws_config"
ec2_run_command.rb
require 'aws-sdk' require 'aws_config' Aws.config.update( :access_key_id => xxxxxxxxxxxxxxxx, :secret_access_key => xxxxxxxxxxxxxxxxxxxxxxx, :region => us-east-1 ) ssm = Aws::SSM::Client.new() res = ssm.send_command({ document_name: "AWS-RunShellScript", instance_ids: ["i-xxxxxxxxxxxxxxxxx"], parameters: { commands: ["touch test"], executionTimeout:["3600"] }, timeout_seconds: 600, })
実行します。
$ bundle install --path=vendor/bundle $ bundle exec ruby ec2_run_command.rb
access_key_id, secret_access_key, instance_idsを適切に設定して実行してください。
SSHが不要なのでセキュアに実行できるのが良いですね。