- 1. Amazon ECSでRailsサービスのコンテナを立ち上げた際、ELBのヘルスチェックが通らずTask failed ELB health checks in…と出た時の対処方法
- 2. AWS公式資料で挑むSCS認定(31)-こんな時どうする(全分野その8)
- 3. パーティションテーブルに新規のパーティション列を追加する
- 4. AWS Black Belt Online Seminarで学んだAWS Cloud Development Kit (CDK) をまとめる
- 5. AthenaのACIDトランザクション(Iceberg)を試してみた
- 6. SNS認証について
- 7. 【Lambda関数構築編】開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その6~
- 8. 【モデリング編】開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その5~
- 9. 【開発工程決定編】開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その4~
- 10. 【AWS】ログイン時にスマホからMFAをする方法
- 11. VPCに関わる技術練習
- 12. code-server on EC2 で開発 PC のスペック不足を解消する
- 13. 作字クリエイターの方を支援するSNSを作ってみたい【個人開発/RoR/Docker/AWS/DaisyUI】
- 14. [API Gateway→ Lambda] Lambdaでクライアント情報を取得してみました
- 15. AWS CLIインストールした際にエラーの対処方法
- 16. AWSLamdbaのエフェメラルストレージ10GB拡張を試してみた
- 17. AWS S3コマンドでメタ情報を付与する方法
- 18. Cloud Data Warehouse BenchmarkでRedshiftのデータを準備する
- 19. AWS公式資料で挑むSCS認定(30)-こんな時どうする(全分野その7)
- 20. Redshift Data APIを使ってS3のJSONデータを取り込む
Amazon ECSでRailsサービスのコンテナを立ち上げた際、ELBのヘルスチェックが通らずTask failed ELB health checks in…と出た時の対処方法
## ECSでサービスが立ち上がらない!?
サービスを立てた際、こんな具合にタスクが起動しては落ちを繰り返しました。今回はそんな時の為のケーススタディを紹介します。

## 原因究明1 CloudWatchのログを見る
ECSの該当クラスター→タスクから現在実行中のタスクを選択肢、コンテナのタブを開くと、CloudWatchのログに遷移できます。

### 原因究明1.1 Clou
AWS公式資料で挑むSCS認定(31)-こんな時どうする(全分野その8)
##### [前回] [AWS公式資料で挑むSCS認定(30)-こんな時どうする(全分野その7)](https://qiita.com/mingchun_zhao/items/ac0d7999eaee4f443dd1)
## はじめに
今回も引き続き、「こんな時どうする」集の作成です。
## 分野1: インシデント対応
– 特定IPアドレス範囲からウェブサイトへ大量リクエストが確認された、拒否リストに登録せずアクセス頻度のみ制限したい
– AWS WAFのレートベースのルールを使用
– レートベースルールのIP許可リスト条件で、ソースIPアドレス範囲から単位時間内のリクエスト数を制限
– 制限を超えた場合、新しいリクエストはリクエストレートが設定されたしきい値を下回るまでブロックされる## 分野2: ログとモニタリング(監視)
– 自分のAWSアカウントで実行されたすべてのAWS WAF API呼び出し履歴を取得したい
– AWSアカウントのAWSマネジメントコンソールでAWS CloudTrailを有効に設定
– セキュリティ監視
パーティションテーブルに新規のパーティション列を追加する
## やりたいこと
現在year,month,dayまでのパーティション粒度で作成しているテーブルを、year,month,day,hourのパーティション粒度に変換する。しばらく前にAthenaがGlueパーティションインデックスに[対応した](https://aws.amazon.com/jp/about-aws/whats-new/2021/11/amazon-athena-queries-aws-glue-data-catalog-partition-indexes/)ので、より細かいパーティションを作ってもGetPartitionで遅くなる問題は回避できそう、じゃあ細かいパーティションを切って取得データ量を減らせるのでは、という発想による。
## やること
CTASを使って別テーブルを作る。## ステップバイステップ
### 1. 現行テーブルの定義を確認
サンプルのソーステーブルは、[動的パーティショニング検証](https://qiita.com/itsuki3/items/84778d7e436dac618f02)で作ったDNS Resolverクエリーの
AWS Black Belt Online Seminarで学んだAWS Cloud Development Kit (CDK) をまとめる
会社でAWS CDKに触れる機会があったため、一度動画を見て学ぶことに。
視聴した動画は[こちら](https://www.youtube.com/watch?v=1i7kWqpqtoY&t=452s)## AWSの環境を構築するには
AWS環境を構築する上でマネジメントコンソール、スクリプト(SDK,CLI)、プロビジョニングツール、DOMsと環境構築の管理レベルは上がってきた。一方でそんな環境定義を抽象化する機能が組み込まれることは少なく、定義を作り込むのが大変だった。それを解決するがごとく現れたのがCDK。
`CDK = あるべき状態の定義のコード化 + 抽象化`
## AWS CDKの紹介
一言で言えばAWS環境をプログラミング言語で記述できるツールキット。### 特徴
* ソースコードからCloudFormationテンプレートを作成
* AWSのベストプラクティスが定義されたライブラリ(Construct)によって少ないコードで記述できる
* オープンソースなのでユーザが拡張可能
* 対応言語はJavaScript、TypeScript、Python、Java
AthenaのACIDトランザクション(Iceberg)を試してみた
# 背景・目的
[こちら](https://aws.amazon.com/about-aws/whats-new/2022/04/amazon-athena-acid-transactions-powered-apache-iceberg/)の記事にて、AthenaがACIDトランザクションを一般提供したとのことで気になったので調べてみました。(以前は、Previewでした。)# サマリ
– AthenaでACIDを実現するために、Apache Icebergを利用している。
– タイムトラベル機能により、以前の状態を確認できる。
– INSERT、UPDATE、DELETEが利用できることで、GlueなどのETLをつかって洗い替えの仕組みを用意しなくて済むのはありがたい。
– 以下については、今後確認したい。
– 気のせいか、SELECTや更新系のクエリが若干遅い気がする。性能を計測する。
– REWRITE DATA Compaction Action圧縮が確認できなかったため、あらためて仕様を確認する。# 概要
## Athena ACIDトランザクション
SNS認証について
# SNS認証について
– 学習マッチングサイトを作成して、google認証を実装したい
– 認証機能について理解を深めたい
## 環境
– AWS:EC2,RDS(MySQL),VPC,Route53
– webサーバー:NGINX
– アプリケーションサーバー:Puma
– フレームワーク:Ruby on Rails## 認証の仕組みについて
今回はgoogle認証であるため、登場人物は、– googleのリソースサーバ
– エンドユーザー
– webアプリ
– googleの認可サーバーです。
### リソースサーバーとは
リソースサーバとは、保護対象のリソースを保持しているサーバーを指します。ここでいうリソースとは、googleフォトの画像やプロフィール情報等のことと思います。
### ユーザー
リソースオーナであり、アカウントを連携したいユーザーを指す。
### webアプリ
これは、つまり、学習マッチングサイトです。
### 認可サーバー
リソースサーバーに信頼されたサーバーで、リソースオーナーの認証を行い、リソースサーバーに対するアクセストークンを発行します。
【Lambda関数構築編】開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その6~
# はじめに
22年度文系学部卒のたいきです。この記事では、システムの開発経験もないのに、見よう見まねで「プロジェクトごっこ」をしていきます。
・保有資格 : 応用情報技術者・AWS-SAP
・プログラミング言語:軽くPython
本記事を最初から読んでいただける方は「[開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その1~](https://qiita.com/Ishii_Taiki/items/e3035c12b31385f8156b)」から読んでいただけると嬉しいです。
# 本記事について
今回は、[【モデリング編】開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その5~](https://qiita.com/Ishii_Taiki/items/f76265a6cb181dcf84f0)のモデルを利用してLambda関数を構築していきます。このLambda関数は、S3イベントをトリガーにして、画像分析をはじめ、推論結果をDynamo DBに格納する関数です。# PythonコードのLambdaへのアップロード
前回のモデリングの際に作成し
【モデリング編】開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その5~
# はじめに
22年度文系学部卒のたいきです。この記事では、システムの開発経験もないのに、見よう見まねで「プロジェクトごっこ」をしていきます。
・保有資格 : 応用情報技術者・AWS-SAP
・プログラミング言語:軽くPython
本企画を最初から読んでいただける方は[「開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その1~」](https://qiita.com/Ishii_Taiki/items/e3035c12b31385f8156b)から読んでいただける嬉しいです。
# 本記事について
本記事より、実際にシステム(アプリケーション)部分を作成していきます。この最初のステップとしてSageMakerを利用して、きのこの山とたけのこの里を、それぞれ判別できるモデルを作っていきます。
本記事のモデリングは、このプロジェクトのアイデアのもとになったBuilders.Flashさんの記事を参考に制作させていただきます。>たけのこの里が好きな G くんのために、きのこの山を分別する装置を作ってあげた。
~モデル作成編~
>>https://aws.amazon.co
【開発工程決定編】開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その4~
# はじめに
22年度文系学部卒のたいきです。この記事では、システムの開発経験もないのに、見よう見まねで「プロジェクトごっこ」をしていきます。
・保有資格 : 応用情報技術者・AWS-SAP
・プログラミング言語:軽くPython# 本記事について
本記事は[開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その3~【基本設計編part2】](https://qiita.com/Ishii_Taiki/items/06108a646c208f03a331)の続きでお伝えさせていただいたように、大まかに開発工程を決定していきます。この開発工程は、100%自分の気分で決定させていただきました。また、自分勝手に開発工程を前後させることがありますので、あんまり開発工程自体は参考にしないでください。今後の記事のちょっとした予告として楽しんでいただけると嬉しいです。# 超おおまかな流れ
自分的に、早くシステムを開発してみたいという理由から以下のような順番になります。無理やり理由を付け加えるとすれば、基盤から構築してしまうとConfigログやSNS・kinesisなどのログ
【AWS】ログイン時にスマホからMFAをする方法
# 1.はじめに
どうも、ARIの名古屋支社に勤務している愛知県民です♪
(/・ω・)/今回は**AWSにログインする時にスマホからMFAをする方法**について記載したいと思います。
AWS初心者の方、AWSについて勉強中の方の参考になれば幸いです♪
(*^^)v# 2.用語の説明
## 2.1.MFAとは
MFAとはMulti-factor authentication(多要素認証)の頭文字で、
以下の情報の中から2つ以上を必要とする認証のことです。* 知識情報(例:ユーザ名、パスワード)
* 所持情報(例:スマホで確認できるコード)
* 生体情報(例:指紋)
従来のユーザ名、パスワードだけの認証よりもセキュリティが向上します。参考URL
https://moconavi.jp/blog/2021/06/5812/# 3.前提条件
以下に前提条件を示します。* IAMユーザが作成済であること
* スマホに認証アプリをインストールしていること※手順は大きく変わらないと思いますが、本記事では「Google 認証システム」のアプリを使用します。
|## VPCを構築
以下の項目を設定する
– vpc名前
– Ipv4CIDRブロック
※ AWSルールによりipv4CIDRの設定範囲は16〜28間の数字です。

– 通常の VS Code と完全に同じものではありませんが、後述するように、ほぼ遜色なく使えます。# なぜ code-server を使おうと思ったか?
– ある案件で、開発に使える環境が仮想デスクトップ環境だったのですが、スペックが十分でなく、かつ諸般の事情で引き上げることもできなかったためです。このため、十分なスペックを持つ開発環境を AWS 上に設けたいと思いました。
# なぜ code-server を選択したのか?
– 筆者
作字クリエイターの方を支援するSNSを作ってみたい【個人開発/RoR/Docker/AWS/DaisyUI】
# HelloWorld!
はじめまして!突然ですが皆様**作字クリエイター**ってご存知でしょうか?恐らく多くの方は首を横に振られたと思います。試しに作字≒タイポグラフィでググってみると、>タイポグラフィは、活字を用い、それを適切に配列することで、印刷物における文字の体裁を整える技芸である。(Wikipedia)
とのこと。要するに文字を使ったデザインに関わる創作をする方々のことですね。今回はそんな作字クリエイターの方を支援するようなプラットフォームを作りたいと考え、独学でプログラミングを学びながらこれまで作ってきたWebアプリをご紹介できればと思います。
:::note info
なお本アプリはまだまだ実装したい機能があり、これからも開発を続けていこうと考えているため、表題の語尾は”~みたい”としました。
:::【アプリ名】
__Sakujiru__
【URL】
▷http://sakujiru.com/
【レポジトリ】
▷https://github.com/dlanx0607/sakujiru-app### 製作者の人となり
– 牛タン:poultry_leg
[API Gateway→ Lambda] Lambdaでクライアント情報を取得してみました
場合によっては、Lambda Functionsでクライアント情報を取得する必要があります。
たとえば、クライアントのIPアドレスを確認します。API Gateway(Lambda Proxy)→ Lambda Functions(Golang)を構築してみました。
Lambdaで、APIGatewayを呼び出したクライアントの情報を取得しました。Golangのサンプルコード:
“`
package mainimport (
“context”
“fmt”
“github.com/aws/aws-lambda-go/events”
“github.com/aws/aws-lambda-go/lambda”
)func handleRequest(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
strInfo1 := request.RequestContext.Identit
AWS CLIインストールした際にエラーの対処方法
### AWS CLIインストール時にawscliが機能しないエラーが発生、解決方法をメモ
#### エラーメッセージ
“`
C:\> aws –version
Traceback (most recent call last):
File “C:\Program Files\Python38\Scripts\aws.cmd”, line 50, in
import awscli.clidriver
ModuleNotFoundError: No module named ‘awscli’
“`#### 環境
Windows10 x64#### 手順
AWSインストールガイドに従ってインストールしました。
“`
C:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
“`
[AWS CLI インストールガイド](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.
AWSLamdbaのエフェメラルストレージ10GB拡張を試してみた
# まえがき
普段サーバサイドエンジニアをしています。
今回はじめてQitaに記事を掲載します。# 概要
3/24のLambdaのアップデートにてエフェメラルストレージが最大10GBまで対応できるようになったため、実際に使ってみました。
https://aws.amazon.com/jp/about-aws/whats-new/2022/03/aws-lambda-configure-ephemeral-storage/元々Lambdaには「ファイルシステム」からEFSを設定することが可能でしたが、
VPCに接続する必要があったり、スループットが必要な案件ではかなり高価なEFSを使う必要がありました。# 設定
マネージメントコンソール上の「設定」から「一般設定」に「エフェメラルストレージ」が増えており、
こちらから更新すること可能ですが、既にServerless frameworkで対応されていましたので、こちらからデプロイしてみたいと思います。
※「エフェメラルストレージ」の機能を使用するにはServerless framework 3.10.0以上を使用する必要がありま
AWS S3コマンドでメタ情報を付与する方法
### 本記事について
AWS S3 へ cp コマンドを使用してローカルの csv ファイルをアップロードする際の出来事。
メタ情報を付与するための S3 コマンドについて調べてもいい感じの記事が見つからない!!
なので対応したときのメモ書きを残します。### そもそも AWS CLI とは?
ターミナル等のコマンドラインツールから AWS を操作するためのインターフェースです。
AWS CLI を利用して、S3 上の対象バケットにあるオブジェクトを移動・削除したり、ローカル にあるファイルをアップロード、逆に S3 から ローカル へ ダウンロード することができます。# 【本題】AWS S3 コマンドでコピー時にメタ情報を付与する方法
※ S3 コマンド実行はWindowsOSを想定“`dosbatch:コマンドプロンプト
rem 送信日をセット
>SET DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%rem メタ情報設定 DドライブのTEST.csvをS3バケット「send-s3」にセットする場合
rem S3 Metadata
Cloud Data Warehouse BenchmarkでRedshiftのデータを準備する
# 背景・目的
– Redshiftの性能や機能を試すためには、ある程度サイズや件数が多いデータが必要になります。
そのため、awslabs/amazon-redshift-utilsリポジトリの[Cloud Data Warehouse Benchmark](https://github.com/awslabs/amazon-redshift-utils/tree/master/src/CloudDataWarehouseBenchmark/Cloud-DWB-Derived-from-TPCH)(以降、Cloud DW benchmarkという。)を利用してデータを準備し、今後の検証に利用します。
– Cloud DW benchmarkは、TPC-Hから派生したベンチマークツールです。3TBと30TB用のディレクトリがあるが、今回は3TBを利用します。# サマリ
– Redshiftのデータを準備しました。
– 一定以上の大きさのデータをさくっと用意するには、awslabsが有用だと感じました。
– ただし、ロードの時間を考えると同一リージョン(us-east-1)に
AWS公式資料で挑むSCS認定(30)-こんな時どうする(全分野その7)
##### [前回] [AWS公式資料で挑むSCS認定(29)-こんな時どうする(全分野その6)](https://qiita.com/mingchun_zhao/items/b9fab772e1e4558a7026)
## はじめに
「こんな時どうする」自作により、理解が徐々に深まるきがします。
この調子で続けます。## 分野1: インシデント対応
– Amazon CloudFrontオリジンのS3バケットに保存したプライベートコンテンツへ、S3 URL経由で疑わしいアクセスが発生した
– S3バケットのオリジンアクセスアイデンティティ(OAI)を設定し、Amazon S3 URLからファイルへの直接アクセスを禁止、署名付きCloudFront URLを使用したアクセスのみ許可
– 設定手順
– OAIと呼ばれる特別なCloudFrontユーザーを作成し、CloudFrontディストリビューションに関連付ける
– バケット内のファイルの読み取りアクセス許可をオリジンアクセスアイデンティティに付与
– 他のすべ
Redshift Data APIを使ってS3のJSONデータを取り込む
Redshiftへ取り込みたいデータがWeb APIでしか提供されていない場合にLambdaでAPIを叩いて取得したデータをRedshiftに取り込むということになると思います。今回はそのような実装したので紹介します。細い説明は省きます。
#### 1. Redshiftのデータベースとテーブルを作成する
#### 2. LambdaでRedshift Data APIを使ってS3にあるJSONデータをRedshiftに取り込む今回のアーキテクチャは以下の通りです
# IAM周りのセットアップ
#### 1. LambdaのIAMロールに「AmazonRedshiftFullAccess」ポリシーをアタッチする
#### 2. Redshift用のIAMロールを作成 & 「AmazonS3ReadOnlyAc