転職して1年経ったので振り返ってみた2016年5月

今の会社に2015年5月に入社してから1年経ちました。
あっという間だった気もするし、すごく長かった気もします。
自分がどのくらいの仕事をして、何が新しくできるようになったのかを整理したいと思い、箇条書き形式でまとめてみました。
今の会社ではAWSを使っていて、AWSを使ったインフラ全般の構築運用を行うエンジニアとして働いています。
入社前はAWSもEC2をちょっと触ったことがあるぐらいで、インフラの知識もそんなに自信がない状態でした。(今もないですが…w)
AWSエンジニアとしてはまだまだジュニアだと思いますが、1年前には何もできなかったことを考えると、少しはできることが増えてきたなぁと思います。
会社の体制も大分変わり、1年前はエンジニアがCTOとインターンのみでしたが、私の他複数名のエンジニアが採用され、エンジニアチームができ、外部委託している部分を大幅に巻き取って、自分たちのプロダクトを自分たちで責任を持って育てる土壌ができたのかなと思います。

できるようになったこと

日々の設定変更作業

  • Ansibleの初歩的な利用法を学び、初歩的にAnsibleを導入して設定業務が効率化された。
    • サーバ新規構築時のエンジニアのアカウント作成、公開鍵配布、sudo可能化、個人ファイル配布がAnsibleで自動実行できるようになった。
  • Python AWS SDK (Boto3) を利用して、AWSの管理効率化スクリプトを幾つか作成できた。
    • 毎日すべてのEC2のAMIを自動バックアップ
    • 指定した世代より古いAMIとEBS Snapshotを自動削除
    • 各ELBに紐付いているEC2インスタンスの表示名、Public IP、ヘスルステータスを表示
    • ELBに紐付いているサーバを切り離したり、紐付いていいないサーバを接続させる
    • 指定したEC2のAMIを取得し、そのAMIから任意の台数のEC2インスタンスを作成

監視

  • Zabbixを導入し、一元的な監視が可能になった。
  • Zabbixが検知したトリガーをSlackに流し、タイムリーに社内に報告される体制ができた。
  • 一部のエラーに対してはZabbixで検知した障害をトリガーに復旧スクリプトを実行して自動復旧をすることができた。
  • Zabbixのグラフやスクリーン機能を利用することにより、プロダクトマネージャの上司が提携先に性能監視状況を説明することができるようになった。

スケーリング・パフォーマンスチューニング

  • クラウドMSPに連絡しないとサーバがスケールアウト出来ない状況だったが、手元のスクリプトで任意に手動スケールアウトできるようになった。
  • Prefork駆動のAPIサーバをWorker駆動に変更し、サーバ1台あたりの処理量が大幅に増加した(5倍以上)。
  • 多数のサーバの仮想化方式をPVからHVMに変更し、m4などの新しいインスタンスタイプが選択できるようになった。拡張ネットワーキングも自動で適用され、たぶん処理スピードも向上した。
  • と同時に、ステージング環境や開発環境の最小インスタンスサイズにt2.microが選べるようになった。それまでt1しか選べなかった。

開発環境

  • ステージング環境を本番環境と同様の構成にして、コンポーネント間の動作確認がきちんと行えるようになった。
  • ステージング環境のDBのデータを本番と同様にすることができた。
  • Let's Encryptを導入し、ステージング環境のHTTPS接続を無料で実装することができた。

コスト

  • クラウドMSPのパッケージング契約から請求代行に移行し、月額費用の削減が出来た
  • 顧客企業のキャンペーンでバーストして対応した際に、スケールアウトによる追加費用を計測し、社内に共有できるようになった

自分の成果ではないがエンジニアチームができるようになったこと

  • Circle CIを使って、一部の領域で楽勝デプロイができるようになった。GithubのPull RequestをマージしたらCIが実行され、決まったテストを自動で行い、問題ない場合にデプロイされる。
  • リリース時にリリース内容、リリース順序、リリース手順を明記して社内に掲示することができるようになった。
  • アプリケーションの開発を外部に委託していたが巻き取り、自主性の確保とコストダウンを行うことができた。
  • re:dash によるデータ分析を営業などの非Tech系のチームに提供できるようになった

できていないこと、やりたいこと

挙げればキリが無いので、手をつけたところでできていないところをいくつか…。
  • 残っているPV型のEC2インスタンスをすべてHVM型で置き換え
  • 複数役割を持っているEC2インスタンスの完全退役
  • オートスケーリング
  • Zabbixの状態異常検知をトリガーとした自動復旧機能をもっと増やす
  • スポットインスタンスの実践活用
  • インフラ系ドキュメントの充実
  • ログ集約、分析システム(fluentd,ElasticSearch等)の導入


読んだ本について

AWSの本は入社前の休暇に、これらの本を精読しました。今振り返ると2冊しか読んでませんでした…。
それ以降アップデートできていないので、お財布と相談して新しい本を読んでみたいと思います。
でもAWSはネット上にたくさん情報があるから、それが自分で整理さえできれば、本を買わなくてもなんとかなる気もしますが、まぁ「読んだぞ!」という気持ちは大事ですよね。

挑戦意欲を育んでくれたり、達成感をもたらしてくれたりしますので。
ちなみに下の本は発売当時としてはかなり良書だったのかと思いますが、情報が少し古いので、現在の状況との差分を念頭に置きつつ読むか、他の本で代替することをお勧めします。


Amazon Web Services クラウドデザインパターン実装ガイド 改訂版


よくわかるAmazonEC2/S3入門 ―AmazonWebServicesクラウド活用と実践 (Software Design plusシリーズ)

コメント

このブログの人気の投稿

オライリーのDocker本を読んだり色々な記事を読んだりしたので自分なりにまとめる(Dockerfileについて)

一部のユーザだけ NET::ERR_CERT_REVOKED でサイトにアクセスできない

[#CentOS][#Apache] CentOS6 でApacheが起動できない