AWS関連のことを調べてみた2022年12月29日

AWS関連のことを調べてみた2022年12月29日

CloudWatch Logsで複数行をひとまとめにする【Laravel】

# CloudWatch Logsが見づらい!
![qiita用.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/290902/cccf1ea4-a18c-c953-d99f-dbfa5e5cb216.png)

EC2インスタンスで吐き出されるログをCloudWatchLogsに集約しているのですが、そのログがけっこう見づらくて困っておりました。
具体的には上記画像のように一つのエラーログが人まとまりにならず、複数行にわかれてしまうことです。
一つのエラーがひとまとまりになれば、何件エラーがあったとか、ログの境目が一瞬でわかるのに…と悩んでおりましたがしょうがないと思っておりました。
今回はLaravelで吐き出されるログをまとめたいと思います。

# multi_line_start_patternでまとまりを作ることが可能

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Co

元記事を表示

個人的によく使うOpenSearchのREST APIまとめ

Amazon OpenSearch Service (以下、OpenSearch)を触っていた際に、API周りでかなり苦戦したので個人用にまとめておく。

# !! 注意 !!

本内容はAmazon OpenSearch Service ver 1.2での挙動です。
OpenSearch ServerlessやElasticsearch、OSSのOpenSearchでは挙動が異なる場合があるのでご注意ください。

# 事前準備

API実行に必要な情報を環境変数に登録しておく。

“`bash
$ ENDPOINT=”OpenSearchのVPCエンドポイント”
$ USERNAME=”aesadmin” # OpenSearch Dashboardsのログインユーザー名
$ read -sp “Please input your password: ” PASSWORD # ログインパスワード
“`
OpenSearchのVPCエンドポイントに関してはAmazon OpenSearch Serviceのコンソールから確認可能。
![image.png](https://qiit

元記事を表示

Amplifyチュートリアル(Vue.js)をやってみた

# はじめに
Amplifyがどのようなものか、あまり理解できていないので、チュートリアルをやってみました。
色々な方がチュートリアルを紹介されていますが、内容が古くなっていたりしていたため、公式(?)のチュートリアルをなぞってやってみました。
(自分のメモがてら記録を残したものになります。)

:::note warn
AmplifyやVueは初心者のため、内容を理解できていない部分があります・・・。(写経です)
(もっと丁寧に解説されている方もいらっしゃるかと思いますが、極力コマンドの結果出力なども入れてみました。)
:::
# 対象のチュートリアル

https://docs.amplify.aws/start/getting-started/installation/q/integration/vue/

# 1. Prerequisites
## 環境

環境要件
“`
Node.js v14.x or later
npm v6.14.4 or later
git v2.14.1 or later
“`
ローカル環境
Windows10 + Windows Termina

元記事を表示

【TIPS】cloud9でpythonのコマンドを打つとエラーが出たのでバージョンを上げる

# やりたいこと
cloud9でテスト環境を作成した際にpythonのコマンドを確認すると以下のようなエラーが出た。pythonのバージョンが古そうな感じがしているのでアップグレードをして対応したい。

“`
hogehoge:~/environment/python $ python -v
import _frozen_importlib # frozen
import _imp # builtin
import ‘_thread’ #
import ‘_warnings’ #
import ‘_weakref’ #
# installing zipimport hook

~~~~長いので省略
“`

# 手順

“`
$ git clone https://github.com/pyenv/pyenv.git ~/

元記事を表示

PythonであるLambda関数から別のLambda関数を呼び出す

最近あるLambda関数から別のLambda関数を呼び出す処理をする際に少し調べたのでメモ。

# 環境

| ランタイム | Python 3.9 |
| — | — |

# 今回の想定ケース

特定のLambdaから別のLambdaをまるごと呼び出す処理を想定。
今回は、以下の`testFunction01`から`testFunction02`を呼び出すような処理を実現していく。

“`python:testFunction01
def lambda_handler(event, context):
print(‘[testFunction01] testFunction01’)
“`

“`python:testFunction02
def lambda_handler(event, context):
print(‘[testFunction02] Called by testFunction01’)
return {‘message’: ‘called by testFunction01’}
“`

# 実現方法

基本的には[inv

元記事を表示

エンジニアになって4年経過 / ここまでやってきたこと

# はじめに
2018年、30代実務未経験 妻子持ちでSES企業へ転職し、初めてエンジニアになってから今まで、ロースキルではありながらもエンジニアというものはなかなか大変な職業だったので(今もエンジニアですが)、これから30代で実務未経験からエンジニアになろうとしている方の一助になればと思い、僕が学んできたことを出し惜しみせずに紹介しようと思います。

ちなみにエンジニアとひとくくりにしておりますが、ソフトウェア保守運用、インフラ保守運用、インフラ運用設計が主になります。

# 目次
[1.はじめに](#はじめに)
[2.エンジニア1-2年目](#エンジニア1-2年目)
[3.エンジニア3-4年目](#エンジニア3-4年目)
[4.現在](#現在)
[5.最後に](#最後に)

# エンジニア1-2年目
31歳SES企業に未経験で入社しました。(2018.7~2020.11)
ローでレガシーな案件にアサインしています。
– 1.5ヶ月Javaの研修
– 0.5ヶ月SQLの研修
-> BIツールの保守改修案件 -> 1ヶ

元記事を表示

(備忘録)AWSのS3を使い、画像をアップロードする方法

# データの保管とは?
* Webアプリケーションでは、毎日たくさんのユーザーより写真や動画がアップロードされてる。
* そのデータはユーザーがいつでも見返すことができるように蓄積しないといけない。
* その時、使うサービスを「ストレージサービス」という。

# ストレージサービスとは?
* インターネット上でデータを保存する場所を提供するサービス
* AmazonのS3はその体表的なサービス提供者

# Heroku、Renderなど、デプロイサイト利用(経由)し、リリースしたサイトに関して、ストレージサービスが必要となる理由
* Userがアップロードした画像などデータは、アプリがデプロイまたは再起動(自動更新)される度に、消えてしまう仕様になっている為
* 但し、有料バージョンはその限りではない。

# AWS、S3の無料使用期間
* 12ヶ月間、一定の使用量までは無料で利用できる
→S3の場合、以下が無料で使える
①5GBの容量
②20,000 件のGetリクエスト
③2,000 件のPutリクエスト
※今後変わる可能性はあり

* 無料枠でS3を利用する際は以下に注意
①不

元記事を表示

AWS Lambdaの再試行回数によって処理を分岐させる方法

業務の都合でAWS Lambdaの処理を再試行回数によって分岐させる必要が出てきたので、その実装を含めシェアします。

# 実現できることのイメージ
※Lambdaは最大2回まで再試行を設定可能です。

“`Java
if (再処理回数 == 0) {
// 処理A
} else if (再処理回数 == 1) {
// 処理B
} else {
// 処理C
}
“`

# とりあえず考えられる方法
基本的に以下の方法は **「Lambdaが再試行されるときはリクエストIDが同じになるのでそれをどうカウントするか」** という考え方が基になっています。

なお、リクエストIDはUUIDっぽいので、他のリクエストIDとは被ることはないという前提です。

– CloudWatch Logsのログを読み取ってリクエストIDをカウントする ([参考](https://zenn.dev/shimo_s3/articles/c2895880138d19))
– DynamoDBなどのDBに記録しつつそれを読み取ってリクエストIDをカウントする ([参考](https:

元記事を表示

EC2フリート とは

## 勉強前イメージ

EC2ってことはわかるけど・・・

## 調査

### EC2フリート とは

AWS EC2インスタンスをの起動する方法の一つで
スポットインスタンスとオンデマンドインスタンスを組み合わせて定義できるものになります。

EC2インスタンスを使用する方法に [スポットインスタンス](https://qiita.com/miyuki_samitani/items/4cebf928334ee60c5219) というものがあります。
スポットインスタンス とはスポットインスタンスとはEC2の空いているキャパシティを活用して
オンデマンドインスタンスより安く使用するインスタンスの購入方法を指します。
しかし、空いているインスタンスがスポットインスタンスになるため、空きがなくなると停止される可能性があります。

そこで有用になるのがEC2フリートになります。
AWSからスポットインスタンスを落とします、と通知があってEC2が止まってしまうとサービス自体が止まってしまう可能性があります。
それだと困ってしまうので、オンデマンドインスタンスを立ち上げる設定ができるのが `E

元記事を表示

MinecraftサーバをAWSで立ててみた #2

# はじめに
この記事は [MinecraftサーバをAWSで立ててみた](https://qiita.com/tonomin/items/de6eb87857fb7abc1d24) の第2回の記事となります。

今回は前回作成したインフラ環境のIaC化を実施してみます。
AWSのインフラ環境のIaCといえば **CDK** ですね。
ということでCDKの作成をやってみましたのでまとめておきます。

今回は、CDK全般のまとめでそこそこの量になったので、Minecraftサーバのためのサブネットやリソースと詳細まとめは次回にします。

# 目次

1. [モチベーション](#Chapter1)
1. [CDK作成](#Chapter2)
1. [参考文献](#reference)



# モチベーション
前回が事実上Minecraftサーバの動作確認だけだったのに、早速CDKを作っていく理由的なものを残しておこうと思います。

これから個人でサーバ構築・運用を試してい

元記事を表示

AWS IAM で、セルフサービスな MFA 環境を作ってみた

# はじめに

AWS のマネージメントコンソールでは、MFA の設定が出来ます。これによってセキュリティレベルを上げることが出来ます。

一点考えないといけないのが、誰が MFA を設定するのか?という点です。AWS を使う人が小規模な場合は、一部の管理者が代わりに MFA の設定を行うことで、MFA の設定を強制化できるでしょう。AWS の利用が大規模になったときはどうでしょうか?全員分の MFA の設定を管理者が行うのは大変です。

そこで、利用者がセルフサービスで MFA の設定を出来るようにすることがのぞましいです。要件を整理するとこんな感じです

– AWS のサービスを利用するためには、強制的に MFA を有効化させたい
– 管理負担の軽減の観点で、自分自身の IAM User に、セルフサービスの MFA デバイスの紐づけを許可させたい。
– 管理者が IAM User を作成したあとに、利用者に ユーザーに ID と Password を展開するときには、**MFA の設定は入っていない。MFA 無しでも、ログインして MFA の有効化が出来る環境が必要**

元記事を表示

使わないRDSをできるだけ停止しておきたい~AWSコスト削減

# はじめに
あなたはAWSを使用していますか?
もちろん、使用していますよね。
今や、世の中のWEBサービスを見渡せば、必ずAWSが目に入ってきます。
にもかかわらず、ほんの1年前まで私はAWSが何なのかさえ良く分かっていませんでした。
たぶん業界を一歩離れると、「AWS?名前は知ってるし、ロゴ的にAmazonに関わる何かだということも知ってるけど…」みたいな人も多いのではないかと思います。
そんな超初心者の私も今年IT業界の扉をたたき、AWSの中に入る機会が増えてきたので最近やったことを記事にしてみました。

## 電気料金とAWS請求料金は上がり続けるのか
会社のインフラチームから、「君の使ってるアカウントのAWS料金高すぎぃ!」って怒られました。(多少盛っています)

1か月以上ログインしてないんだけど、どうして!?
あ、停止したはずのRDSが起動してるじゃん!

そういえば停止するときに、「1週間後に再起動するからね!」って言われた気がするけどすっかり忘れていました…

### RDSの料金についておさらい
RDSの料金には、ざっくり以下のタイプがあります。
1. サーバーイ

元記事を表示

AWS OrganizationsでメンバーアカウントにAWSアカウント名を取得させる

## やりたいこと
AWS Organizationsを運用している際、メンバーアカウント内の動的処理で自身の「AWSアカウント名」を取得したい。
(ユースケース:各アカウント内からアラートメールを送信する際に、メール件名にアカウント名を追加するときなど)

## 対応方法
アカウント名を動的取得するには基本的に`organizations:DescribeAccount`のアクションが必要となります。
ただし、こちらはOrganizationsの管理アカウントでしか利用できませんでした。

そのため

* 別途DynamoDBやS3にアカウント情報を定期保存するなど別の保存領域を使って取得する
* メンバーアカウント毎のIAMロールを管理アカウントに用意して、AssumeRoleしてもらう

などあまり美しくない方法しかなかったのですが、「Organizations の委任管理者機能」のポリシー調整でシンプルに実現出来ました。
「Organizations の委任管理者機能」については以下クラスメソッドさんの記事が分かりやすいのでご参照ください。

https://dev.class

元記事を表示

AWS Amplifyでメモアプリを構築

今回は、AWS公式の以下チュートリアル/ハンズオンを実施し、Amplifyを使ったメモアプリを構築したので、その内容を説明します。
本記事の多くは以下2つの記事の解説/引用となっています。
> AWS Hands-on for Beginners AWS Amplify を用いたWebサイトの構築方法を学ぼう
https://aws.amazon.com/jp/blogs/news/aws-hands-on-for-beginners-19/
> Amplify Dev Cnter > Docs (チュートリアル)
https://docs.amplify.aws/start/q/integration/react/

チュートリアルは全て英語で書かれていますが、本記事は日本語で記載し、適宜自分なりの理解を付け加えています。
受講理由は、Amplifyを用いたアプリの開発を検討しているためです。

## 本日のお品書き
– AWS Amplifyってなに?
– ハンズオンの特徴
– ハンズオン内容
– 【おまけ】番外編
– むすび

## AWS Amplifyってなに?
AWS

元記事を表示

【Amlify】Cognitoの認証フォームのサインアップを無効にする方法

チュートリアルのReactアプリにおいて、Amplify UIを使ったCognitoの認証フォームのサインアップ機能を無効にする方法を記載します。クライアントにはログインフォームだけ表示させて、ユーザ登録は、管理者がGUIからできるようにしたいのです。

システムは以下のチュートリアルで用意しました。
> Amplify Dev Cnter > Docs (チュートリアル)
https://docs.amplify.aws/start/q/integration/react/

チュートリアルをやってみたの記事はこちらを参考ください。
> AWS Amplifyでメモアプリを構築
https://qiita.com/ayumu__/items/5a4fc739146f04e88966

## お品書き
– 概要
– サインアップ機能の無効化
– むすび

## 概要
チュートリアルに存在するsrc/App.jsを改変しているため、そちらのコードと比較して無効化の方法を示します。
チュートリアルでは、withAuthenticatorコンポーネントというものでラップすることでサインイン

元記事を表示

MinecraftサーバをAWSで立ててみた

# はじめに

AWSの勉強をしているうちに、「実際なにかサーバ運用してみたほうが勉強になるのでは?」と思い、マイクラサーバを立ててみることにしました。
小さな構成でまずはサーバを構築してみて、徐々にIaC、監視、可用性追求等していきAWSを使ったサーバ運用を体験できればなと思っています。

とりあえず現時点では深いことを考えず、まずは初回ということでシンプルにマイクラサーバを構築していきたいと思います。

# 目次

1. [Minecraftサーバとは?](#Chapter1)
1. [ネットワーク/サーバ構成](#Chapter2)
1. [Minecraftサーバ構築](#Chapter3)
1. [参考文献](#reference)



# Minecraft サーバとは?
実はそんなにマイクラをやったことありません!!!!!
全くプレイしたことないわけではないのですが、マイクラ自体に詳しいわけではないです

(裏目標として

元記事を表示

Ruby on Rails + Vue.js + AWS Fargate + Circle CiでSPAアプリを作成してみた

## はじめに
最近、と言ってもこのアプリを作ったのは2021年終わりから2022年前半くらいになるのですが、
未経験エンジニアのポートフォリオのレベルがだいぶ上がっているという話を耳にすることが多く、未経験で業界に飛び込んだ自分も負けていられないなという思いから業務後にコツコツアプリを作ってみました。

先に言い訳をしておくと、転職活動中だったこともあり`Terraform`でインフラのコード化までやり切ることができず、テストコードも未実装というかなりお粗末なアプリになってしまいました。反省。。。
ただ、業務と並行して未経験の技術をキャッチアップしていたことが転職面接時には結構ウケが良かったので、ある程度プラス評価はしてもらったかなと思っています。
あとシンプルに自分の作りたいものが形になっていくのはやっぱり楽しい

API Gatewayから直接S3をアクセスしてみました

新しいサーバーレースのサービスをやってみまして、S3のファイルからAppStoreやGoogle playに自動リダイレクトする。s3のファイルは自動にリダイレクト出来ますがDomainの設定は出来ませんのでインターフェースを使わなきゃ!

## cloudfrontについて

Cloudfrontを使えますがまたACMが東京リージョンのため代替ドメインに設定できないです。

:::note warn
Amazon CloudFront で ACM 証明書を使用するには、米国東部 (バージニア北部) リージョン の証明書をリクエスト (またはインポート) していることを確認します。CloudFront ディストリビューションに関連づけられたこのリージョンの ACM 証明書は、このディストリビューションに設定されたすべての地域に分配されます。
:::

残ってるはApi Gatewayになります!

## Api Gateway

Api Gatewayは結構前から存在してまして、HTTP APIやRest Apiが使えますサービス。その上にACMを対応してますので使う!

それから色々

GitHubからCodeCommitへのミラーリング方法とハマったこと

# はじめに

表題の通り、この記事は GitHub Actions によるミラーリングで、GitHub にあるレポジトリを CodeCommit へと同期する方法と、その際に詰まったポイントについて書いてあります。

# 参考にした記事

「そもそもGitHub Actionsを用いたミラーリングってどうするんだろう?」となっている人は以下三つの記事あたりに目を通してもらうと良いかと思います。
– [GitHub Actionsを使ってGitHubリポジトリをCodeCommitリポジトリへミラーリングする](https://dev.classmethod.jp/articles/mirror-github-repository-to-codecommit/)
– [GitHubへのPush時にAWS CodeCommitに任意のブランチを同期する](https://zenn.dev/itouuuuuuuuu/articles/3d9ba9cd92cc33)
– [【AWS】GitHubをCodeCommitにミラーリングする](https://chibinfra-techblog.

CloudWatchでRailsアプリケーションログの10秒以上の処理を抽出するフィルタの書き方

# はじめに
医療系クラウドサービスを提供しているレイヤードという会社で働いています。

今回あるサービスのデータベースにおいて`Lock wait timeout exceeded`が発生し、やたら処理時間が長いヤツがいそうだゾ(しかもトランザクションかけてやがる!)、という事で犯人捜しをした時のメモです。

AWSのClowdWatchでRailsのproductionログを対象に「◯秒以上の処理」を検索しました(しょーもなくてごめんなさいw)。
RailsのログでなくてもDBやWebサーバのログ検索も同様に使えると思います。

# 前提
当然ながらClowdWatchにログを上げている前提です。
Railsのログは下図のようになっており矢印のms箇所を検索します。
[![Image from Gyazo](https://i.gyazo.com/38b43cfc7f81df1c54d564b685b6aee9.png)](https://gyazo.com/38b43cfc7f81df1c54d564b685b6aee9)

# 手順
– ClowdWatchの画面で「ログのイン