DEVELOPER’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との継続的インテグレーション

関連記事

通信をすべてNAT Gatewayを通していませんか?棚卸しによる70%のコスト削減に成功!

目次 背景 原因究明 解決策 結果 背景  AUCでは、SRE活動の一環として、AWSコストの適正化を行っています。 (技術ブログ『SRE:コスト抑制のための異常値検知機構の実装』) コスト適正化における課題は、大きく分けて下記の4つです。 ①コストは月末にチェックしており、月中でコストが急激に上昇した場合発見が遅れてしまう。 ② 不要なリソースが放置されていたり、新たなリリースによって生じたコストを確認していない。 ③ AWSが提供するベスト

記事詳細
通信をすべてNAT Gatewayを通していませんか?棚卸しによる70%のコスト削減に成功!
AWS SRE 利用事例
SRE:コスト抑制のための異常値検知機構の実装

目次 実装前の課題 採用した技術と理由 実装した内容の紹介 改善したこと(抑制できたコスト) 実装前の課題  SRE(Site Reliability Engineering:サイト信頼性エンジニアリング)とは、Googleが提唱したシステム管理とサービス運用に対するアプローチです。システムの信頼性に焦点を置き、企業が保有する全てのシステムの管理、問題解決、運用タスクの自動化を行います。 弊社では2021年2月からSRE活動を行っており、セキュリ

記事詳細
SRE:コスト抑制のための異常値検知機構の実装
AWS SRE 利用事例
機械学習で採用予定人数を予測する。狙い目企業はどこ?

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

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

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

記事詳細
機械翻訳の歴史と今後の可能性
利用事例 機械学習 自然言語処理

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