GitLab master Push エラー解決

最近弊社ではソース管理をGitLabに移行してまして。

ちょっと多く悩まされたのが、

"Please make sure you have the correct access rights"

この子。

 

アクセス権限確認してねって言ってるんだが、権限はしっかりある。

プロジェクトオーナーなので問題ないはず。

 

......

 

なんだろう。

 

...

 

とりあえず、protect リポジトリでmaster削除してみる

 

...

 

関係ない。

 

結果の解決策とりあえずKeyファイル作成し直し。

 

ssh-keygen -t rsa -C "GitLabのメアド" -b 4096

 

で、pub コピってGitLabに貼り付け

 

その後ローカルで

ssh-add ~/.ssh/id_rsa

 

ってやってmaster Pushでいけた。

 

無駄に悩まされた!

API Blueprintを使ってみた

基本的受託開発時は設計書類は完全にExcelベースで作成していた。

そろそろExcelから脱却したいなと思い、API 設計書をAPI Blueprintを使って作成してみた。

 

 使い方としては特に問題はなさそう。

下記現在のURL

http://ec2-13-231-41-178.ap-northeast-1.compute.amazonaws.com/

※本件は受託案件ではなく、自社サービス向けのAPIなので公開してます。

 

コマンドから試しにAPIを叩くことも可能。

ただ、弊社は開発拠点がベトナムにあることから、設計書を翻訳、というプロセスが存在する。

そこの管理さえしっかりと行えれば、Excelからの脱却は可能そう。

GitLabとAWS Codecommitの連携

GitLabでソース管理している物を、AWSのCodebuild + CodeDeploy + CodePipeline

でもろもろ自動化がしたかった。

 

GitLabをAWS上からは選べなかったので、GitLab -> Codecommit を自動連携するようにしてみた。

結構簡単で、

Codecommit、GitLabでプロジェクト作成、

AWS IAM ユーザ作成、Codecommit Fullアクセス権限を付与し、作成

 

IAMユーザ画面の認証情報タブ内、一番下の「AWS CodeCommit のHTTPS Git 認証情報」というところの生成ボタンを押してユーザ名、パスワードを取得する

 

GitLab、プロジェクト内設定 -> リポジトリから「Mirroring repositories」を選択

Push設定にして、パスワードを選択、ユーザ名入れるところなかったので、

https://"ユーザ名"@...

という形でセット

 

これでGitLabにPushしたソースは自動でCodeCommitにもあがる

 

AWS ELB スティッキーセッション

仮リリースしてたAPI サーバー冗長化するために、セッション管理をどうしようかなと思った。

CakePHP3 で構築してたので、DB管理にしてもよかったが、AWS ELB置いといたのでスティッキーセッションというのを試してみた。

 

こんな簡単なの?ってほど設定は簡単で、

ターゲットグループの維持設定を有効化するだけ。

 

後はよしなにAWS君がやってくれる。

簡単。

AWS S3 + CloudFront + WAF

f:id:Toshi_bw:20181022111018p:plain

 

株式会社ブリスウェル、Toshiです。

 

とあるAWS上で稼働している業務システムで、写真の表示がとても遅いと大量の声があがってきたため、構成を変えてみた。

 

  •  変更前

AWS EC2 - EBS で、写真をひたすらEBSに置いていた。

EC2が複数構成なので、File ServerとしてEC2をmountしていた。

(ELB スティッキーセッション入れようかな。)

 

  • 変更後

EBS -> S3 に写真ファイルを移行

(既存の置き方がとてもよくなかったため、同時にファイルパス構成も変更)

S3コマンドでひたすら待つ。。。

もっと良い方法がきっとあったはず。一度キリと思い、そのまま実施。

 

EC2からアクセスするのはS3ではなく、CloudFrontに。

結果速度は3倍以上に向上。

S3やCloudFront URL直アクセスを禁止するために、簡易的にWAFのQuery stringを使用。

 

S3 mountと、goofysも試してみたけど、CloudFrontの方が全然早かった。

 

次回はEC2 - CloudFront - WAF - S3の設定、実際のスピード変化の値について載せます!