woshidan's blog

あいとゆうきとITと、とっておきの話。

EC2インスタンスをECSの特定のクラスタに所属させる

今日は、EC2インスタンスをECSの特定のクラスタのコンテナインスタンスとして登録するために必要なものについてまとめておきます。 EC2インスタンスがECSのコンテナインスタンスになる仕組み ECSのコンテナインスタンスはecs-agentが動作していて、ecs-agent…

IAMのロール、EC2インスタンスやECSのタスクに対するロールについてメモ

今日はIAMのロールについて復習しようと思います。 TL;DR 特別な作業をする時だけふだん使わない権限を一時的に使いたいときは、IAMロールの出番 IAMロールの使い方 IAMロール自体を作成し、 誰がそのロールを利用できるのか、を記述した信頼ポリシー と 「~…

Terraformで外部の設定ファイルから設定を読み込む(file, template_file, template_cloudinit_config)

今日はとりあえずTerraformのTemplateプロバイダーを少しさわってみようと思います*1。 TerraformのTemplateプロバイダーには、データリソース*2として template_file template_cloudinit_config リソースとして template_dir*3 がありますが、今回は templa…

terraformのmoduleの基本的な使い方を試しました

あれもこれもやらなくては~と思っていたらどれにも手がついておらず結構ガッカリですが、ひとまず今日はterraformのmoduleの基本についてまとめておきます。 TL;DR terraformがビルドに使うのはカレントディレクトリにある.tfファイル moduleで他のディレク…

Application Load Balancer(ALB)のコンポーネントについてメモ

先週、CLBではできなくてALBでできるようになったいくつかのことについてメモしました。 今週は、その記事に出てきたリスナーグループ、ターゲットグループといったALBの各コンポーネントに対し、そのコンポーネントを作成することで何を設定しているのかに…

ALBでできるようになったコンテントベースルーティングとALBと連携したECSの動的ポートマッピングについて

ELBとCLBとALBの違い AWSのロードバランサで検索すると、ロードバランサを指す言葉に、ELB, CLB, ALBの3種類がでてきます。 この3種類の違いは、 ELB ... Elastic Load Balancing. サービス名。ELBの提供しているロードバランサのリソースにCLBとALBがある C…

AWSのAuto Scalingグループの概要について(概念に関する用語とスケーリングポリシーの種類)

今週はAuto Scalingグループの概要について調べました。 Auto Scalingグループ EC2 AutoScaling と Auto Scalingグループ はなんのためにあるのか EC2のインスタンスは起動時間に対して料金が請求される従量制の課金形式となっています。 なので、1日の負荷…

いままでのECSの起動モード(EC2起動モード)のネットワーク設定(bridge ネットワークモード)とFargate起動モードを利用した場合のネットワーク設定関連で嬉しいことについて

2017年11月14日にAWSがAmazon ECSのTask Networkingを発表*1し、その恩恵を受ける Fargate 起動タイプが2018年7月4日に東京リージョンでサービス開始となりました*2。 自分の職場でも一部サービスでFargate(with awsvpcモード)の採用が始まったのをレビュー…

AWS SQSのvisibility timeoutとdelay queueのdelayの違いについて

今週の復習です。 consumerがキューからメッセージを受信するリクエストを送った後、 通信の問題で結局受け取れなかった consumer側で処理中にエラーになって結局最後まで処理できなかった などの事態に備えるため、SQSのキューにあるメッセージはconsumerが…

ECSのタスク、サービス、クラスタ、コンテナインスタンスの意味についてまとめました

ECSのタスク、サービス、クラスタ... といった言葉の意味がいまいちよくわからなかったので、それぞれの言葉が指すインスタンスを作成するときに何を設定するかに基づいてまとめたメモです。 もとの説明をいい感じに引用して... とかの時間がなかったのでひ…

APNsのプッシュ通知で利用するプロバイダ証明書関連の各種ファイル形式について調べてみたメモ

前の記事では、APNsとプロバイダの間の接続信頼の話をしました。この記事では、接続信頼の確認に使う証明書関係のファイルの話をします。 複数の鍵や証明書をまとめて扱うための個人情報交換( .p12 ) まず、Push通知の証明書関連で調べているとよく出てくる …

APNsを利用する際に必要な2種類の接続信頼について

APNsを利用する際に必要な2種類の接続信頼 APNsを利用する際には証明書やトークンが必要ですが、それは認証のためです。 ドキュメント*1には、暗号化されたデータが正しく復号できるか、途中で改ざんされていないかみたいな確認にあたる暗号化検証とあわせて…

EMRのHiveのドキュメントを読むのが不自由だったので読み方からメモ

仕事で若干AWS EMR上のHiveにさわったので少しだけメモ。 ドキュメントの読み方とか頭いっぱいになってるとすっこ抜けて死んでいますが、EMRの他のサービスについても似たような感じに気をつければいいはずだ。。 マネージドサービスとはいえ、設定できる項…

Appleの証明書関連を調べるときに公式ドキュメントの「証明書」ページを読んでおくととても捗る

Appleの証明書関連を検索するとき、かなり検索しにくく感じるときがありますが、 証明書 - サポート - Apple Developer のページに目を通しておくと公式ドキュメントのググラビリティが非常に上がります。というか、先に読んでおくもののはずなんですが、グ…

RSpecでクラスの挙動や定数をテスト用のダミーにする、見慣れなかったマッチャ、普段は実行しないテストのスキップ、などの話

参加しているプロジェクトのRSpecを見ていたら見慣れないことがいろいろあったので、復習しておきます。 RSpecでクラスの挙動をダミー用のものにする target_obj = double("target_obj") # initializeの文字のほうに深い意味はないらしい target_obj.stub(:s…

インフラエンジニアの教科書2を読みました

DockerとかAWSとか色々勉強しなければいけない感じなのですが、DockerやAWSの説明に出てくる用語がわからないということで、その辺りの基本的なことが載ってそうだし、薄いし、ということで「インフラエンジニアの教科書2」を読みました。 さらっとわかりや…

mysql2のgemのインストール時にchecking for mysql_query() in -lmysqlclient... no が出ていたらC言語版のMySQLのクライアントライブラリがない

mysql2のgemをインストールするときに、 checking for mysql_query() in -lmysqlclient... no ... のエラーが出て失敗する場合、C言語版のMySQLのクライアントライブラリがないです。 なので、たとえばMac OS X(10.11.6)の場合、 $ brew mysql でC言語版のMy…

RailsのFormクラスについて

Railsでバリデーションを書くケースといえばビジネスロジックで場所はModel(ActiveRecord)が多いのではないかと思います。 これは、たとえばRails Tutorialで扱うような、フォームで扱うModelが一つかつ単純な場合には特に迷う必要はありません。Railsのフォ…

fluentdについてのメモ

fluentdとは 参考: https://docs.fluentd.org/v0.12/articles/quickstart 基本Cで書かれていてRubyの薄いラッパーがあるログ収集用のライブラリ。 Fluentdは入ってきたログをJSONとして扱う。 インプットプラグインとアウトプットプラグイン 参考: https://d…

ウィンドウ関数に触ってみる

下準備 http://sqlfiddle.com/ の Postgress SQL 9.6 でテスト。 CREATE TABLE books ( id int, name varchar, author varchar, price int ); INSERT INTO books VALUES ( 1, 'Introduciton For Dog', 'Pochi', 200 ); INSERT INTO books VALUES ( 2, 'High …

「パスを通す」とは何をしているのか

ここ3年くらい恐る恐る export PATH="$PATH:additional_path" のような行を .bash_profile に追加する日々を生きていたのですが、ようやくなんとなく意味がわかったのが嬉しかったのでメモ。 「(お目当てのコマンドへの)パスを通す」というときは、お目当て…

Gradleのユーザーガイドの12章まで読んでいたログを投下

たまにはWeb日記っぽく、 http://gradle.monochromeroad.com/docs/userguide/userguide.html をしばらく読んでいたのでそのログを投下。 2018/02/12 タスクのグラフ構造 マルチプロジェクトのビルド サブプロジェクトごとにビルドしなおすかが決められるのは…

「DataBindingのコードを読む」のスライドが面白かったのでDataBindingについて少しまとめました

speakerdeck.com 上のスライドが面白かったため、DataBindingについてスライドを読んでわかったことや追加で調べたことをメモしました。 時間が足りず、書いて動かしたわけじゃないし雑なのですが、自分用のメモとしてはないよりましでしょう*1。 Androidア…

マーケティングオートメーションツールとアプリエンジニア ~プッシュ通知・お知らせダイアローグの運用自動化のためのお仕事~という題で発表しました

ふだんやっているお仕事の中から印象的だった事柄をオムニバス方式でお話しさせていただく体の発表をさせていただきました。 speakerdeck.com 技術的にはGradle入門とGCM, FCMを使うとプッシュが届くけど何が起こっているのか、みたいなお話がありますがお仕…

Media Streaming on Androidを見て面白かったので細々調べたメモ(動画のストリーミング配信プロトコル周り)

speakerdeck.com このメモはセッションで話された内容の書き起こしではなく、上記のスライドの内容が面白かったので自分で勝手に調べたメモです。 調べた結果とセッション中と用語のずれがある場合は、Abema TVのCode IQのプレス記事*1を優先させていただき…

「はじめてのOSコードリーディング UNIX V6で学ぶカーネルのしくみ」を読みました

Javaの並行処理の後はこちらの本を読んでいました。 はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus)作者: 青柳隆宏出版社/メーカー: 技術評論社発売日: 2013/01/09メディア: 単行本(ソフトカバー)購入: 56人 クリ…

「Java並行処理プログラミング ―その「基盤」と「最新API」を究める」を読みました

去年の11月はブログを一切書けていなかったのですが、その間*1何をしていたかというと主に下記の本を読んでいました。 Java並行処理プログラミング ―その「基盤」と「最新API」を究める―作者: Brian Goetz,Joshua Bloch,Doug Lea出版社/メーカー: ソフトバン…

RackがよくわからなかったのでRackアプリケーションをUnicornで動かしてnginxからリクエストを転送してみた

この記事はRuby Advent Calendar 2017の23日目の記事です。 はじめに Webアプリケーションフレームワーク(WAF)といえば、 薄いアプリケーションをサクッと書くのに適しているsinatra なんでもあり気味なRuby on Rails など、rubyで有名なものだけでもぱっと…

Cocos2d-xの勉強会のスライドを一通り辿ってみたときの話

この記事は〇〇勉強してみた Advent Calendar 2017の19日目の記事です。 はじめに 現在お仕事で開発しているライブラリはiOS/AndroidだけでなくCocos2d-xやUnityなどのプラットフォームに対し、クロスプラットフォーム展開をしており、その一環としてCocos2d…

adbのCLIでAndroidのエミュレータを起動したりアプリの起動、テストの実行をしたりする

この記事はAndroid Advent Calender その2の15日目の記事です。 今回は https://developer.android.com/studio/command-line/adb.html https://developer.android.com/studio/run/emulator-commandline.html https://developer.android.com/studio/test/comm…