- 1. CloudFront Functions を TypeScript で書いて、ビルド&デプロイを CI で自動化する
- 2. AWS CDK設定
- 3. 【AIを楽しく学ぶ】AWS DeepRacerとは【全てのエンジニアに機械学習を】
- 4. Athenaで基礎からしっかり入門 分析SQL(Python・Pandasコード付き)#6
- 5. 【AWS】EC2のt2.mediumをt4g.largeにしようとしたら無理だった話【ARM,x86_64】
- 6. ゼロからAWS EC2のインスタンス作成してnginxをインストールする
- 7. 【AWS】CloudWatchのメトリックデータをCSVにまとめたい【Python】
- 8. MacとDockerでAWSTOEをコマンド化する
- 9. Pythonを使ってDataFrameをAmazon S3に直接アップロードする
- 10. AWS CLIでS3からフォルダをコピーする方法
- 11. AWSのEC2(Ubuntu)にZabbix5.0を構築
- 12. RapidSSLなどで購入したSSL証明書をALBに設置する
- 13. s3 ウェブサイトに route53 でカスタムドメインを設定する
- 14. Pythonを使ってAmazon S3にファイルをアップロードする
- 15. RDSのMySQLでクエリキャッシュを有効化する
- 16. AWS AppSync の Cognito UserPools 認証を行ったユーザーで GraphQL API を実行する
- 17. AWS リファレンスメモ
- 18. [ECS] ecs-cli基本
- 19. APIGatewayとStepFunctionを使い、EC2の起動から停止時間までを自在に操る
- 20. S3へのレプリケーションをトリガーにLambdaのコード更新・新規バージョン発行を実行する
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な
【AWS】EC2のt2.mediumをt4g.largeにしようとしたら無理だった話【ARM,x86_64】
# EC2のマシンタイプ t4g シリーズについて
t2.mediumインスタンス(x86_64)をt4g.largeにスペックアップしようとしたら、
アーキテクチャが不適切ですという感じのエラーが出てスペック変更できなかったのでメモ## 単純にアーキテクチャが違うインスタンスだったので、変更不可能
t4g.〇〇のインスタンスは、アーキテクチャにARMベースのGraviton2というのを利用しているらしく、
x86_64アーキテクチャのプロセッサで構築されたインスタンスはt4gにスペック変更することができないようだそんなわけなので、スペックアップはt3a.largeにすることにしました。。。
ちなみにt3はintel Xeonで、t3aはAMD EPYCというプロセッサらしい aはAMDのaなのか・・・!?
## 以下、t4gやARMに関するメモ
### t4g インスタンス
コスパに優れたバースト可能のマシンタイプ
2vCPU , 8GB の t4g.large で、 月額 $64(7,275円) ほどこのインスタンスタイプは AWS Graviton2 と
ゼロからAWS EC2のインスタンス作成してnginxをインストールする
初心者向けです。
初めてAWS EC2 でインスタンスを立てて、nginxをインストールしたので
その手順を記載します。公式のドキュメントがあるので、それを参考にしました。
Amazon Linux インスタンスを作成する – AWS
Amazon EC2 Linux インスタンス入門# 構築の流れ
– AWSコンソールにログインする
– EC2 インスタンスを作成する
– セキュリティグループを変更してHTTPでアクセスできるようにする
– SSHアクセスできるようにする
– nginxをインストールする# AWSコンソールにログインする
AWSアカウ
【AWS】CloudWatchのメトリックデータをCSVにまとめたい【Python】
EC2のメトリックとかから障害予測とかできないかな~と思ったので、データを集めたくなりました。
ので、今回はCloudWatchのメトリックからデータを持ってきて、CSVにまとめてみたいと思います。# 環境
python: 3.7.4# 内容
今回実装するのは下記の動作をするものです。
1. CloudWatchから特定のデータを取得
2. 取得したデータから必要なものだけまとめる
3. まとめたデータをCSVにして出力こんな感じです。ではやっていきましょう!
# 環境の準備
データの取得はpythonを用いて行おうと思います。
まずは`awscli`と`boto3`のモジュールを入れておきましょう。“`terminal
$ pip install awscli
$ pip install boto3
“`awscliの環境設定をしていない方はそちらも行いましょう。
それぞれのAccess KeyはIAMから発行できます。
利用するIAMユーザーの認証情報から、アクセスキーを発行して、それを使います。
今回のプログラムを動作させるなら、CloudWatchへの
MacとDockerでAWSTOEをコマンド化する
[AWSTOE](https://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-component-manager.html) は、EC2 Image BuilderのComponentsなどを記述する際に利用されるツール。
YAML形式で記述したComponentをローカルで検証/実行するのに AWSTOE が使える。ただし、Mac版はない。
正直あったとしてもMacBookのローカルで実行したくはない。
そこでDockerコンテナ内でAWSTOEを実行するための `awstoe` コマンドを用意する。# 使用イメージ
validateしたい時。
YAMLを編集したあと、ローカルで検証できるだけで随分作業が楽になる。“`
awstoe validate -d component.yaml
“`インストールを実行したい時。
`-t` オプションはターミナルに実行ログを表示できる。“`
awstoe run -t -d component.yaml
“`help類。
“`
a
Pythonを使ってDataFrameをAmazon S3に直接アップロードする
# はじめに
[Pythonを使ってAmazon S3にファイルをアップロードする](https://qiita.com/honda28/items/bf71c2b39e8ab109fda3)では、Python 用 AWS SDK である Boto3 を用いて Amazon S3 へのファイルアップロードを行った。この際、保存されているファイルのパスを指定していたが、ローカルにファイルを残したくない場合や準リアルタイムに結果を送りたい場合、ファイルを一度保存してそのパスを指定するのは望ましくない。本記事では、Python でよく用いられる DataFrame 形式のデータを CSV ファイルとして保存することなく一時ファイルのままで Amazon S3 へアップロードすることを試みた。[S3.Client.upload_fileobj](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.upload_fileobj) を参考にした。
# S3 へフ
AWS CLIでS3からフォルダをコピーする方法
#### AWS EC2にS3からコピーする時のコマンド
“`
aws s3 cp
AWSのEC2(Ubuntu)にZabbix5.0を構築
【自分用メモ】
# 概要
AWSのEC2にZabbixサーバーを構築してみました。
OSはUbuntuとし、ZabbixとMySQLをインストールします。
AWSの無料枠でサーバーを立てることができます。
※メモリの枯渇で運用はできません。**大まかな流れ**
1. AWSの設定。EC2からUbuntuを立ち上げてOSを用意します。
1. [Download and install Zabbix](https://www.zabbix.com/download)を参照し、terminalから立ち上げたOSにZabbix, MySQL, Apacheをインストールします。**環境**
| | |
|:-:|:-:|
| Zabbix | 5.0 LTS |
| OS | Ubuntu 20.04 |
| Database | MySQL |
| Web Server | Apache |
| ホストOS | mac |## 手順
### 1. AWSの設定
> 1. インスタンスを起動し、Ubuntu20.04を選択します。
![p
RapidSSLなどで購入したSSL証明書をALBに設置する
#はじめに
会社で購入したSSL証明書をALBに設置する機会がありましたのでまとめます
[SSL証明書)の仕組み](https://milestone-of-se.nesuke.com/sv-advanced/digicert/digital-certification-summary/)についてはこちら#ドメインを購入
お名前ドットコムなどで購入できます#CSRを作成
ssh接続したEC2サーバー内で、以下のコマンドでCSRを作成します“`terminal
# 秘密鍵の作成
$ openssl genrsa -out ca.key -des3 2048
……………………………………………………………….+++
……………………………..+++
e is 65537 (0x10001)
Enter pass phrase for server.key:(ca.keyのパスフレーズ)
Verifying – Enter pass phr
s3 ウェブサイトに route53 でカスタムドメインを設定する
# はじめに
s3 で構築したウェブサイトに route53 でカスタムドメインを設定しようとしたときに少しハマったので、問題点と解決方法を簡単にまとめました。
# 結論
ドメイン名とバケット名を完全に一致させる。
## ハマったこと
route53 で s3 のウェブサイトエンとポイントに対して A レコードを設定しようとした際に、リソースが見つからないと表示されました。s3 の東京リージョンには、バケットは複数存在しているので原因がわからず困っていました。
![スクリーンショット 2021-10-20 15.40.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582722/0cc4efc1-7ffb-f765-af84-f3dca00f9968.png)# 解決方法
困っていたところ下記の記事を見つけました。
[Configuring a static website using a custom domain registered with Route 53](http
Pythonを使ってAmazon S3にファイルをアップロードする
# はじめに
AWS との連携を Python で試す。Python 用 AWS SDK である Boto3 を用いて Amazon S3 へのファイルアップロードという簡単な操作を試してみる。[AWS SDK for Python](https://aws.amazon.com/jp/sdk-for-python/) を参考にした。
# Boto3 とは
冒頭にも書いた通り、Python 用 AWS SDK で、Python アプリケーションやライブラリ、スクリプトを AWS の各種サービス(Amazon S3, Amazon EC2, Amazon DynamoDB など)と容易に統合ができる。
Boto3 には、**Client API(低レベル API)**と **Resource API(高レベル API)** という2つの異なるレベルの API がある。両者の違いは明確に理解できていないが、本記事では Client API で試行してみる。
その他にも、AWS リソースの変化を自動的にポーリングする waiter という機能や Amazon S3 や Amazon D
RDSのMySQLでクエリキャッシュを有効化する
AWS RDSのMySQLではクエリキャッシュがデフォルトでオフになっています。
当初はてっきりオンなのかと思っていましたがオフのようです。しばらく前からクエリキャッシュ自体をやめたほうが良いのではという記事を見かけていましたが、RDSでは実際にオフになっているようです。
https://yakst.com/ja/posts/4612
ただ経験上、一般公開されているWebサーバであればクエリキャッシュはかなり効果的だと思っています。
特にselectの比率が高い場合(90%以上)には有用かと思います。まずクエリキャッシュの状況確認のため、各種パラメタの調整にも有用なのでphpMyAdminで接続して確認しておきます。
https://qiita.com/yousan/items/649e554c1099c1e06ae5
上記記事を参考にphpMyAdminに接続し、「状態>アドバイザ」を進みます。
クエリキャッシュがオフであることが確認できました。
![Screen Shot 2021-10-20 at 10.04.21.png](https://qiita-ima
AWS AppSync の Cognito UserPools 認証を行ったユーザーで GraphQL API を実行する
# はじめに
GraphQL API を実行する場合、API_KEY を使う場合は API Key 認証として具体的なリクエスト方法が示されている。
“`bash
$ $ curl -XPOST -H “Content-Type:application/graphql” -H “x-api-key:ABC123” -d ‘{ “query”: “query { movies { id } }” }’ https://YOURAPPSYNCENDPOINT/graphql
“`https://docs.aws.amazon.com/ja_jp/appsync/latest/devguide/security-authz.html#api-key-authorization
一方、Cognito UserPools で認証を行っている場合は、どのような情報が必要かの具体例が少なかったので、本記事で説明する。
# 回答
手順の概要は以下の通り。
– ログイン可能な Cognito UserPools を作成する (この用途であれば Cognito フェデレーティットアイ
AWS リファレンスメモ
# 背景・目的
いつも、探せなくなるのでメモします。# 一覧
## 権限など
– [サービス認証リファレンス](https://docs.aws.amazon.com/ja_jp/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)# 最後に
随時更新します。
[ECS] ecs-cli基本
## インストール
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ECS_CLI_installation.html
“`bash
sudo curl -Lo /usr/local/bin/ecs-cli https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-darwin-amd64-latest
sudo chmod +x /usr/local/bin/ecs-cli
“`“`
ecs-cli –version
ecs-cli version 1.21.0 (bb0b8f0)
“`## 基礎
### cluster-config設定
“`bash
ecs-cli configure –cluster ec2-tutorial –default-launch-type EC2 –config-name ec2-tutorial –region ap-northeast-1
“``~/.ecs/config`に保存される
APIGatewayとStepFunctionを使い、EC2の起動から停止時間までを自在に操る
#はじめに
「EC2を起動し、特定の時間経過後、EC2を停止する」仕組みをAPIGatewayとStepFunctionを使い、実現します。#完成図
`https://xxxxx.execute-api.ap-northeast-1.amazonaws.com/prod/start-limit?instance_id=i-hogehoge&time=10`をリクエストすると、インスタンスIDが`i-hogehoge`のEC2を起動し、`10`秒後に停止する挙動になります。**挙動の詳細について説明しますと、**
起動するインスタンス`instance_id`で指定し、と起動してから停止するまでの時間を`time`で指定しています。APIGatewayからこれらの2つの値をStepFunctionに渡し、StepFunction内で、Lambdaに`instance_id`、とWaitに`time`を渡して実行する挙動になります。
S3へのレプリケーションをトリガーにLambdaのコード更新・新規バージョン発行を実行する## 以下の記事を参照して頂ければと思います
https://note.com/shift_tech/n/nbe12fc8d8df7
**※ Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です**
## 補足
ソースコード全体は以下です。https://github.com/yuta-katayama-23/lambda-update-function-code