golangでAWS S3内のファイルを読み込んだり、アップロードしたりします。
IAMの設定からプログラムでの入出力までメモ。
AWS LambdaでGOできないかなと思ったらあったので使ってみます。
実施環境はWindows10です。
AWS上のbot起動などで常時node.jsを実行させるための設定です。
簡単に設定のできるforever.jsを使いました。
OS起動時の自動実行が地味にめんどくさくなってた。
様々な分野で用意されている便利なAPIですが、WEBページから利用しようとするとつまずきがちです。
ブラウザはドメインの異なるデータを取得できません(同一生成元ポリシー)。
CORS (Cross-Origin Resource Sharing) ヘッダーのAccess-Control-Allow-Originが「*」とでも設定されていれば使えますが、まずないです。
AWSを使って外部のAPIを使うための方法をいくつかまとめます。
月額5$の安価で借りれるLightsailを使ってスクレイピングしてみました。
Node.js付きのインスタンスを作れるので、これを使っていきます。
久々にAWSで遊びたくなったので画像処理系をしてみます。
サーバレスの構成にしてメンテナンスフリーに。
まずは最初の一歩としてURLで指定した画像を返す機能を作ります。
最初はLightsailでやろうとしたけど5$のプランではメモリが足りなかった。
昔買ったラズパイ3が余ってたのを思い出してこれを使うことにした。
マシンパワーのいらないPoS式で有名どころの XP Coin で試してみました。
EC2(t2.micro) から Lightsail (5$) に乗り換えたところメモリが足りなくなりました。
EC2(t2.nano)と同じで 512MB しかないのでうまいこと使わないといけないです。
とりあえず一時しのぎにスワップファイルを追加しました。
Lightsailで作ったインスタンスからS3にファイル転送したい。
EC2やLambdaみたいにロールの追加ができないのでユーザの追加から行います。
Lightsailへのnodejs&npm、phantomjs(ヘッドレスブラウザ)、casperjs(phantomjsライブラリ)導入メモ。
環境はBitnami(Ubuntu)で前回Jenkinsを入れた後です。