TOP
arrow_forward_ios
INFOMATION

スタテク×AWS vol.2

2023-07-28

こんにちは。今回は前回から引き続き、AWS Heroの松井さんのお話を伺っていきます。前回の記事ではAWSとはというところから、AWS Heroの話、スタテクで活用されているAWSの話まで様々なことをお伺いしました。今回はAWSを使用してスタテクで使われている技術や、AWSでできること、これからのことをお聞きしていきます。ぜひお楽しみください。

画像はhttps://aws.amazon.com/jp/ec2/より引用



‐スタテクでもAWSは使われているのでしょうか?

使われているものとしてはBeCloudがあります。
前回もお話しましたが、スタテクで標準的に使用してきたEC2のサーバーでは、どうしてもスケーリングやサーバー管理の煩雑さの課題がありました。そこを解消したのがBeCloudになります。

BeCloudはEC2ではなくECSというサービスを使用しているのですが、サーバーをもう一段階抽象化して、サーバーの上で動くコンテナ内でソフトウェアを実行する形になります。コンテナというのはアプリケーションに必要な様々なソフトウェアをインストールしたイメージというものを使用して、大きな親サーバーの上で仮想のサーバーとして仕事をさせるものです。コンテナのメリットとしては、イメージが同じであればホストになっているマシンの環境がWindowsやMac、Linuxなどのどのような環境であっても動いてくれるということです。

つまり実行環境に依存しないので、多くの技術者が関わったとしても同じ環境で実行できるというメリットがあります。

参考までに、代表的なコンテナプラットフォームとしてはDockerが挙げられますが、ECSでもDockerを使用したコンテナを取り扱うことになります。



実務においてはAWS上でコンテナを動かす際に親サーバーのことは意識せず、気にかけたくないというのが本音だと思います。それを実現してくれたのがAWSのECSというサービスです。他にも、オートスケーリングが簡単だというのも大きなメリットの一つです。メモリやCPUの使用率がこれくらいになれば1台増やしてほしい、使用率が少ないときは最低限などルールを設定するだけで、マネージドで設定されたものに従って簡単にオートスケーリングを導入することができます。そのような整えられた実行環境を、現在全社的に標準化して提供しています。

‐BeCloudの特徴というのは他にもありますか?

他の大きな特徴としては、AWS CDKというものを使っていることです。こちらもスケーリングの問題といえばそうなのですが、プロジェクトを進める際多くの人間が関わることで、「ここの数値を下げたいんだけど下げても大丈夫かな?」ということや「この設定の根拠はなんだろう?」という疑問が発生することがあると思います。
AWS CDKというのはIaC(Infrastructure as Code)という概念に基づいて作られています。IaCというのは、サーバーなどのインフラ構築をコードを用いて管理するという考え方で、これを実現することで今の環境がどのような構成になっているかというのがコードを読むことで理解できるという仕組みになっています。
誰が変更したのかやその経緯はコードの変更履歴を見ればわかりますし、コード自体もGitHubで管理しているので多くの人が関わっていても運用しやすいということですね。

エンジニアの考え方として大事だと思うのですが、こういう言語を使用しているということやこういう技術を使っているということそのものは必ずしも重要ではなく、お客さまからやプロダクトとして求められている「思った機能を実現してほしい」という部分が重要だと思っています。クラウドという話に限定すれば、ソフトウェアのソースとクラウドの構成の提供と双方が必要なのですが、BeCloudを通してどちらも提供が可能です。

‐今後、ということで考えていることはあるのでしょうか?

AWSに興味を持って個人で発信を続けてきて、今まで6つの記事をAWS公式Webマガジンのbuilders.flashに投稿してきました。

今までサーバーレスという分野で発信を行ってきたのですが、最新の記事については分野は同じですが少しだけ毛色が違うものになります。
AWSを使ったシステム構築ではビルディングブロックという各種マネージドサービスを組み合わせて1つの仕組みを作る方法をとる事が多くなってきている、ということは前回も言っていましたが、その中でもAIのマネージドサービスを利用する事がかなり一般的になってきました。
今回の記事はざっくり言うとAIを使用した音声翻訳サイトの作り方になります。興味のある方はぜひ見てみてください。
builders.flash:Amazon Translate を使って自作音声翻訳サイトを作る

作ってみて思ったのですが、思ったよりコストも安く、精度や応答の速度もいいんですね。なのでスタテクで、AWSで提供しているAIを活用できないかなと今は考えています。例えばAmazon Forecastを使用してビジネス的な営業予測を行ったり、ウェブサービスのQ&AとしてAmazon Lexを使用したチャットボットを設けるなど色々考えられますね。
他にも物理的機器を使用したいわゆるIoTの仕組みとして、画像による判断で色々できたら面白いとも考えています。定点観測をして店舗や車の混雑状況を予測したり、農場などにおいて作物の色や発育状況、土の乾き具合なども見られるようになるかもしれません。

こういう形でAIを使用して色々なプロダクトを作ってみたいと思っていますね。

ちなみに今取り組んでいるもので言えば、BeCloudに改造を加えて、クライアントのデータベースを定期的にコピーする仕組みを作っています。他にもAWSの中に、こういうことが書き込まれたとか、こういう改造が加えられたなどの変化をともなうイベントや異常があればそれをSlackなどで教えてくれるという仕組みを作っています。
クライアントの方に使いやすいようにBeCloudを提供できればと思っています。

‐色々なアイデアがあるんですね。このようなアイデアというのはどうやって思いつくものなんですか?

細かい知識に精通していることや、知識量はあったに越したことはないですが、そこまで必要ないと個人的には考えています。発想が大事だと思いますし、そのために新しい情報のキャッチアップが大事だと思います。
クライアントワークでお客さんから言われたことに対して、何かを使って実現できると考えられる発想力は、日々のキャッチアップから生まれるからです。

先程言っていたようなIoT的な使い方のように、AIを使った「未来っぽいこと」を簡単に実現できるのが今の世界です。AIに関する特別な知識は必要なく、Webアプリケーションを作成できるWebエンジニアであれば様々なことを実現できると思います。

特にAWSの作ったAIは、AWSが持っている様々なビッグデータを元に学習していることが強みです。これは買い物などのデータかもしれませんし、それに伴う検索履歴などの膨大なデータかもしれません。このデータはビジネス的にも役に立ちますし、エンジニアとしても面白いデータなのではないでしょうか。ぜひ使ってほしいと思いますね。

今エンジニアの方も、これからエンジニアになる方も、情報をキャッチアップして自分の掴んだ情報をどんどんとアウトプットしていってほしいと思います。ちなみにAWSやAWSのユーザーコミュニティは様々なイベントをやっているので、ぜひ参加してみてください。きっと皆さんにとってプラスになると思います。



松井さんありがとうございました!AWSとはというところから未来まで様々なことを教えてもらい、勉強になりました。私もエンジニアではない素人なのですが、お話を伺って興味が出たのでbuilders.flashで勉強してみたいと思います!

最新記事

今日から使えるSlack小技!前半戦
2024-04-26
今日から使えるSlack小技!前半戦
スタテクレポート vol.3(2023年8月~2024年1月)
2024-03-25
スタテクレポート vol.3(2023年8月~2024年1月)
【イベントレポ】Findy × RUNTEQ合同主催『受託開発におけるエンジニア組織づくり』
2024-03-21
【イベントレポ】Findy × RUNTEQ合同主催『受託開発におけるエンジニア組織づくり』