技術ブログ

Developers's blog

AWSを利用した弊社の開発環境

2021.03.26 伊藤 美得理
利用事例
AWSを利用した弊社の開発環境

目次

  • AUCの使用ツール
  • GitHub、CircleCI使用までの流れ
  • AWSの構成図
  • まとめ


AUCの使用ツール

弊社ではGitHubとCircleCIの2つのツールを利用し、DevOpsの概念を実現しております。
DevOpsとは、開発者(Development)と運用者(Operations)が強調することで、ユーザーにとってより価値の高いシステムを提供する、という概念です。

 開発者は、「システムへ新しい機能を追加したい」
 運用者は、「システムを安定して稼働させたい」

この2つの思いが対立することは多く、ユーザーにとって最善の価値提供を妨げる原因となります。システムにとって開発を続けることも、安定して稼働させることも重要です。
そのため、開発手法やツールを選定し、開発者と運用者が連携して、運用のしやすい開発を行うことが必要となります。

弊社では、GitHubとCircleCIの連携によりDevOpsの概念を実現し、システムによってユーザーのビジネスの価値を高め、その価値を迅速にエンドユーザーに届けております。


GitHub、CircleCIまでの流れ

弊社では、2014年からソースコードをGitHubで管理しております。ソースコードは大切な資産であるため、弊社のグローバルIPアドレス以外からのアクセスは完全に遮断したいと導入当初考えておりました。そのため、導入当初はGitHub社からライセンスを購入し、弊社で構築したAWS環境にインストールして利用しておりました。(セルフホストのGitHub)

しかし、クラウドホストのGitHubを利用されているお客様が増加したことで、弊社もクラウドホストのGitHubを利用する機会が増加しました。
一方で、IPアドレス制限を行い、セキュリティを担保する方針を変更し、全てのソースコード管理をクラウドホストのGitHubへ移行することは考えておりませんでした。

そんな中、GitHub社より、セルフホストとクラウドホストの両方を使えるプランを提案していただきました。プラン変更による追加費用が少額であったこともあり、セルフホストのみのプランから、セルフホストとクラウドホストの両方を利用できるプランに変更し、現在も利用しております。

2018年にリリースされたGitHub Enterprise 2.15で導入されたGitHub Connectは、セルフホストとクラウドホストを相互接続するツールで、セルフホストとクラウドホストの両方で必要なコンテンツの効率的な検索を可能にしました。また、GitHub Connectにより、セルフホストで運用する際の柔軟な管理機能とともに、クラウドサービスでの拡張性の両方の利点を活用できます。

そして、弊社では、CI/CDをさらに効率的に進めていくため、2018年からCircleCIを利用しております。
GitHubと同様、弊社のグローバルIPアドレス以外からのアクセスを遮断するため、CircleCIでもセルフホストを利用しています。CircleCIのセルフホストでは、自社独自のCI/CDのニーズに合わせてコンピュートオプションを拡張できます。また、システム管理者によるフルコントロール、フルカスタマイズが可能なため、セキュリティのフルコントロールや、自社のメンテナンススケジュールに合わせた更新間隔にすることが可能です。


AWSの構成図

GitHubとCircleCIの連携により、テストの自動化が可能になります。コードをコミットするたびに、CircleCIによって自動的にビルドとテストのプロセスが実行され、そのビルドのステータスがGitHubのブランチに表示されます。テスト工数の削減により、システムへの機能追加のハードルが下がります。
弊社が利用しているGitHubとCircleCIは、ともに弊社にて構築したAWS上にて動いており、お互いを連携しています。

AWS上の構成図は以下の通りです。

サーバー構成図.png

このように、弊社はGitHubとCircleCIを活用し、迅速な開発サイクルを安全に行っております。


まとめ

セルフホストは、クラウドホストに比べて利用価格が高額ですが、大切な資産であるソースコードを外部から守るという目的においては、必要不可欠なものとなります。GitHubの利用におけるホストプラン変更の例において、クラウドホストを一切利用せずにずっとセルフホストだけを利用するという選択をすることもできました。何かを変化させることは、コストも手間もかかります。しかし、弊社では、常に変化し続け、最適なものを模索していくことが重要であると考えております。変化無しには常に最適なものを模索していくことはできません。

また、弊社では、お客様の要望に対して、100%その通りに応じるのではなく、様々な影響や、本当に必要な要件は何かを考え、最善策を見つけ出すことが重要であると考えております。弊社ではこれを「お客様絶対主義」ではない、「お客様中心主義」としています。

これらの「常に変化を求める」姿勢と、「お客様中心主義」は弊社の理念の一つです。

システムを開発する上で効率化につながるツールは今後も積極的に採用していきたいと考えております。


参考文献

GitHub - GitHub Enterpriseとは
GitHub Enterprise 2.15をリリース
CircleCI セルフホストランナー
GitHubとの継続的インテグレーション

関連記事

機械学習で採用予定人数を予測する。狙い目企業はどこ?

2022年卒大学生の皆さん! コロナウイルスが流行していることで就活にどういう影響があるのか、とても不安ですよね。 今回は業界ごとに採用人数を予測し、「どの業界が狙い目なのか」機械学習を使った分析手順を紹介します! 目次 概要 手順 今後の課題 1.概要 データセットの内容 分析対象の7業界・各4企業 化粧品 電子機器 商社 不動産 金融 サービス IT・情報 説明変数と目的変数 特徴量 年初の株価、決算報告書提出翌日の株価、一株あたりの純資産額、従業員数

記事詳細
機械学習で採用予定人数を予測する。狙い目企業はどこ?
利用事例 機械学習
機械翻訳の歴史と今後の可能性

目次 機械翻訳とは 機械翻訳の手法 現在の機械翻訳の欠点 欠点が改善されると 今後の展望 機械翻訳とは 機械翻訳という言葉を理解するために2つ言葉を定義する。 系列 : 記号の列のことで自然言語処理の世界だと文を構成する単語の列になる。 系列変換モデル : 系列を受け取り、それを別の系列に変換する際の確率をモデル化したもの。系列変換モデルはseq2-seqモデルとも呼ばれている。 この2つの言葉から機械翻訳は、ある言語の文章(系列)を別の言語の文章(系列)

記事詳細
機械翻訳の歴史と今後の可能性
利用事例 機械学習 自然言語処理
機械学習で為替予測(FX)をしてみる

こんにちは。 皆さんはFXでお金を稼ぎたいと思ったことはあるでしょうか?もしFXでこれまでの生活を一変させるような額のお金を稼ぐことができたら夢のようですよね? 今回はそんな夢を目指して、為替の値動きを機械学習で予測してみたというお話をしたいと思います。 目次 概要 手順 結果 今後の課題 1 概要 使用したデータセット:OANDA APIを用いて取得 https://www.oanda.jp/fxproduct/api (デモ口座を開設することにより、無

記事詳細
機械学習で為替予測(FX)をしてみる
利用事例 機械学習
データから簡単にレポート作成!  ーARRIA NLG PLCで自然言語生成ー

皆さんはレポートを作成する際、どのような方法で作成していますか? 膨大な量のデータを読み解き、文章を考えて、何かうまくまとまらない...... もっと簡単にできたらいいのに!と思ったことはありませんか? この記事では、Arria NLG PLCのデータから文章を生成する技術について紹介します。 1 ARRIA NLG PLCとは? ARRIA NLG PLCは2009年に設立した企業です。しかし、その技術は30年間の科学的研究に基づいたもので、ARRIA

記事詳細
データから簡単にレポート作成!  ーARRIA NLG PLCで自然言語生成ー
利用事例 機械学習

お問い合わせはこちらから