AWS(アマゾン ウェブ サービス)の初心者が実際に使って感じたこと


原田です。先日半日程度外出していたのですが、日除けをしていなかった手首が真っ赤に日焼けしてました。熱中症には気をつけないといけませんけど、日焼けができる夏は最高だなと思いました。

今回はAWSに関しては初心者の私が実際にAWSを使ってみて感じたことを書きます。

当社の提供するサービスではAWSを使用しています

Redmineのクラウドサービス「My Redmine 」など、当社ではAWSを使用してサービスを提供しております。 クラウドを利用することでITリソース等を自社で調達する必要がなく、サービスの改善に注力できることで、12周年(試験提供含む)を迎える「My Redmine」は多くのお客様にご利用頂いております。

サーバーレスアーキテクチャとは

「サーバーレス」とあるようにサーバーの管理は不要で、処理の実行時間や実行回数に対して従量課金が行われます。オンプレミス環境で各種サーバーを構築された経験のある方にはご理解頂けると思いますけど、将来を見越してサーバー機器のスペック(CPU・メモリー・ハードディスクの容量等)を事前に検討していた手間が無くなるのは魅力があります。インフラエンジニアよりは私のようなアプリケーション開発者が好みそうな設計思想(サービス)なのかなと思います。

今回は AWS Lambda と AWS Step Functions を当社検証環境で使用してみました。

AWS Lambda

AWS Lambda(以降Lambdaと略します)にはRubyランタイム(AWS Lambda ランタイム)も用意されています。AWS SDK for Rubyを使用してAWSの各サービスを操作したり、自社独自の処理が作成できる点はRubyを使用している当社にとって嬉しい限りです。


コード例(Amazon S3に格納されているファイルのサイズとURLを取得)

しかしLambdaには、実行時間は最長15分・メモリ使用量は上限3GB、等いくつか制約があります。これら制約事項に触れなければLambdaは非常に便利なサービスです(Lambdaで作成した処理をAWS Fargate等で実行するとこれら制約事項を回避できる場合もあります)。

AWS Step Functions

AWS Step Functions(以降Step Functionsと略します)は上記のLambdaやその他AWSサービスを自社のビジネスロジックに基づいて順番通りに実行させることができます。JSONで作成したStep Functionsステートマシンをフロー図で画面に表示してくれる点は処理の流れが把握しやすくて便利だなと思いました。


コード例(ファイルをコピーし、コピー後のファイル情報を取得)

Step Functionsは各AWSサービスと入出力フィールド(InputPath, OutputPath, ResultPath, Parameters)を介して一連の処理を連携します(Step Functions の入出力処理)。注意点として、入出力フィールドはバケツリレー方式で値を受け渡ししていますので不要な値は適宜消し込んでおかないとStep Functionsステートマシンの終了時に呼び出し元に返すべき値が把握できなくなる恐れがあります(ResultPath: 結果を破棄し、元の入力を保持する)。

AWSのことをもっと学びたい

私はRedmineの改善業務も行っておりますが、当社サービスである「My Redmine」は、RedmineだけでなくAWSを始め様々なシステムが稼動することで提供できております。AWSとの連携範囲も大きくなり当社にとって欠くことのできないものになっています。AWSサービスはとても多く取捨選択するのは大変ですけど業務を通じて(実際に手を動かして)引き続きAWSを学んでいきたいです。


My Redmine

こちらの記事もオススメです!
AWS SAM(Step Functions + Lambda)を利用して複数のウェブサイトのレスポンスチェックをした話
サーバレスで色々なバッチ処理が簡単に実装できます。
TwitterやPodcastから効率よくセキュリティ情報を収集するのだ!
セキュリティに関する新しい情報を収集し、教育や改善など社内の活動に繋げています。
オープンソースのプロジェクト管理ソフトウェア「RedMica」のファビコンを作成しました
Redmine互換のオープンソースソフトウェア「RedMica」のファビコンを作成しました。
ファーエンドテクノロジーはRedmineにどう関係しているのか
ファーエンドテクノロジーとRedmineの関係が気になる人が多そうなので紹介します。
Vaddyとseleniumを使ってRedmineの脆弱性チェックを自動化
オープンソースのRedmineの脆弱性チェックをVaddyとseleniumを使って自動化しています。
ファーエンドテクノロジーからのお知らせ(2021/01/13更新)
年末年始 休業のお知らせ (12/29〜1/4 休業)
年末年始は2020/12/29(火)から2021/1/4(月)まで休業いたします。
オープンソースソフトウェア Redmineで始めるプロジェクト管理(シェルスクリプトマガジン Vol.69 掲載)
誰でも自由に使うことのできるオープンソースのプロジェクト管理ツールRedmineの始め方、使い方をご紹介する記事がシェルスクリプトマガジンに掲載されました。
RubyWorld Conference 2020にファーエンドテクノロジーの坂本が登壇します
12月17日(木)にオンラインで開催される「RubyWorld Conference 2020」に弊社エンジニアの坂本が登壇します。オープンソースのプロジェクト管理ソフトウェア「Redmine」の脆弱性診断をRubyとSeleniumで自動化したことを発表します。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け