AWS

Clam AntiVirusをAmazon Linux2へ導入する

無料で使えるオープンソースのアンチウイルスソフト「ClamAV」をAWSのAmazon Linux2へインストールして動かすところまでをまとめます。

ウイルスはWindowsをターゲットとしたものが多く、限られたユーザーしか利用しないLinux環境だと入れないことが多かったりしますが、今回は専門学校の実習で50名前後の生徒にWebサーバーとして開放する関係で導入することにしました。さすがに意図的にウイルスをアップすることは無いと思いますがw 万全を期するに越したことはないですからね。
続きを読む

[AWS] Rekognitionで画像内に存在する物体を検出する

Amazon Rekognitionを使うと画像や動画をAIで解析し、そこにどういった物体が存在しているか「ラベル」を付けてくれます。例えばジャイアントパンダが写っていれば「Giant Panda」というテキストと、画像内のどこに存在しているか座標情報が送られて来ます。

今回は画像をNode.jsからRekognitionを利用するコードを書いてみます。AWSの流儀やNodeについての基礎知識があれば非常に手軽に実行できます。
続きを読む

[AWS] S3へ巨大なファイルを「マルチパートアップロード」する

AWS S3へ巨大なファイルをアップロードする際、より高速に転送するには「マルチパートアップロード」を利用することが推奨されています。また一定サイズ以上のファイルはSDKやREST APIからはそもそもPUTすることができません。

マルチパートアップロードというと一見難しそうに聞こえるかもしれませんが理屈も使い方も非常にシンプル。対応したGUIのアプリを使えば裏側で自動的に行なってくれるためそもそも意識する必要すらありません。

今回はAWS CLIとWindowsやmacOS上のGUIのクライアントを利用した方法を取り上げます。
続きを読む

[Electron] 自動アップデートに対応する – electron-builder + AWS S3

アプリを起動すると自動的に最新版があるか確認し、もし更新されていれば自動的にバージョンアップしてくれる機能を実装します。

いくつか方法はあるのですが今回は

  1. electron-builderの機能を使う
  2. ビルドしたアプリはAWS S3へアップ
  3. 更新があるとユーザーの確認無しでダウンロードしちゃう

という方向でまとめていきます。
続きを読む

[AWS] CloudFrontからのリクエスト以外をオリジンで拒否する

このブログはCloudFrontからLightsailで作成したオリジンを参照する構成になっているのですが、最近オリジンに直接リクエストが来ることが増えました。間違えてオリジンのURLを返している可能性もあったのでログを解析してたのですが、大方の予想通りセキュリティホールを探っている物ばかりでした。

めちゃめちゃ気持ち悪い(´・ω・`) オリジンへのリクエストはCloudFrontからしか来ないと割り切って、80/443番へ直接来るリクエストはすべて拒否することにしました。

ここではApacheの設定を掲載しますが、同様の手法でnginxなど他のWebサーバーでも利用できると思います。

続きを読む

[AWS] LightsailでEMLauncherを動かす – AmazonLinux2編

iOS/Android用の開発中のアプリをチームで共有するための定番ツール「EMLauncher」をAWSのLightsailへインストールします。

基本的にLightsailに存在する機能を中心に設定しますが、一部AWS本体も利用します。

  • ファイルはS3へ保存
  • メール送信はSESを利用
  • S3とSES用のIAMを作成

まぁ…最近はDeployGateなどのクラウドサービスを利用する方が圧倒的に楽ちんなのですが、コストや管理上の問題など、自前で準備しなければならくなった場合に参考にしていただければと。
続きを読む

[AWS] LigthsailにBitnami版Redmine4.1を構築する

新たにジョインしたプロジェクトでPM業務を担当することになりまして、古来から伝わりしRedmineを準備した際のメモです。……本当は今をときめくClickUpあたりを使いたかったんですが予算の兼ね合いで泣く泣くw Backlogは昔から肌に合わないのとカスタマイズが効かないので候補から外しました。

ゼロからRedmine環境を作るのは骨が折れるため、ボタン2〜3発でRedmineを起動でき、お値段的にも手頃なAWSのLightsailを利用して作成してみます。
続きを読む

[AWS] SESを利用しSMTPサーバの準備を行う

AWS SESを利用するとSMTPサーバが簡単に用意できます。EC2から利用する場合、無料枠が月間6.2万通まで用意されていますので、個人的な利用や小規模なプロジェクトであれば料金は気にしなくても良さそうです。

今回はSMTPサーバの準備をするところまでを取り上げます。
続きを読む

[AWS] Serverless FrameworkでRESTfulAPIを作成する (S3編)

今回はServerless FrameworkでRESTfulAPIを介しS3からデータを取得したり保存したりします。

DynamoDBの回と同様に、プロジェクトの設定ファイルであるserverless.ymlにCloud Formationの書式でS3の設定からIAM周りまで一元管理できます。分かってくると楽しいですね。逆に詰まるとネット上に情報があまり転がってなくて地獄ですがw
続きを読む

[AWS] Serverless FrameworkでRESTfulAPIを作成する (DynamoDB編)

今回はServerless FrameworkでRESTfulAPIを介しDynamoDBを触ります。

プロジェクトの設定ファイルであるserverless.ymlにCloud Formationの書式でいろいろ定義できるのでテーブルの作成やIAM周りの設定もすべて一元管理できます。テキストファイルでほとんどが完結するのほんと最高ですね。
続きを読む

[AWS] Serverless FrameworkでRESTfulAPIを作成する (外部サーバと通信編)

Lambdaから外部のサーバとHTTPによる通信を行ってみます。

とは言っても特別な制約はありませんので基本的に自由行うことができますが、実行時間によって課金される点に注意が必要です。相手方のサーバからレスポンスが中々返って来ないとその時間分だけ課金されます。またVPCの中にLambdaを置いて実行する場合はインターネットゲートウェイなどの設定が必要になります。

では行ってみましょう。
続きを読む

[Quora] AWSを使った受託開発はクライアントにAWSアカウントを作ってもらうべき?

Quora回答シリーズです。

質問

AWS (EC2) を使った受託開発は、納品時にインスタンスを移管することができないので、開発開始時にクライアントにAWSアカウントを作ってもらう必要がありますか?
https://qr.ae/pNyMrE

この質問には以下の参考URLが添えられていたのですが、移管できること自体を理解されているのかよく分からなかったので、一般的なお話をしました。

続きを読む