CloudWatch Logsのログファイルを監視メモ
アプリケーション・サーバーのログをCloudWatchで集約するための設定時のメモ。
基本的には以下を参考にする。
AccessDeniedExceptionが発生
この際、インスタンスに設定したロールにCloudWatchポリシーを設定するのを失念した為、ログの転送がされずに、以下のエラーがログ・ファイルに出力された。
$ sudo cat /var/log/awslogs.log
2017-01-16 05:30:07,690 - cwlogs.push.publisher - WARNING - 3947 - Thread-3 - Caught exception: An error occurred (AccessDeniedException) when calling the PutLogEvents operati ・・・中略・・・ ClientError: An error occurred (AccessDeniedException) when calling the PutLogEvents operation: User: arn:aws:sts::913687097810:assumed-role/ec2_hoge/i-8aa0ff05 is not author ized to perform: logs:PutLogEvents on resource: arn:aws:logs:ap-northeast-1:913687097810:log-group:api_/var/log/syslog:log-stream:hoge.com 2017-01-16 05:30:07,693 - cwlogs.push.publisher - WARNING - 3947 - Thread-5 - Caught exception: An error occurred (AccessDeniedException) when calling the PutLogEvents operati
CloudWatchポリシーをアタッチ
インスタンスのロールに、CloudWatchポリシーをアタッチしてログエージェントを再起動でOK。
CloudWatchLogポリシー
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
$ sudo service awslogs restart
関連本
AWSのオススメ本。
Amazon Web Services完全ソリューションガイド
- 作者: 大澤文孝,川上明久,大嶋和幸
- 出版社/メーカー: 日経BP社
- 発売日: 2016/12/22
- メディア: 単行本
- この商品を含むブログを見る
screenコマンドについて
screenコマンドのメモ。
screenの説明のサイトはすごいあるけど、sshでセッションが切れてからの復帰方法について書かれているサイトが中々見つからなかったのでメモ。
手順
sshでログインしてscreen
実行。
$ screen
で、このままタイムアウトした場合に、
再度sshでログインして、screen -r
をするとThere is no screen to be resumed.
となってscreenにアタッチできない
$ screen -ls There is a screen on: 14188.pts-0.hoge-dev (01/11/2017 03:01:17 PM) (Attached) 1 Socket in /var/run/screen/S-foo. $ screen -r There is a screen on: 14188.pts-0.hoge-dev (01/11/2017 03:01:16 PM) (Attached) There is no screen to be resumed.
上記のようになったら、以前のsshでのログインプロセスをkillする
$ ps aux|grep pts|grep sshd foo 13786 0.0 0.1 107736 1888 ? S 14:54 0:00 sshd: foo@pts/0 foo 14920 0.0 0.1 107736 1880 ? S 15:22 0:00 sshd: foo@pts/2 foo 14987 0.0 0.0 10460 932 pts/2 S+ 15:23 0:00 grep --color=auto sshd $ kill 13786
kill
をしたら、再度アタッチ
$ screen -r
これで大丈夫。
- 作者: 沓名亮典
- 出版社/メーカー: 技術評論社
- 発売日: 2015/06/05
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
screenコマンドの説明
アタッチの説明
Webサイト構築の構造・骨格・表層
自分なりのWebサイト構築手順のまとめ。
IAシンキング Web制作者・担当者のためのIA思考術 を参考にフローを整理し、サイトのコンセプト以降からシステム設計の手前に至るまでの手順。
Webサイト構築に必要なプロセス
- 戦略
- サイトの目的
- ユーザーニーズ
- 要求
- 機能仕様
- コンテンツ要求
- 構造
- インタラクションデザイン
- 情報アーキテクチャ
- 骨格
- 情報デザイン
- インターフェースデザイン
- ナビゲーションデザイン
- 情報デザイン
- 表層
- ビジュアルデザイン
1 -> 5 は時系列な順序であり、上から下に行く事で 抽象的->具体的 となる。
ここでは、「3. 構造」以降についてをまとめてみる。
※ 戦略・ 要求については、こちら で。
サイトストラクチャ
簡単に言うとサイトマップの事。動作手順や画面遷移のフローチャート等をつくる。
そしてこの段階で以下を決める
- 表現方法の統一。 エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) で言うところの ユビキタス言語 。
- ハイレベルサイトストラクチャを作成
表現方法の統一
IAシンキングでは設計での表現方法の統一としているが、自分の場合にはサイトで利用する文言統一をこの段階で決定する
ハイレベルサイトストラクチャ
IAシンキングでは「サイトを俯瞰し要点をおさえる」とし、コアコンテンツを見つけ出し、それを書き出すとある。 で、その思考フレームワークとして以下を例示。
- トップページとその他コンテンツ群
- メインメニュー類
- サブカテゴリー
- 詳細コンテンツ群
で、自分の場合をザックリと以下に。
- ホーム:最新記事
- グローバル:部品、記事
- 部品一覧、記事検索
- 部品詳細
画面設計
IAシンキングでは「画面設計」とは、「ラベル設計」「サイトストラクチャ設計」「ナビゲーション設計」の集大成とある。 そして、次の3つを抑える必要がある 1. 画面内のエリア定義(レイアウト) 2. 画面前後のフロー(ナビゲーション) 3. 画面内の機能(アクション)
自分のサイトの特性から、あらかじめあるページタイプ、レイアウトパターンをイメージして細部をつめてみる。 自分の場合には、Free Responsive Mobile Website Templates Designs - w3layouts.com から近いカテゴリーを見つけて、設計をしてみる
ワイヤーフレーム
上記から近いイメージのページをみつけたら、 Wirify のブックマークレットを利用してワイヤーフレームを表示し、それを元に自分でCacooやKyenoteを利用してワイヤーフレームを作成する。
これ以降は?
ここまでがコンセプトを決めてからの画面イメージを決めるまでのざっとした概要。
ここからシステム設計(URL、DB、etc)に行程を進めていく。
- 作者: 坂本貴史,宮崎綾子,長谷川恭久
- 出版社/メーカー: ワークスコーポレーション
- 発売日: 2011/03/29
- メディア: 単行本
- 購入: 12人 クリック: 167回
- この商品を含むブログ (10件) を見る
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
- 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子
- 出版社/メーカー: 翔泳社
- 発売日: 2011/04/09
- メディア: 大型本
- 購入: 19人 クリック: 1,360回
- この商品を含むブログ (131件) を見る
「Amazon Web Services完全ソリューションガイド」を読んで
Amazon Web Services完全ソリューションガイド を読んで
概要
実践的な導入事例からAWSでの以下の実現方法を解説
- ネットワーク
- Webサーバー
- ファイルストレージ
- データベース
- 監視
どんな人向け
AWSの入門ではなく、サービス運用の各種ケーススタディからAWSによる解決策を解説。 とはいえ、各種サービスの前提を丁寧に解説しているので初・中級者向けの内容に感じた。
AWSを利用して、シンプルな構成でアプリケーションを開発したことがあり、スケールメリット・監視を意識した構築をしたい方には良書だと思う。
他のAWS書籍と比較して
どんな所が新しいか
最新の書籍ということだけあって、自分が知る限りでは、これまで出版されている中では以下の内容が新しかった。
- Lambda、API Getewayでのサーバーレスアプリケーション
- Application Load Balancer(ALB)の設定
- RDSのAurora(内容的には少しだけど)
- CloudTrail、AWS Configでの監視
どんな書籍と読み較べたか・一緒に読むと良い本
本書を読んで内容が近く、読んでおくとより知識が深まると感じた書籍。
- Amazon Web Services実践入門 (WEB+DB PRESS plus) はカバー範囲が広く本書と内容的に被る部分もあるが、「実践入門」はAWS CLIでの説明もあり内容が冗長的と感じたが、本書ではマネージドコンソールでの説明がメインなのでその分読みやすさがあった
- Amazon Web Services クラウドデザインパターン実装ガイド 改訂版 は初めてAWSを利用してシンプルな構成でシステムを構築する際に参考になる。本書やこの本の内容+スケールを意識した設計&最新のサービス、といった感じ
- Amazon Web Services 基礎からのネットワーク&サーバー構築 は一般的なネットワークの基礎とそれをAWSに落とし込んだ時の説明があり、こちらも事前に読んでおくと本書の理解は早いかも
Amazon Web Services完全ソリューションガイド
- 作者: 大澤文孝,川上明久,大嶋和幸
- 出版社/メーカー: 日経BP社
- 発売日: 2016/12/22
- メディア: 単行本
- この商品を含むブログを見る
Amazon Web Services実践入門 (WEB+DB PRESS plus)
- 作者: 舘岡守,今井智明,永淵恭子,間瀬哲也,三浦悟,柳瀬任章
- 出版社/メーカー: 技術評論社
- 発売日: 2015/11/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
Amazon Web Services クラウドデザインパターン実装ガイド 改訂版
- 作者: 大澤文孝,アマゾンデータサービスジャパン玉川憲,アマゾンデータサービスジャパン片山暁雄,アイレット鈴木宏康,日経SYSTEMS
- 出版社/メーカー: 日経BP社
- 発売日: 2015/03/05
- メディア: 単行本
- この商品を含むブログ (2件) を見る
Amazon Web Services 基礎からのネットワーク&サーバー構築
- 作者: 玉川憲,片山暁雄,今井雄太
- 出版社/メーカー: 日経BP社
- 発売日: 2014/07/16
- メディア: 単行本
- この商品を含むブログ (3件) を見る
「成功者の告白」を読んで。ベンチャーで働くプログラマーも参考になった
成功者の告白 (講談社+α文庫) の感想
概要
経営コンサルタントの著者が、これまでの自身の経験や出会った企業をベースに経営者が陥るパターンを物語にしたもの。
物語は主人公がベンチャー企業を創業するところから始まり、その成長過程を描いている。
感想
最初は V字回復の経営 2年で会社を変えられますか 企業変革ドラマ (日経ビジネス人文庫) のように経営者や起業家を対象にした本かと思った(これはこれで面白い)が、ベンチャーで働く人間であれば、誰でも共感できる内容。
出版は結構前の本だけど、内容は色褪せない普遍的なところがある。
自分は複数のベンチャー企業で成長していく過程を経験しているが、本書にあるパターンが「あるある」として受け入れられ、 そのパターンがなぜ起こるのかというメカニズムが説明されている点に、ものすごく共感と学びを得た。
気づきをえたところ
- 「成長カーブ」を利用した説明のわかりやすさ
- 事業(仕事)と家庭との相関
- 組織が拡大していくと現れるポジティブグループとネガティブグループ
- 鬼の経営、仏の経営とマネジメント
企業が成長していく過程にいるとどうしてる起きる諸問題に対して、経営者だけでなく、社員に対してもどう向き合っていけば良いかという示唆を得られる。
どんな人にオススメ
IT系は特にベンチャー企業が多く、本書のような成長カーブを描いていえる企業が多く感じる。そうゆう意味では職種、メンバー・リーダーに係わらずIT系で働く全般にオススメ。
- 作者: 神田昌典
- 出版社/メーカー: 講談社
- 発売日: 2006/09/21
- メディア: 文庫
- 購入: 25人 クリック: 172回
- この商品を含むブログ (62件) を見る
V字回復の経営 2年で会社を変えられますか 企業変革ドラマ (日経ビジネス人文庫)
- 作者: 三枝匡
- 出版社/メーカー: 日本経済新聞出版社
- 発売日: 2012/10/18
- メディア: Kindle版
- 購入: 1人 クリック: 1回
- この商品を含むブログを見る
ActiveRecordでMySQLの正規表現(REGEXP)
ActiveRecordを利用して、MySQLのREGEXPを利用したい場合
class Book < ActiveRecord::Base scope :with_title_regexp, -> (pattern) { with_regexp(columns_hash['title'].name, pattern) } scope :with_regexp, -> (column, pattern) { where("`#{table_name}`.`#{column}` REGEXP ?", pattern) } end
こうすると、以下のように正規表現を利用した検索ができるようになる
Book.with_title_regexp('^[a-d]') #=> SELECT * FROM `books` WHERE (`books`.`title` REGEXP '^[a-d]');
ActiveRecordのincludesでネストされた関連をロードする方法
ActiveRecordのincludesメソッドで関連テーブル(belongs_to, has_one, has_many)をキャッシュできる。 そこからさらに、関連テーブルの関連をキャッシュする方法
環境
前提
- Bookが
author
,publisher
,categories
をもつ - Authorが
address
,affiliation
をもつ
やりたいこと
Bookの関連をキャッシュ、かつAuthorの関連もキャッシュしたい
class Book < ApplicationRecord belongs_to :author has_one :publisher has_many: categories end class Author < ApplicationRecord has_one :address has_one :affiliation end
Book.includes([{ author: [:address, :affiliation] }, :publisher, :categories]).where(id: ids)
ちなみに自分の開発のある機能で、このincludesを利用する前後でシステムのLatencyが半減した。 Railsで簡単にできるパフォーマンス改善。