- 1. Amplify Loggerの使い方
- 2. boto3でECSを使ってブログ開設するまでを自動化
- 3. 【とりあえずハンズオン】LINE×AWS LINE Notifyに触ってみよう
- 4. docker-composeでコンテナにローカルのAWS認証情報を渡す
- 5. AWSサービスLightsailのデータベース操作方法
- 6. SageMakerとMLflowの連携
- 7. StageGatway (NFS)をterraformで構築
- 8. Amazon LightsailのRedMineにeasy ganttを導入する
- 9. AWS SAA-C02 合格体験記
- 10. 【AWS】ElasticTranscoderで動画変換する仕組みを構築する
- 11. AWS Outposts とは
- 12. AWS CLI v2 を使って指定したプロファイルの ECR にログインするためのスクリプト
- 13. Fargateスケジュールタスクがたまに実行されないことがある
- 14. あったらいいなと思っていたスキルマップアプリをVueとGoで作ってみた
- 15. AWS-MFA認証のアカウントでAws\S3\S3Clientを利用するには
- 16. AWS:terraformでEC2インスタンスを立てる
- 17. CloudFront Functions を TypeScript で書いて、ビルド&デプロイを CI で自動化する
- 18. AWS CDK設定
- 19. 【AIを楽しく学ぶ】AWS DeepRacerとは【全てのエンジニアに機械学習を】
- 20. Athenaで基礎からしっかり入門 分析SQL(Python・Pandasコード付き)#6
Amplify Loggerの使い方
AWS Amplifyの utilitiesに loggerがある。
https://docs.amplify.aws/lib/utilities/logger/q/platform/js/## 使い方
“`javascript
import { Logger } from ‘aws-amplify’;const logger = new Logger(“my-logger”);
logger.warn(“warning message”);
“`デバッグコンソールにはこのように出力される。
“`terminfo
[WARN] 56:32.69 my-logger – warning message
“`注意点としては、インスタンスに指定されているレベル以上のログしか出力されないということ。
ログレベルは上から順に以下のようになっている。– ERROR
– WARN
– INFO
– DEBUG
– VERBOSEデフォルトのログレベルはWARN。
例えば、以下のようなloggerがある場合、WARN・ERRORのログでないと出力されないので
boto3でECSを使ってブログ開設するまでを自動化
# 開発前の状態
* 今後の仕事でAWSを触ると聞き,知識ゼロなのでヤバみを感じた
* とりあえず本を買って勉強して雰囲気は掴んだ気になっている
* https://www.amazon.co.jp/Amazon-Web-Services-基礎からのネットワーク-サーバー構築/dp/4822237443
* GUIぽちぽちすればやりたいことはできると感じたが,さらなるステップアップをするためにはどうしたらいいか悩んだ
* これまでの仕事でAnsibleなどによる環境構築自動化や,dockerなどのコンテナ技術のありがたみは非常に実感していた
* なので,
* 環境設定をすべて自動化し
* EC2上での作業を予めDockerImage化しておいてデプロイところまで頑張ってみたいと思った# コード
https://github.com/fugashy/aws_network_and_server_sample
## やっていること
* VPCからECSのサービス開始までを全自動化
* VPC,Subnetなどを依存関係に注意して作成していく
【とりあえずハンズオン】LINE×AWS LINE Notifyに触ってみよう
# LINE Notify に QiitaのRSSを流してみよう!!!
## はじめに
この記事では
AWS のサービスと LINE Notify 連携させて
Qiita の RSS を返してくれる LINE bot を作成するハンズオンです。ベストプラクティスや間違いがあれば書き直していく予定です。
今回は前回の Bot の製作でお世話になりました
[LINE Developers Community](https://linedevelopercommunity.connpass.com/)
協力の元、ハンズオンを作成しております。
ご協力ありがとうございます。ご興味のある方はぜひ、お気軽にご参加ください!!!
## 解説動画
記事の解説動画です。
AWSサービスLightsailのデータベース操作方法
#AWSサービスLightsail
Amazon Lightsailは、AWSが提供しているVPS(Virtual Private Server:仮想プライベートサーバー)サービスです。#データベースの操作方法
Linux/Unix OSとLAMP(PHP 7)アプリのインスタンスを作成している前提です。まずは、インスタンスにアクセスします。
ターミナルでもいいしLightsailの管理画面でもOKです。そこで、下記のコマンドを実行して、データベースのパスワードを調べます。
出てきたパスワードをコピーします。“`terminal:コマンド
cat bitnami_application_password
“`
![スクリーンショット-2021-10-22-18.43.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710589/5b235c5a-e579-58a6-e815-f0d666fb0d97.png)
パスワードがわかったら、mysqlコマンドを使ってアクセスします。
SageMakerとMLflowの連携
# はじめに
こちらは、 [Managing your machine learning lifecycle with MLflow and Amazon SageMaker](https://aws.amazon.com/blogs/machine-learning/managing-your-machine-learning-lifecycle-with-mlflow-and-amazon-sagemaker/)を参考にして実際に作成したものです。
**ただし、このブログの紹介で作成しているのは、MLflowをECS上にDeployし、S3とRDSをそれぞれArtifact store、backendストアにするところまでなので、 SageMakerもまとめて作りたい場合は[こちら](https://qiita.com/nakamasato/items/feb91c806225df98180a)を!**
MLflow初であれば→[MLflow 基礎](https://qiita.com/nakamasato/items/6337e7f543535ecb9062)
![im
StageGatway (NFS)をterraformで構築
Amazon S3 ファイルゲートウェイをterraformで構築しました。
下記記事を参考に(SMBによるファイル共有)、NFSとしてstorage gateway及びファイル共有をterraformで作成しました。
https://dev.classmethod.jp/articles/create-s3-storage-gateway-using-terraform/
先に結論から色々書いてしまうと、まずterraformで構築する利点はあまりないなと感じました。
今回storage gateway VMの移行があり、対象ファイル共有も多数あったのでterraformで一気に作っちゃいましょうという流れでした。terraformで構築する利点として、ファイル共有の増減が容易に出来る。
stoage gateway本体をterraformで構築するメリットはあまりない(アクティベートキーの取得部分)用に感じました。また、storage gatawayによるNFSファイル共有は双方向ではないことに注意が必要です。
マウント先で設置したファイルはS3にアップロードされます
Amazon LightsailのRedMineにeasy ganttを導入する
# はじめに
本記事ではAmazon Lightsailで起動済みのRedMineにガントチャートを使いやすくしてくれるeasy ganttプラグインを導入して、ユーザーが使えるようになるところまで設定します# プラグイン導入の手順
– [easy redmine](https://www.easyredmine.jp/redmine-gantt-plugin)からEasyGanttFree-4.x.zipをダウンロードし、サーバーの任意のディレクトリ(今回は/tmp/)にアップロード– /opt/bitnami/apps/redmine/htdocs/plugins/にプラグインを展開
“`sh
// zipをプラグイン用ディレクトリにコピーする
cp -p /tmp/EasyGanttFree-4.x.zip /opt/bitnami/apps/redmine/htdocs/plugins/
// プラグイン用ディレクトリに移動
cd /opt/bitnami/apps/redmine/htdocs/plugins/
// zipを解凍
unzip EasyGan
AWS SAA-C02 合格体験記
# はじめに
AWS認定ソリューションアーキテクト アソシエイト試験に合格したので、以下のことについて記載します。
1.受験のきっかけ
2.学習方法
3.当日のこと皆さんのご参考になれば幸いです。
# 1.受験のきっかけ
業務でAWSを使っていて1年経つしそろそろ受けてみるか~っていうのが1つ。
そして他のサービスのことも知りたいな~って思うようになったのが1つっていう感じです。# 2.学習方法
正直みなさんが気になるのはここからだと思います。わたしの学習方法としては主に以下の流れです。
①参考書で知識習得
[改訂新版 徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書[SAA-C02]対応 徹底攻略シリーズ](https://www.amazon.co.jp/%E6%94%B9%E8%A8%82%E6%96%B0%E7%89%88-AWS%E8%AA%8D%E5%AE%9A-%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%
【AWS】ElasticTranscoderで動画変換する仕組みを構築する
## はじめに
今回、弊社運動通信社で開発しているスポーツブルアプリの中のスーパープレイ動画機能の裏側について少しご紹介させていただきます。
スーパープレイ動画機能とは様々な競技のスーパープレイの部分を切り取った縦型の動画集をスワイプしながらザッピング感覚で閲覧できるものです。↓動画は以下のように縦型フルスクリーンで閲覧できます。
![tatefuluのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144550/a8d702b9-f20b-328a-ce02-4bf45c08d7bd.png)ザッピング感覚で閲覧できるようにする上で通信環境の考慮が必要となってきます。
通信環境によって読み込み時間が長いと体験が損なわれてしまうため、通信環境に応じた複数ビットレートの動画を用意し、その点を解決しました。
具体的にはAWSのElasticTranscoderを使ってその仕組みを構築してみましたので、事例としてご紹介したいと思います。## 構成イメージ
ざっくりした構成と処理の流れはこ
AWS Outposts とは
## 勉強前イメージ
サービス名から内容があまりわからない・・・
## 調査
### AWS Outposts とは
ローカル環境でのデータ処理や移行、低レイテンシーを維持したいという目的で
専用のハードウェア一式をオンプレの環境に設置して、オンプレにAZが増えたイメージで扱うサービスになります。
AWSのオンプレミス版のイメージの製品になります。
AWS Outpostsを注文すると以下のものがラックに組み立てられてが輸送・搬入されるようです。
– 42Uのラック
– パッチパネル
– サーバホスト
– ネットワークSW
– 電源一式を画像は [こちら](https://aws.amazon.com/jp/blogs/news/aws-outposts-now-available-order-your-racks-today/) をごらんください
日本でも注文は出来ます!また、outpostsを利用するには [エンタープライズサポートプラン](https://qiita.com/miyuki_samitani/items/123025b8a3e05354c5e2) に
AWS CLI v2 を使って指定したプロファイルの ECR にログインするためのスクリプト
# はじめに
AWS プロファイルを指定するだけでさくっと ECR ログインを実現する手段が欲しかったのでスクリプトを用意した。
# 背景
AWS CLI で ECR ログインする際に利用されていた `get-login` は AWS CLI v1 では非推奨、AWS CLI v2 ではそもそもコマンド自体が使えなくなっている。代わりに `aws ecr get-login-password` を利用するようにとのこと。
で、`get-login-password` を利用して ECR ログインするコマンドを素直に書くと以下のようになる。
“`bash
$ aws ecr get-login-password | docker login –username AWS –password-stdin
“`しかし `
` が厄介で、デフォルトのプライベートレジストリ URL は `https:// .dkr.ecr. .amazonaws.com` である。
そう、AW
Fargateスケジュールタスクがたまに実行されないことがある
## Fargateスケジュールタスクとは
Amazon EventBridgeのスケジューラを使って、ECS(Fargate)のタスクを定期実行する仕組みです。
[参考] https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/scheduled_tasks.html
## 結論
2021年10月現在、タスク起動時に環境変数をS3から取得するようにタスク定義を設定している場合は、タスクの実行に失敗することがあります。
(今後AWS側に修正してもらえる可能性はあります。)なお、調査の余地がありますが、
VPCエンドポイント・NAT・パブリックIPの有無などの環境の違いで発生頻度に差がある可能性があります。## 詳細
一つずつ、原因を探っていきます。
### RunTaskが実行されているか確認
#### CloudTrailにてRunTaskイベントを確認
CloudTrailをオンにしている場合、各APIの実行履歴を取得できます。
コンソール画面の場合、イベント履歴からイベント名「RunTask」
あったらいいなと思っていたスキルマップアプリをVueとGoで作ってみた
# 作ってみたもの
作ったWebアプリは [Graphyee](https://graphyee.com) と名付けました。
技術と技術は関連しているものなので、「スキルマップをグラフ構造で表現できたら分かりやすくて面白いかな」と思いついたのが経緯です。
まだβ版としていますが、一旦使える感じになったのでノリと勢いで公開してみました。こんな感じで [サンプル](https://graphyee.com/sample/1) は誰でも使えます。
:::note warn
サンプルは実績を入力しても保存できないのでご注意下さい。
:::![sample.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2201222/57ea423b-20f5-3dcf-8370-b8c19134a8d5.gif)
ユーザ認証すると、より細かい [スキルマップ](https://graphyee.com/graph/1) が使えます。
:::note info
ユーザ認証していただければ、入力した実績が
AWS-MFA認証のアカウントでAws\S3\S3Clientを利用するには
MFA認証が必要なAWSアカウントに対してWEB用SDKのS3Clientでアクセスする方法です。
AWSリソース間でのアクセスはRoleでの権限設定が推奨されていますが、例えばローカル開発環境からテストでS3にアクセスするとき、AWS_SESSION_TOKENの設定が必要になります。対策はaws_session_tokenを配列に指定してオブジェクトを生成するだけです。
“`php
$s3 = new S3Client([
‘aws_access_key’ => env(‘AWS_ACCESS_KEY’),
‘aws_secret_key’ => env(‘AWS_SECRET_ACCESS_KEY’),
‘aws_session_token’ => env(‘AWS_SESSION_TOKEN’),
‘region’ => env(‘AWS_DEFAULT_REGION’),
‘version’ => ‘2006-03-01’
]);
“`
session token
AWS:terraformでEC2インスタンスを立てる
# 概要
EC2のインスタンスをterraformで立てます。
立てて、落として、また立ててもすぐに利用できるようにします。## terraform
どんなものかについては下記を参照。
https://qiita.com/yamanashi7474/items/d12961780ad296335ed2### 事前確認
terraformをローカル環境にインストールします。https://docs.uipath.com/installation-and-upgrade/lang-ja/docs/installing-terraform
上記手順をそのままなぞるとバージョン0.12.3を落とせますが、現在0.14.Xまでバージョンが上がってます。
下記を参考にしてください。“`
$ wget https://releases.hashicorp.com/terraform/0.14.10/terraform_0.14.10_linux_amd64.zip
$ sudo apt-get install unzip
$ unzip terraform_0.14.10_linu
CloudFront Functions を TypeScript で書いて、ビルド&デプロイを CI で自動化する
# はじめに
環境は以下
– Next.js
– CloudFront+S3`pages/index.tsx`と`pages/new.tsx`を持つ Next.js を静的ビルドすると、ビルド結果は`/index.html`と`/new/index.html`が生成される
URL の`/`にアクセスした時は、CloudFront で Default Root Object に index.html を指定しておけば、`https://…/index.html`を返してくれるので普通に表示されるが、`/new`にアクセスすると CloudFront は 403 エラーを返す
この場合、`/new`のアクセスに対して、`https://…/new/index.html`を返すようにしてあげれば、問題なくリソースを表示することができるようになるこれは CloudFront の Edge Location において、`/new`という URL を`/new/index.html`に書き換えるスクリプトを実行してあげることで解決ができる
これは調べるとよく紹介されているや
AWS CDK設定
# はじめに
内容はこちらのページを参考にしたもの [Getting started with the AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html)# ステップ
## 1. aws cdkのインストール (※Supportされているnodeのバージョンがあるので注意)今回はその中の `v16.3.0`を使用:
“`
node -v
v16.3.0
“`インストール
“`
npm install -g aws-cdk
“`バージョンチェック (インストール時によって異なる)
“`
cdk –version
1.128.0 (build 1d3883a)
“`## 2. aws cliの設定 (すでにしてあればスキップ)
aws cliのインストールはこちら: [AWS CLI バージョン 2 のインストール、更新、アンインストール](https://docs.aws.amazon.com/ja_jp/cli/latest/usergu
【AIを楽しく学ぶ】AWS DeepRacerとは【全てのエンジニアに機械学習を】
# DeepRacerを始めようと考えている
* DeepRacer ってどんなものなの?
* DeepRacer を行うことで得られるメリットを知りたい
* AWSやAIの知識がないのでハードルが高そう上記のような疑問に答えていきます。
本記事を読むことで以下のようなことが分かります。* DeepRacerとは
* DeepRacerを行うメリット3つ
* AWSやAIの知識が0でも参加できるでは解説していきます。
# AWS DeepRacerとは
## AWS DeepRacer はAWSのAI学習サービス
AWS DeepRacer はAWSが開発したAIを楽しく学ぶためのツールです。
下記は2019年の記事ですが、分かりやすく参考になるので、貼っておきます。[第1回 強化学習が楽しく学べる自律走行レーシングカー「AWS DeepRacer」とは?](https://atmarkit.itmedia.co.jp/ait/articles/1907/08/news018.html)
上記の記事にもありますが、AWSは「機械学習に興味を持つエンジニアや開
Athenaで基礎からしっかり入門 分析SQL(Python・Pandasコード付き)#6
今まで複雑なデータ操作・分析などはPythonでやっており、SQLは普通のアプリ開発程度のライトなものしか触って来なかったのですが、やはり分析用の長いSQLなども書けた方がやりとり等で便利・・・という印象なので、復習も兼ねて記事にしておきます。
また、SQLに加えて検算も兼ねてPythonやPandasなどを使ったコードもSQLと併記していきます(Pythonで書くとどういった記述が該当するのかの比較用として使います)。
※長くなるのでいくつかの記事に分割します。本記事は6記事目となります。
# 他のシリーズ記事
Athenaとはなんぞやという方はこちらをご確認ください:
https://qiita.com/simonritchie/items/069c75059af3ba2ba914
※過去の記事で既に触れたものは本記事では触れません。
`#1`:
用語の説明・SELECT、WHERE、ORDER BY、LIMIT、AS、DISTINCT、基本的な集計関係(COUNTやAVGなど)、Athenaのパーティション、型、CAST、JOIN、UNION(INTERSECTな