miyasakura’s diary

日記です。

AWS認定 デベロッパー - アソシエイト試験を受けてきた

火曜日に思いついて予約して、本日受けてきました。

勉強は特にしていないのですが、範囲に書いてあった中でSWFだけは使ったことがなかったので一応30分くらいでチュートリアルをやりました。

結果は正答率87%で無事合格。

意外と難しかったですが、普段から出題範囲のサービスを使っていれば落ちることはないレベルかなと。

主な対象サービスはEC2, S3, DynamoDB, SQS, SNS, EB, CloudFormatin, SWFなどで、基本的なWebの知識がないと解けない問題もそれなりにありました。

せっかくなので残りのアソシエイトレベルの試験もさくっと取ってしまおうかなと思ってます。サンプル問題を見る限りではソリューションアーキテクトは余裕で、SysOpsはちょっと勉強が必要そう。

読んだ:「7つの習慣―成功には原則があった!」

今更な自己啓発本(ビジネス書?)ですが、読んでみました。というかFebeのAudio Bookで聴きました。

www.febe.jp

古い訳の方ですがまぁ良いかなと。

当たり前のことといえば当たり前のことだし、これまで実践してきたこともあったりはするわけですが、30歳というこの時点で読んで良かった気がします。誰にでもおすすめできる本。

読んだ:「マイクロサービスアーキテクチャ」

www.oreilly.co.jp

やや流し読みですが。

全体的にマイクロサービスをやる上で気をつけるべきところを紹介してはくれているんですが、実際にやって大変そうだなというところは、大変だから頑張ってね、くらいしか書かれていないので実践的とまではいかない感じ。

考えなきゃいけない部分が基礎的なこと含めて色々と書かれているので、マイクロサービスやるにあたっては読んでおいて良いはず。

以下はメモ。自分が気になったところだけメモしつつ読もうと思ったけど途中で面倒になったので適当です。

  • サービスを分離する大きさ
    • 2週間で作り直せる大きさ
    • あるいは感覚的に十分に小さいと感じる大きさ
  • サービス内のことはそれほど気にしなくて良い。サービス間は心配する
    • サービス間の通信がRESTだったりJava RMIだったりした場合の大変さ
  • 戦略的目標←アーキテクチャ上の原則←設計とデリバリのプラクティス
  • 非同期イベントベース連携
    • マイクロサービスがイベントを発行する方法と、コンシューマがそのイベントを発生したことを検出する方法について
    • RabbitMQなどのメッセージブローカー
  • 4章 結合
    • 1つのマイクロサービス内ではDRYを破らないが、すべてのサービスにわたるDRYの違反には寛大に対処する
      • サービス間の結合が多すぎることに寄る外はコードの重複が引き起こす問題よりもはるかに悪くなる
    • クライアントライブラリ
    • ついサーバにあるべきロジックがクライアントに紛れ込んでしまう
    • AWSのモデルが好き
      • コミュニティや開発者以外のAWSメンバーが開発することで落とし穴を回避
      • クライアントがアップグレードを行うタイミングを管理できる
    • バージョニング
  • 5章 モノリスの分離

ActiveModelのi18n

ActiveRecordを継承せずに直接ActiveModelを使ったときの i18n のやり方がわからなかったのでメモ。

def User
  include ActiveModel::Validations
  validates :email, presence: true
end

みたいな使い方をしているとき。

ja:
  activemodel:
    attributes:
      user:
        email: メールアドレス

activerecord: ではなくて activemodel: にしましょうということ。そりゃそうだよねという感じ。

ActiveModel::Translation#i18n_scope でスコープが定義されていました。

CloudFormationの定義からDynamoDB Localにテーブルを作成する

DynamoDBをCloudFormationで作ったは良いけどローカルでdynamodb-localを使って検証する際にどうしようか少し悩んでました。

Terraformにしようかとか、AWS上のテーブル情報を持ってきてどうきするようにしようかとか悩みましたが、結論としてはCloudFormationのyamlファイルから AWS CLI で create-table することに。

for file in `ls *.yaml`; do
  ruby -e 'require "yaml";require "json";y=YAML.load ARGF.read;puts JSON.pretty_generate y["Resources"]["Table"]["Properties"]' < $file > /tmp/$file
  aws dynamodb create-table --endpoint-url http://localhost:8000 --cli-input-json file:///tmp/$file
done

ちょっと雑ですが、Resources.Table.Properties のデータを --cli-input-json に渡してやるだけなのでシンプルで別の場所で定義を再度書く必要もないのでいったんこの方針で。

IKEAの電動昇降式スタンディングデスクBEKANTを購入しました

昇降式のデスクを海外のサイトで買おうとして2ヶ月届かなかった記事はこちら。

miyasakura.hatenablog.com

なんとか返金してもらえたので、先週末にIKEAに行ってこちらの机を買ってきました。

www.ikea.com

海外では一年以上前から発売されていたのですが、2016年11月時点では見つからず海外品を購入したのですが、昨年末くらいに発売が開始されたみたいです。

立川の店舗ではNew!という表示とともに2箇所くらいに展示されていて結構おすすめされている様子でした。

土曜日に購入しまして、発送が最短で火曜日ということでしたが、木曜日の今日受け取れました。

10年保証もついてお値段69,900円。机と椅子を同時に買うと20%分のポイントが貰えるキャンペーンをやっていたので、不要な1,980円の椅子を買って送料込みでも実質6万ちょっとで買えた計算に。いい買い物をしました。

で、本日届いたのですが、組み立ても思った以上に簡単で、1人で1時間弱で完成しました。

f:id:miyasakura:20170126172430j:plain

昇降機能も動いています。

組み立ててみると思った以上にシンプルな作りでしたが、海外での実績がありますし、保証も10年と信頼性は十分です。

日本メーカーのものを買うと倍以上の値段がするので、しばらく電動の昇降式デスクはIKEAのBEKANT一択ではないでしょうか。

メモ:新宿から車以外でIKEAに行くときの所要時間

立川店が一番近いが在庫が他の店にある場合もあるのでメモ。

IKEA立川:41分

新宿→(中央線快速)→立川→(バス)→災害医療センター東→徒歩2分

41分だがバスのタイミング次第で多少のブレはあり。バスに乗らなくても徒歩15分程度なので45分程でつく。

IKEA Tokyo Bay (旧IKEA船橋):59分

新宿→(総武線)→西船橋→(武蔵野線)→南船橋→徒歩6分

IKEA新三郷:1時間4分

新宿→(埼京線)→武蔵浦和駅→(武蔵野線)→新三郷駅徒歩7分

IKEA港北:1時間18分

新宿三丁目→(副都心線東横線)→菊名→(バス)→新開橋→徒歩2分

新横浜からのシャトルバスもあり。