APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

kubernetesソースコードリーディング 第4回

今回はちょっと趣向を変えて、テーマはDockerです! kubernetesのソースコードからは少々離れてしまいますが、 コンテナランタイムもkubernetesの重要なコンポーネントの1つなので知っておいて損はないはず…! アジェンダは以下になります。 コンテナ仮想化…

GolangのgrpcwebでCORSエラーが出る時はOriginFuncを確認しよう

はじめに 先進サービス開発事業部の山岡です。 小ネタですがgrpcweb *1 の検証をしている時にCORSエラーでハマったので対処法をメモしておきます。 *1:https://github.com/improbable-eng/grpc-web/tree/master/go/grpcweb

GolangでgRPCを試してみる

はじめに 先進サービス開発事業部の山岡です。 仕事で使う機会がありそうなのでgRPC *1 に入門しました。まずは定番のHello, Worldからやってみたのでその内容を共有したいと思います。 *1:https://grpc.io/

async/await を使って連続する非同期処理の整合性を保つ

はじめに 先進サービス開発事業部の高橋です。 JavaScriptの非同期処理の終了タイミングを計るという行為は少し癖があって扱いにくい印象がありましたが、ES2017から追加されたasync/awaitを使うとかなり楽に実装できるようになりました。 そこで、複数の連…

GoPacketでネットワークと直接お喋りしよう

はじめに 先進サービス開発事業部の山岡です。 Go言語は標準でかなり強力なネットワーク用のライブラリーがありますが、GoPacket *1 を使うと更に細かいところをイジれるようになります。 仕事でパケットをごにょごにょしたところ結構面白かったのでここで紹…

LinuxのNetwork Namespaceで手元にネットワークテスト環境を作る

はじめに 先進サービス開発事業部の山岡です。 最近Raw Socketで通信するプログラムを書いているのですが、試しにパケットを送って他所と上手く通信できるか確認したい時に実機を使うのは大変面倒です。こういった場合にLinuxのNetwork Namespaceを使えば手…

kubernetesソースコードリーディング 第3回

前回、前々回に引き続き、社内kubernetes勉強会が開催されました。 今回のテーマはkube-scheduler! アジェンダはこちらです。 kube-schedulerの概要 kube-schedulerの実装 Predicateの実装 Prioritizeの実装 Scheduler Extender 「要件に合った自分好みのSc…

AWS IoT Greengrassを使ってみる(その2)

はじめに Lambdaコードの準備 AWS Lambdaへの登録 AWS IoT GreengrassへのLambda登録 IoT デバイスへのデプロイ サブスクリプションの登録 テスト はじめに どうも、システム基盤開発室という部署に所属してる社員番号666です。 前回は AWS IoT Greengrassを…

AWS IoT Greengrassを使ってみる(その1)

はじめに 今回やろうとしていること 用意するもの AWS IoT Greengrass って何? AWS IoT Greengrass の利用開始 Greeengrass ソフトウェアの準備 Greeengrass 起動 はじめに どうも、システム基盤開発室という部署に所属してる社員番号666です。 前回はラズ…

社内でkubernetes勉強会を始めて、kubernetesのソースコードリーディングに入門しました

はじめに 第1回のざっくりまとめ 第2回のまとめ client goでCLIツールを作ろう kube-budilerでCustomController入門 リファレンス実装で学ぶInformer Framework 聞いた感想 はじめに コンテナグループの安藤 @chataro0です。 5月から隔週で有志とコンテナ/Ku…

Certified Kubernetes Administrator(CKA)を取得しました ~その2

はじめに システム基盤サービス事業本部 技術開発部 コンテナGの安藤です。 先日、記事を書いた松崎に続き、 私もCertified Kubernetes Administrator (CKA)を取得しました。 二番煎じになってしまいますが、いくつか状況が違ったところもあったのでその辺り…

ラズベリーパイを使ってセンサーで遊んでみる

Raspberry Pi 3 Model B+ 自己紹介 はじめに ラズベリーパイのセットアップ Wi-Fi SSHD sshd_config ラズパイとGrovePi+の接続(物理的) GrovePi+接続のセットアップ GrovePi+にLED 取り付け GrovePi+にデジタル温度・湿度センサー 取り付け GrovePi+に水分セ…

EC2でインスタンスを再起動せずディスク領域を拡張する(Amazon Linux)

AWS

はじめに 先進サービス開発事業部の山岡です。 1年半ほど前に趣味でソリューションアーキテクト・プロフェッショナルを取得したものの最近とんとAWSと戯れていなかったのですが、再起動無しでEC2の拡張ができることをClassmethodさんの記事 *1 で知り興味を…

goenvとdirenvでGo Modules有無両対応な開発環境を作る

はじめに 先進サービス開発事業部の山岡です。 Go ModulesはGo1.11から実験的にサポートされ1.13から正式ツール(デフォルトで有効)となる予定である依存関係管理機能です *1 。これは export GO111MODULE=on することで使えるようになり、詳細は省きますが…

JavaScriptで配列の初期値に空の配列をセットする際に気をつけるべき点

先進サービス開発事業部の高橋です。主にフロントエンドの開発を担当しています。今回はちょっとした小ネタを。 タイトルは意味が伝わりにくいですが、要は以下のような2次元配列をあらかじめ作りたかったということです。 [[], [], [], ...] // 配列の中に…

Certified Kubernetes Administrator(CKA)を取得しました

はじめに システム基盤サービス事業本部 技術開発部 コンテナGの松崎です。 Certified Kubernetes Administrator (CKA)を取得しました。 これから受験される方向けに受験記録を残そうと思います。 自分のバックグラウンド インフラエンジニア5年目 主な経験…

[Ansible] EX407 (Red Hat Certificate of Expertise in Ansible Automation) 受験体験記

■ はじめに はじめまして みなさん、はじめまして。システム基盤サービス事業本部 技術開発部 自動化グループの横地(@akira6592)です。 普段は、主にネットワーク自動化に関する業務を行っています。 その他、個人ブログ「てくなべ」を書いたり、Ansible ユ…

Google App Engineの2nd Generationとは?

はじめに 先進サービス開発事業部の山岡です。 Google App Engine(GAE)は所謂PaaSでサーバーやネットワークの管理を気にせずアプリの開発に集中することができます。 最近これに関するホットな話題として2nd Generationへの移行がありますが、色々と情報が飛…

GAE/Go1.9から1.11にマイグレーションしようとして躓いたところ

はじめに 先進サービス開発事業部の山岡です。 GAE/Goは1.6, 1,8, 1.9, 1.11, 1.12(beta)と随時新しいGolangバージョンに対応してきていますが、1.11からはGAEのバックエンドがgVisorベースの2nd Generationとなり大きな変更点が複数ありました。 *1 1.11で…

Cloud Native Days Fukuoka 2019 イベントレポート (1/2)

はじめに Conference KeyNote Welcome Talk from Fukuoka 飛び込もう、Cloud Nativeの世界 CacooのKubernetesによるマイクロサービスアーキテクチャ Kubernetesはキャズムを超えるのか Kubernetes を利用したコンテナ開発のススメ セッション CircleCI 2.0を…

CI環境で react-scripts build が失敗する場合の場当たり的対処方法

はじめに 先進サービス開発事業部の山岡です。 開発時にローカルの環境では問題無く react-scripts build できるにも関わらず、CircleCIで同様にビルドを行うと Failed to compile. というエラーが発生してしまうという問題が起きました。 同じ問題にハマっ…

if-up2019に参加してきました。

はじめに 先進サービス開発事業部のKunimoriです。12年間ネットワーク・サーバ基盤を中心にエンジニア〜PMまでのキャリアを積みました。 その後、新規プロダクトの立ち上げ〜事業責任者として「インフラエンジニアの苦悩からの解放」をビジョンに掲げながら…

実サーバー無しでLet's Encryptの証明書を発行する

はじめに 先進サービス開発事業部の山岡です。 先日所用で手元の端末にLet's Encryptの証明書を発行したのですが、これには公式推奨ツールであるcertbotを使う必要があります。 単純にインストールする方法の他にDockerを使って使い捨てることもでき、今回そ…

自社運営のWebアプリをPWA化した際にハマった話(OAuthなど)

はじめに 先進サービス開発事業部の高橋です。主にフロントエンド開発を担当しています。今回は私たちの部署で運営しているソーシャルRSSサービス「NEIGHBORS」をPWA化した際にやったことを書いていこうと思います。 NEIGHBORS | ひとりの興味をみんなの知識…

WSLの色を見やすくする

はじめに Windows Subsystem for LinuxはWindows環境でLinuxのネイティブバイナリーを動かすことができ非常に便利なのですが、デフォルトで設定されている色はギンギンでとても見辛いです。 公式から編集できるツールも用意されているようですが、面倒な場合…

mercari.go #6 参加レポート

はじめに 先進サービス開発事業部の山岡です。 今日はいつもと趣向を変え、先日参加させて頂いたmercari.go #6のレポートを書きたいと思います。 ※資料は後日公開されるとのことなので公開されたらそちらへもリンクを貼ります JavaとGo言語を比較した話 @ken…

GAE/GoのテストでDatastoreの状態を確認できるようにする

始めに 先進サービス開発事業部の山岡です。 GAE/Goでは goapp test を使うことでローカル環境に仮のGAEを再現しDatastoreのアクセスや非同期処理の挙動を確認することができますが、テスト終了後にその環境は自動で破棄されてしまいDatastoreがどのような状…

GCP DatastoreのKindを一括削除する

はじめに 先進サービス開発事業部の山岡です。 GCP DatastoreはSQLコマンドを直接叩いてデータを操作する、というようなことができません。一応GUIから内容を確認して削除したりすることはできますが、簡易的なものであり特に大量のデータに対しては全くの無…

EKS上にConcourse CIをデプロイする

はじめに 先進サービス開発事業部の山岡です。 今回はEKSで構築したKubernetes上にCI/CDツールをデプロイしてみた結果について書きたいと思います。「Kubernetesで上手く使えそうか?」という観点の簡易的な動作確認を行う内容なので、このまま商用利用する…

[StackStorm] mysql Pack 使ってみた

DBから取得した値をslackに返す、StackStormのPack検証記事(mysql編)