APC 技術ブログ

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

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

Terraformを使ってEKSを構築する

始めに 先進サービス開発事業部の山岡です。 Terraformを使ったEKSの構築を試してみる機会があったのでEKSに関する解説とコード、注意が必要と思ったポイントについて書きたいと思います。 EKSの解説 EKSは何をしてくれるのか? EKSはKubernetesのマスターノ…

Golangの独自型を使い引数の順番ミスを減らす

先進サービス開発事業部の山岡です。 Golangには他のプログラミング言語と同様関数があり、これに引数として値を渡すことで見通し良く様々な機能を作ることができます。しかし関数に複数の引数を渡す場合、時折順番間違いが問題となることがあります。 例え…

testeratorで高速にGAE/Golangのテストをしよう

始めに 先進サービス開発事業部の山岡です。 GAEにはローカルでクラウドの環境をそこそこ再現できるSDKが用意されており、疑似的にDB(Datastore)等が再現され動作確認を行うことができます。実環境へのアップには1,2分はかかり、ちょくちょくアップしながら…

NEEDLEWORKで any any 試験の実行を検討する

始めに 先進サービス開発事業部の山岡です。 弊社製品の一つにファイアーウォールのポリシーテストを自動化するNEEDLEWORKがあります。詳細はリンクを見て頂くとして、簡単に言えばCSVに試験シナリオ(プロトコルやSrc/Dstアドレス等々)を定義しそれを実行…

Datastore Import/Exportの結果をレポートする

先進サービス開発事業部の山岡です。 GCP DatastoreのバックアップにはImport/Exportというサービスを使いますが、これには結果をレポートする機能が無く運用する上で不便です。今回APIをポーリングしSlackにレポートする仕組みを作りましたのでその知見を共…

if文を読みやすくしよう

先進サービス開発事業部の山岡です。 例えばGAEでバッチ処理を行う際に、商用環境では必ず実行・それ以外の検証環境等では手動起動でのみ実行したいという要件があった時のことを考えてみましょう。 どの環境であるかは appengine.AppID(ctx) でProjectのID…

Datastore Import/Exportの紹介(2/2)

始めに 先進サービス開発事業部の山岡です。 前回の記事の続きで、Datastore Import/Exportによる定時バックアップについて書きたいと思います。 旧世代の仕様ではGAEのcronを使い特定のURLを叩くことで起動することができました。新しい方式でも大筋は同じ…

Datastore Import/Exportの紹介(1/2)

始めに 先進サービス開発事業部の山岡です。 私がバックエンドを開発しているNEIGHBORSはAppEngine(Go)の上に構築されており、データベースはCloud Datastoreを使用しています。 Datastoreはスケーラビリティに優れたNoSQLデータベースで、容量が無制限、Ent…

シェルスクリプトでAppEngineへ簡単・安全にデプロイする

始めに 先進サービス開発事業部の山岡です。 私がバックエンドを開発しているNEIGHBORSはAppEngine(Go)の上に構築されています。 デプロイやトラフィック切り替えの際にはSDKに付属しているappcfg.pyやgcloudを使用することになりますが、極々簡単なスクリプ…