IT未経験中途入社の僕がAWSの虜になるまで①

7 min read読了の目安(約6400字

簡単な自己紹介

こんにちは。
mn87と申します。
今まで別サービスで投稿を行っていたのですが、本日からZennに投稿することにしましたので、初投稿です。

現在某IT企業に勤めており、業務でもプライベートでもAWSを使っています。
ですが、実はタイトルの通り今の会社には未経験の中途入社だったので、当初はAWSというサービスはおろか単語すら知りませんでした。
そんな僕が今やすっかりAWSの虜になってしまい、AWS認定11冠を目指したいと思うまでになりました。(Alexaが廃止なので11冠です)

今回はAWSとは無縁の世界から来た僕が、同じような境遇の方の参考になればと思い、ここまでの道のりを振り返ることにしました。長くなりそうなので、2回に分けたいと思いますが、興味があればご覧頂けるとうれしいです。

ちなみに

  • 前職はスポーツ関係の仕事だったので、ITのことはまったく知りませんでした。
  • 本記事作成時点ではIT経験3年目、AWS歴1年半です。
  • 好きなサービスはLambda、Amplify、CloudFormationなど開発や運用の負担を軽減し、自動化できるサービスです。

目次

今回は1~4の内容です。

  1. AWSを触るきっかけ
  2. 初めてのAWS
  3. AWSの基礎を勉強
  4. AWS業務始まる
  5. AWS保守運用チーム発足
  6. もっとAWSを知りたい!
  7. 夢ができた
  8. 過去、今、これから
  9. 最後に

1. AWSを触るきっかけ

業務指示です。
自分でやりたくて始めたわけではありませんでした。
当時会社では少しだけAWSを使用していましたが、本格的な運用には至っておらず体制もできていませんでした。

当時僕は入社半年にも満たない新人でしたが、そんな僕になぜか上司から
「今後会社でAWSを本格運用するにあたって、君に中心になってもらうからよろしく!」
と言われました。

その時の心境です。
「ん?」
「AWSって何?」
「俺まだ入社半年未満で研修終わったばっかりなんだけど」
はい、かなり混乱していました。
ただ、上司はとってもいい人(本当に)だったので、
「とりあえず代表的なサービスのチュートリアルをやってみるといいよ」
と教えて頂き、1か月半ほど勉強する猶予もありました。

こんな感じでいきなりAWSという謎のサービスを触り始めることになりました。
本当に大丈夫なのでしょうか・・・?

2. 初めてのAWS

最初に触ったのは確かEC2だったと思います。
まずはチュートリアルに従って言われるがままにEC2インスタンスを作成しました。
今だと以下のチュートリアルだと思いますが、当時はもっとシンプルでした。
チュートリアル: Amazon EC2 Linux インスタンスの開始方法 - Amazon Elastic Compute Cloud

感想

「で?何ができたの?」
はい、何も分かりませんでした。
手順通りにEC2インスタンスを作成し、runningになりましたが、僕の中では
「だから何?」
の状態でした。
そりゃそうです。
だって「仮想サーバー」以前に「サーバー」という単語の意味もよくわかっていなかったんですから。
というわけで、AWSを触りながら「クラウド」に関する勉強も併行してする必要がありました。

クラウドって何さ?

言葉は知ってましたよ。
でも「クラウド」って何?と聞かれても何となく
「インターネット上にデータを保存しておく」
ぐらいのイメージしか持っていませんでした。

実はAWSを始めるとき、最初につまづいたのはこの「クラウド」の理解についてでした。
ググると「仮想サーバーが~」とか、「仮想ストレージが~」という記事がたくさんありましたが、なかなか納得できませんでした。
当時の心の声です。
「いや仮想なのはわかったけど、じゃあ実際のデータはどこに保存されるのさ?」
これです。これが分からなかったんです。
当時の僕にとってデータはHDDやUSBに保存するものという認識だったので、クラウド上にデータが保存されるとか、クラウド上でサーバーが起動すると言われても「実態」が何なのかがわかりませんでした。

結局物理的マシンかい

はい。
結局行きつくところは物理的なマシンでした。
クラウド上にデータを保存する = クラウドサービスが持っている物理的マシンにデータを保存する
だったのです。
そしてここから「クラウド」という言葉の意味も理解しました。
「雲のように、見えるけど触れることができないもの」
これをクラウドサービスに言い換えると、
「サービスとして使用できるけど、物理的マシンはどこにあるか利用者にはわからないのも」
僕はこう捉えました。

実際AWSが所有する物理マシンがあるデータセンターと呼ばれる施設は一部の関係者以外非公開になっており、僕たち一般の利用者がその場所を知ることはありません。
でも僕たちはEC2で仮想サーバーを作成したり、S3というストレージサービスにデータを保存することができます。
クラウドの概念がわかった瞬間、視界がクリアになったのを覚えています。

3. AWSの基礎を勉強

クラウドの概念がわかってすっきりしたのは良かったんですが、AWSに関する知識がないのは変わっていません。なので、まずは基礎を学びたいと思いググってみました。

Udemyの初心者用講座を発見

「AWS 初心者 勉強」みたいにググっていたと思いますが、Udemyで以下の講座を見つけました。
AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得 | Udemy

こちらの講座はAWSの基本はもちろん、AWSで出てくる用語や一般的なIT用語の基本も学べるので、AWSもITも初心者だった僕にはすごく良い講座でした。講座を通してAWSの代表的なサービスの知識や、実際の構築方法も学べるのでとても有意義でした。

実は僕は講座を2周したのですが、1週目の理解度は半分程度でした。少し時間を空けて2周してみたところ、理解度がグッと上がったので、業務やプライベートでAWSを触る時間が増えたらもう1度見てみるというのもいいかもしれません。

アカウント作成

上記の講座内ではアカウントを作成するところから始まるのですが、僕はその前にアカウントを作成していたのでそれを使用しました。

恥ずかしい話

実はアカウント作成から1か月ほどは、ずっとルートアカウントでチュートリアルなどを行っていました。しかし、これはAWS非推奨の方法なのです。

強くお勧めしているのは、日常的なタスクには、それが管理者タスクであっても、root ユーザーを使用しないことです。
AWS アカウントのルートユーザー - AWS Identity and Access Managementより

まあ何も知らずに始めたので仕方なかったんですが、これから始める方は上記講座をご覧頂き、安全な使用をして頂ければと思います。

代表的なサービスを触る

講座で代表的なサービスには触れましたが、それ以外にもいくつか触った記憶があります。
講座で触ったサービスも含めると以下のようなかんじだったかと思います。

  • VPC
  • EC2
  • Route 53
  • RDS
  • S3
  • CloudFront
  • ELB
  • CloudWatch
  • IAM
  • Cloud9

チュートリアルや基本的な構築方法レベルでしたが、実際に触ることでサービス単体への理解やサービス間のつながりについての理解も深まったと思います。

4. AWS業務始まる

そうこうしている内に、ついに社内からAWSでの環境構築依頼が飛んできました。
あ、ちなみにAWSでのサービス構成を「アーキテクチャ」や「アーキ」と呼ぶこともあります。
もちろんいきなり本番環境の構築ではなく、まずは開発中のサービスにおいて使うであろうAWSサービスの調査から始まりました。
IAM、EC2、Route 53、ELBあたりの調査からだったと思います。

この時期はかなり苦しかったです。
Udemyで基本を勉強したといっても、すべて理解したわけではありませんでしたし、業務で求められるものはまた別の要件があったからです。

以下、つまづいたところをリストアップしました。

  • アカウント間でリソースを不可視にする
  • IP制限をかける
  • EC2との通信はSSL化する
  • EC2が障害などで落ちても自動的に復旧する

AWSを触っている方ならすぐに解決できる内容ばかりだと思います。
しかし、当時の僕には「ちょっと何言ってるかわかんない」状態でした。
「IP制限?なんか難しそう・・・」
「SSL化?SSLって何?」
こんなかんじでまたAWSを触り初めのころに逆戻りした気分でした。

また、苦しかったのにはもう1つ理由があります。
期限です。
そう、当たり前ですが業務なので期限があるのです。当初調査~本番環境構築までの期間は約1か月でした。(最終的には2か月に延びましたが)

用語も分からない、期限も短い、こんな状況だったのでもう不安でいっぱいでした。
しかしやらねばならない状況は変わらなかったので、やるしかありませんでした。
丸腰で戦場に放り出されたという表現がしっくりくるシチュです(笑)

職場でも家でもAWS

この頃から職場でもAWSの調査、家でも調査の日々を繰り返していました。
AWSの業務以外にも業務があったので残業もしていました。
通勤、退勤中もAWSのことを考え、夢にもAWSが出てきました。
休日もほとんどAWSを触っていました。
自分で言うのも何ですが、よくやっていたと思います。

1つ1つクリアしていく

苦しい中でも要件を1つずつクリアするたびに喜びがありました。今は簡単にできるようになりましたが、当時クリアしたことを思い出してみます。

  • EC2のWindows Serverを日本語化できた
  • Windows ServerにIISをインストールできた
  • IISのデフォルトサイトが表示されなかったけど、セキュリティグループでHTTP通信許可したら表示された
  • セキュリティグループでIP制限できることがわかった
  • Auto Scalingを使用すればEC2の自動復旧ができることがわかった
  • Auto ScalingだとEC2のIPが変わっちゃうけど、ELBの1つであるALBを使えばIPが変わってもALB経由での接続だから大丈夫
  • しかもALBにはドメインも付けらるしHTTPS通信の設定もできる
  • しかもHTTPSのための証明書はACMっていうAWSの証明書発行、管理サービスで無料発行かつ自動更新できる

実は上記の調査途中まで、会社で使っているAWSのサポートプランはスタンダードだったため、不明点をサポートに聞くことができていませんでした。しかし、サポートが必要だと判断した上司がプランをデベロッパーに昇格させてくれたおかげで、調査もスムーズになりました。

アーキテクチャの提案

要件を満たすアーキテクチャはいくつかあったので、3パターンを考えて、社内で提案しました。実は前職ではあまり提案が受け入れられる文化がなく、
「今回の提案もダメなんだろうなあ」
と思い込んでいました。
しかし、3パターン提案後に関係者から
「パターン1でいこう!」
と言われビックリしました。

しかも「いい提案だった」と言ってもらえたことで、少しだけですが自信もつきました。
本当に感謝しています。

また、この頃から社内でAWSに携わる人が応援で増えたので、調査に関しても分担ができ、僕の不安やストレスも軽減されてきました。

本番環境構築

調査開始から1か月経過したころには、周囲のサポートもありアーキテクチャがほぼ固まっていました。そして、この頃から徐々に本番環境の構築が始まりました。
なぜ「徐々に」なのかというと、要件が固まりきっていない部分もあったので、影響がない範囲でできるところから構築していたからです。

最終的に環境構築が完了したのは、構築開始から1か月後ぐらいでしたが、事前調査の成果もあり、構築作業はスムーズに完了できました。
サービスが無事にリリースされ、ちゃんと動いていると聞いて一安心しました。
と同時に、
「本当に自分が構築した環境で実際にサービスを使っている人がいるんだ」
といううれしい気持ちもありました。
IT業界に入って初めてお客さんが使うものに関わったのがこのサービスなので、とても想い入れがあり、今も保守運用に携わっています。

今回はここまで

すでに長くなってしまいましたが、今回はここまでにします。
内容的にはAWSの触り初め~初めて本番環境を構築するまでに勉強したことやつまづいたことなどでしたが、振り返ると改めてよくやったと思います。
IT未経験、AWSという単語が初耳、社内にAWSに詳しい人がいない、サポートにも頼ることができない、そんな初期状態から約2か月で本番環境を構築できました。

これは周囲のサポートはもちろん、AWSが利用しやすいサービスを提供してくれているという点が大きいと思います。AWSの特徴にマネージドサービスという言葉がありますが、これは「面倒な管理や仕組みはすべてAWSがやるから、利用者さんはそのへんきにせず開発に集中してね」というものです。
もし物理的なサーバーの調達や専用ソフトのセットアップなどを頼まれていたら、こんなにスムーズにはできなかったと思います。
AWS様様です。

次回は本番稼働が開始した後に待っている保守運用について書こうと思います。
色々と問題が発生するのですが、どのように対処したのでしょうか?
続きもご覧頂ければ幸いです。
また、個人的な体験談ですが、ほんの少しでもどなたかの参考になれば幸いです。
AWSで困るひとを減らして、AWSが大好きな人が1人でも増えれば僕も幸せです!

参考資料

チュートリアル: Amazon EC2 Linux インスタンスの開始方法 - Amazon Elastic Compute Cloud
AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得 | Udemy
AWS アカウントのルートユーザー - AWS Identity and Access Management