サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
blog.naoshihoshi.com
概要 2019年8月23日 13時頃からAWS EC2の接続ができなくなる障害が発生しました。 このような大規模障害は滅多にないので、障害の情報収拾する際に「どこみりゃいいんだ?」となるので、この機会にまとめることにしました。 この記事ではAWSで障害が発生した場合に確認するページやサイトをまとめます。 公式情報 公式の情報は正確性はあるものの、速報性には欠けます。 そのため、後述する非公式情報と並行して確認する必要があります。 公式情報からは、下記2つの情報が得られます。 何がなぜ障害に繋がっているのか いつ復旧する見込みなのか この情報から、障害を回避するための方法や、自サービスの復旧見込みのアナウンス*1に役立てることができます AWSサービス全体の障害情報 AWSサービス全体の障害情報はAWS Service Health Dashboardで確認することができます。 status
概要 技術書典でRe:VIEWを使っていたものの、文章を書き、textlintを回すというCI環境を整えることができませんでした。また、このCI環境は、ブログ執筆においても有効であるため、このタイミングで構築することにしました。 今回はRe:VIEWで書いた文章の校正をCircleCIとtextlintでGitHubのPRに自動コメントする仕組みを作ったのでその紹介をします。 概要 仕様🖋 構築手順👨💻 textlintの導入 CircleCIの設定 .circleci/config.yml textlintの実行とGitHubのPRヘコメント GitHubのアクセストークンを取得 GitHubのアクセストークンをCircleCIに設定 .circleci/review-textlint.sh 動作確認🚨 CircleCIの確認 GitHubのPRコメントの確認 まとめ✨ 仕様
概要 blog.naoshihoshi.com サービスを公開したと同時に、mackerelを導入してみました。 CPU, Memory, filesystemのアラートをデフォルトの閾値で設定した結果、一瞬でfilesystemのアラートが鳴りました。 ぬほほ、mackerelで監視項目追加したろ^^ とか思って設定したら、その項目既にcriticalの値だったから汗でた— 星 直史 (@NaoshiHoshi) July 17, 2018 すぐさま対応できなかったので、とりあえずアラートを止めるために閾値を変えるというワークアラウンド対応をしました(白目) ただ、ディスク容量の75%ほど使用していたので、根本的に対応しなければサービス断になると思われるため、ボリューム拡張をすることにしました。 今回はAWS EC2のルートボリューム(EBS)をダウンタイム0で拡張する方法について書こう
概要 最近フロントエンドからAPIを叩く実装における認証の仕組みをどうするか考えていました。 以前、AWS Cognitoを使った認証仕組みを作ったことはあったのですが、Railsの場合はどのようにJWTを扱うか知りたかったので、作ってみました。 今回は、タイトルの通りRails 5.2でJWTとdeviseを使った認証の仕組みについて解説します。*1 概要 想定しているケース 調査したこと JWTを扱うための仕組みがdeviseにあるか? なければ、それを補うためのgemがあるのか? ユーザーがブラウザからメール / パスワードを入力してユーザー登録 トークンの取得、検証処理の追加 動作確認 トークンの取得 トークンを使ってAPI実行 まとめ 想定しているケース 想定しているケースはシンプルです。 ユーザーの動き的には、こんなことをすることを想定しています。 ユーザーがブラウザからメール
概要 技術評論社から発刊されているSoftware Designの2017年10月号に「サーバーレスで実現!素材集サービスを効率化した自動画像管理システムに学ぶ」というタイトルで寄稿しました! この記事では、記事執筆にあたり、テーマ選定、記事執筆の全体的な流れ、使ったツールなどをまとめます。 gihyo.jp テーマ選定: 想定読者に何を伝えるのか? 最初に意識したことは、想定読者を意識して、何をどのように伝えるべきかを強烈に考えさせられるということです。 想定読者は初心者~上級者のどの層か 読者は記事を読んだあとに何を得るのか 記事を書く上で前提は何か なぜこの記事を書き、何を伝えるのか などなどです。上記の中でも個人的に、読者は記事を読んだあとに何を得るのかが、最も重要なのだと思います。 ここがしっかり固まっていると、記事執筆中に内容がブレることなくなると思います。記事の大枠などを考え
概要 ひょんなことから雑誌の記事を執筆することになったので、集中して筆を走らせる為に、第二回一人開発合宿を実施しました。 合宿候補地はどんな感じで決めたの? 今回も前回と同様に、考えました。 一人で活動できるか すぐに充電が確保できるか すぐにご飯を調達できるか ネットワークが安定していて、かつ十分に早いか 一泊二日を想定した場合、宿泊料は十分安いか(10,000円以下) 作業時間を確保できるか(遠すぎないか?) 楽しそうか 前回、食費で何気に1万円くらい飛んで行ったので、今回はコスパ重視で決めました。 せっかくITS会員なので、圧倒的コスパを誇るトスラブに行くことにしました。 こちらのトスラブは、一泊二日2食付きで5,400円です。行かない手はない…。 また、基本的には抽選で予約権を得なければならないですが、空き部屋検索で空き部屋があったら、そのまま予約ができます。 曜日 空室になりやす
概要 ユーザーがアップロードした画像データをS3に保存するケースにおいて Serverless Frameworkを使用して、AWS API Gateway 経由しLambdaで処理をするときに、 Cognitoで認証したユーザーのIAMをSTSを使用してS3にPUTするときの説明です。 今日は上記の図の四角で囲った部分の話をします。 serverless.yml provider: name: aws runtime: nodejs6.10 stage: dev region: us-west-2 # iamRoleStatements: # - Effect: "Allow" # Action: # - "s3:PutObject" # Resource: # - "arn:aws:s3:::yukashita-image-uploads/original-files/${self:p
概要 最近新たにWebサービスを作ろうとしているのですが、ここ一ヶ月、毎週末自宅で缶詰になって開発を続けてきました。 一ヶ月も同じ環境で作業をしていると、どうしても気分転換がしたくなるので、どこか違う環境で集中して作業したいと思い、 羽田空港で開発合宿をすることにしました。 この記事では、一泊二日羽田空港で合宿しての感想を書いていきます。 他に候補はあったか? もちろん他に候補はありました。レギュレーションは下記の通りです。 一人で活動できるか すぐに充電が確保できるか すぐにご飯を調達できるか ネットワークが安定していて、かつ十分に早いか 一泊二日を想定した場合、宿泊料は十分安いか(10,000円以下) 作業時間を確保できるか(遠すぎないか?) 楽しそうか ざっと考えた候補と結果をまとめると 作業場所 検討結果 開発合宿プランがある宿 そもそも一人だと予約できない。 温泉宿 料金が高い。
背景 会社のメンバーが、タイムマネジメント(個人のタスクの管理とか優先度付け)の方法について困っていたので、自分がどうしているのかまとめてみようと思った。 オレ流タイムマネジメントの概要 自分の脳内メモリは有限であり シングルスレッドで動きたい(作業中は他のことを考えたくない) 作業中のタスク以外のことは、なるべく自分の頭から隔離させたい(他に任せられるならブン投げたい) 新たなタスクがきた場合のルールが明確である タスクスイッチする時のルールが明確である という思想の基、辿り着いたやりかた。 用意するもの Trello 個人レベルならこれで十分やろ! 実際の手法 0. Trelloに下記Listを作成する あとでやる 次にやること 急いでやるべきこと 誰かにお願いしている / 待っているもの 特定の日付にやるもの 1. タスクが降ってきたら迷わずTrelloに突っ込む。 その際、どのLi
概要 OSX標準のOpenSSLが古く、tls1.2で通信できず、curlが失敗する事案が発生してしまいました。 対処方法を調べても、 `brew update brew upgrade openssl brew link openssl --force で治りました^^ という記事が多かったのですが、上記の対応でもopenssl versionが古いままだったので、その対処方法を書きます。 手順 手順は下記の通りです。 homebrewで最新のOpenSSLをinstallし、リンクを張る OpenSSLのパスを確認 環境変数の設定 homebrewで最新のOpenSSLをinstall この記事にたどり着いた人は、既に実行済みかつ、5,000万回は同じことを見ていると思いますが、 念のため記載しておきます。 $ which openssl #opensslのパスを確認 /usr/bin
概要 t-wada.hatenablog.jp Ansibleでmacの環境構築する際、id:t-wada さんの上記の記事を参考したのですが、 Ansible Best Practicesに沿っていなかったので、書き直してみました。 Ansibleを動かすまで こちらは、t_wadaさんの記事のままです。 sudo xcodebuild -license xcode-select --install ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew doctor brew update brew install python brew install ansible どこを直したのか twada/macbook-provisioning hoshin
脳が認める勉強方法という本を読んだのですが、この本はページ数が350ページ程度結構厚いです。 また、本の構成として、勉強法の効果を証明するための説明が大部分を占めています。 具体的にどのように勉強すればよいか?という点だけが知りたい人にとっては苦痛となる部分が多いかと思いましたので、 ハウツー部分だけをまとめようと思います。 忘れることで記憶する 一度、忘れた記憶を思い出すと、より忘れにくく記憶されます。 また、その場合、脳内では思い出した情報は、重要な情報として、長期的に記憶するように働きかけます。 この仕組みを利用し、学習してからある程度時間を空け、忘れた頃に再学習するようなスケジュールを組むと良いでしょう。 1日後 3日後 7日後 14日後 異なる場所で勉強する 記憶は背景情報とともに記憶されます。 記憶する内容が同じでも場所を変えて記憶をすると、別々の記憶として保存されるため、思い
前回までの記事で Re:dashのインストール MySQLからのデータ取得 Googleスプレッドシートからのデータ取得 GoogleAnalyticsのデータをGoogleスプレッドシートで取得 と、Webサービスのデータ解析をする上で必要なデータソースから取り込む手順を書きました。 今回は、それを定期的に実行する設定の手順を書きます。 Re:dashの設定 クエリ画面にアクセス Refresh Scheduleのリンクを押下 実行スケジュールを設定。 上記の設定で決まった時間、決まった間隔で実行することが可能です。 また、Re:dashはクエリで取得するデータはページにアクセスする度に取得するわけではなく、内部に保存することで高速に情報を取得するようになっています。 取得するのに時間がかかるクエリは、深夜に実行しておくのが賢い使い方かもしれません。 Googleスプレッドシートの設定
タイトルの通り、CirclCIで回しているテストを40%高速化した話をします。 うちの会社では、342files, 27300examples強を回しており、テスト時間が肥大化傾向にありました。 そこで、テスト高速化を図ろうと試行錯誤したので、その過程を書きます。 ※RRRSpec使えよ!というツッコミはなしで。CircleCI上で試行錯誤の記録を残すために書きます。 また、spec自体の高速化ではなく、CircleCIの仕様に合わせた高速化の方法についてのみを書きます。 やり方 並列実行する 遅いテストファイルを特定する 遅いテストファイルを分割する なんと、この2つだけです! シンプル!なんてシンプル! 並列実行して、遅いテストを特定するだけです。 そもそも技術力なんていりません。気合と根性*1で速くできます。 並列実行する 並列数を変更 CircleCIで並列実行数を増やすオプション
ピクスタの開発部で開発合宿を開催したので、 そのネタとして、Solr4.10.4でのレプリケーション(master-slave構成)を今更ながら試してみることにしました。 前回の記事はこちらです。 また参考にした書籍は↓こちらです レプリケーションの設定(master) $ cp -R solr-4.10.4/example/ solr-4.10.4/master1 $ cd ~/solr-4.10.4/master1 $ vim solr/collection1/conf/solrconfig.xml 上記ファイルを開いたら、下記のように編集します。 <requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="master"> <str name="replicateAfter">com
概要 Amazon CloudSearch における適切なスケーリングオプションの設定を紹介します。 設定できる項目は下記の通りです。 インスタンスタイプ レプリケーション数 パーティション数 以下、公式ドキュメントより引用 ドメインのスケーリングオプションを設定するときは、コストとパフォーマンスのトレードオフが生じます。望ましいインスタンスタイプ、レプリケーション数、パーティション数を変更すると、ドメインを実行するコストに大きな影響があります。 また、各項目の変更はそれぞれ下記の通り影響があります。 設定項目 期待できる効果 インスタンスタイプ アップロードキャパシティの増加 パーティションカウント 検索リクエストの応答速度の向上 レプリケーションカウント 検索キャパシティの増加および耐障害性の改善 インスタンスタイプ インスタンスタイプは格納するIndexサイズ(データ総容量)とドキュ
背景 手軽にファイルアップロード機能を実装するときにCarrierwaveをよく使うんですが、 ひょんなことから、アップロードされたファイルのウイルスチェックをする必要がでてきたので、 チェックするまでの手順を、ClamAVのインストールとチェック方法を主にまとめます。 ClamAVインストール手順 ClamAVインストール ウイルス更新の設定ファイル修正 ウイルスのパターンファイル更新 ウイルスチェックの設定ファイル修正 デーモン起動 上記手順のコマンド $ sudo su - $ yum remove -y clam* $ yum install -y clamav clamav-scanner-sysvinit clamav-update # 2. ウイルス更新の設定ファイル修正 $ sed -i -e "s/Example/#Example/" /etc/freshclam.con
シンボルって意味らしい。 ↓見てなんとなくわかった。 saitou.hatenablog.com 2016年の自分から2012年の自分に向けて書いてみた。
このページを最初にブックマークしてみませんか?
『production.log』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く