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

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

AWSとは

# はじめに
AWSとは、Amazon Web Serviceという、通販大手のAmazonが手がける、クラウドサービスになります。クラウドサービスというものを簡単に表すと、
#### 「インターネット経由で、サーバーやストレージ、ネットワークなどを提供してくれるサービス」

です。インターネット経由であることから、場所を問わず、インターネット環境さえあれば利用することができます。数多くあるサービスの中から、自分に必要なものを組み合わせることで、理想的なシステムを実現させることができたりします。少し時間の経った情報ではありますが、2019年9月時点で、222種類ほどのサービスがあるようです。(source : POTEPAN STYLE)

# 利点
AWSでは、システム開発や運用に必要なものを全てと言っていいほど提供してくれます。従来の提供事業者では、それぞれのシステムをいろいろな事業者から借りる必要がありましたが、AWSの場合はさまざまなシステムに必要なものを一式提供してもらえるという点が利点の一つでもあります。

料金体制は、従量制を採択されています。従量制とは、使用した分だけ料

元記事を表示

AWS公式資料で挑むSCS認定(44)-こんな時どうする(全分野その21)

##### [前回] [AWS公式資料で挑むSCS認定(43)-こんな時どうする(全分野その20)](https://qiita.com/mingchun_zhao/items/f14591ba121837755f58)

## はじめに

今回も引き続き、「こんな時どうする」集の作成です。

## 分野1: インシデント対応

– 不審なIPアドレスからの、特定クエリ文字列が含まれたリクエストをブロックしたい
– AWS WAFのWeb ACLでトラフィック情報のログ記録を有効に設定し、事前定義ルールによりリクエストをブロック
– AWS WAFはWebアプリケーションファイアウォールで、ウェブリクエストを許可/ブロック/監視(カウント)するルールを設定し、ウェブアプリケーションを攻撃から保護
– ルール条件にはIPアドレス、HTTPヘッダー、HTTP本文、URI文字列、SQLインジェクション、クロスサイトスクリプトが含まれる
– AWS WAFがウェブサイトやアプリケーションを保護する方法
– Amazon CloudFron

元記事を表示

【Glue】約9万件のパーティションを作る時間を計測してみた

# 背景・目的
以前、[こちら](https://qiita.com/zumax/items/85c028e968e8368cd8b4)の記事でAthenaのパーティションインデックスの効果を検証した際に、パーティションをMSCK REPAIR TABLEで作成しました。
MSCK REPAIR TABLEの場合には、**6時間9分46秒**もの時間を要したので、Glue Crawlerで作った場合にはどれくらいの時間がかかるか検証したいと思います。

# まとめ
– 9万弱のパーティションを作成するのに、MSCK REPAIR TABLEとGlueのCrawlerでおおよそ、5時間44分46秒(93.23%の削減率)もの差がありました。
– Glue Crawlerが圧倒的に速かったです。
– Glue Crawlerがどのようなアルゴリズムで実行されているのかは不明だが、プロダクション等で利用する場合はCrawlerを選択したほうが良いと思います。

# 実践
## 事前準備

– 前回同様の条件で実施するため、事前に確認します。

### S3パスの確認

– 前回と同様

元記事を表示

CloudFormationでIAMユーザー作成を自動化

QiitaやYouTubeでAWS操作を共有するときに、ユーザー情報を隠すのが面倒くさい・・
じゃあIAMユーザーを使い捨てにしよう!っということでIAMユーザー作成を自動化します。

# jsonファイル作成
まず、IAMユーザー作成のjsonファイルを作ります。

~~~json:createIamUser.json
{
“AWSTemplateFormatVersion”: “2010-09-09”,
“Description”: “Template for creating Initial IAM”,
“Resources”: {
“IAMUserInitialAdmin”: {
“Type”: “AWS::IAM::User”,
“DeletionPolicy”: “Retain”,
“Properties”:{
“UserName”: {“Fn::Join” : [
“”,

元記事を表示

EC2のキーペア ssh接続の際の権限エラーの解決方法

# 目次

* 初めに
* 環境
* 経緯
* エラーの対処
* 参考文献

# 1. 初めに
* こちらの記事はEC2インスタンスにssh接続をしようと際に吐いたエラーの対処になります。
* EC2初心者の方向けの記事兼自分のエラー対処の記録となります。

# 2. 環境
Mac OS Monterey 12.2

# 3. 経緯

* チーム開発の際、EC2のプライベートキー(pemファイル)をslackで貰い、ローカルに保存し、
ssh接続で”ssh -I [pemファイルのパス].pem [接続先のURL]”で接続を試みると、、、

“`
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for ‘[pemファイルのパス].pem’

元記事を表示

AWS Certified Solutions Architect – Professional(SAP)取得のための勉強方法と試験前に心がけたこと

# はじめに
以下のAWS認定資格を取得しました。

* AWS 認定 クラウドプラクティショナー(CLF)
* AWS 認定ソリューションアーキテクト – アソシエイト(SAA)
* AWS 認定ソリューションアーキテクト – プロフェッショナル(SAP-C01)

本記事では、SAP取得までの約2ヶ月間本気で取組んだ**勉強方法**と試験時に**パフォーマンスを最大限発揮するために心がけたこと**についてご紹介します。
恥ずかしながら1回落ちたんですが、2回目で合格するために**心がけた教訓**をまとめております。
皆様のお役に立てば幸いです。

:::note warn
「これで絶対合格できる!」といった保証はできませんので参考程度に見ていただければと。。
:::

:::note warn
AWS認定試験の規約により試験内容の情報公開はNGとなっているため、試験内容については一切触れません
:::

# SAP試験対策

### 1.SAP試験ガイドを確

元記事を表示

Laravel 8でセッションドライバーをDynamoDBに設定

# 前提(Laravelのセッション保存先)
Laravel 8.xでは.envファイルの設定でセッションの保存先を指定することができます。
+ file – サーバ内にテキストファイルで保存(storage/framework/sessions配下)※デフォルト
+ cookie – ユーザのアクセス元ブラウザのクッキーで保存
+ database – DBに保存
+ memcached/redis – キャッシュDBに保存
+ dynamodb – AWS DynamoDBに保存
+ array – (永続しない)

「file」がデフォルトで、サーバ内に保存される形になっています。
EC2を冗長化する際などには、保存先のディレクトリをEFSやディスク共有、lsyncdなどでファイル同期をかけないと、片系インスタンスのセッションをもう一方のインスタンスで処理するときにデータが使えない状態になります。
実稼働環境ではDBやキャッシュDBを利用するケースが多いかもしれません。
簡単なアプリケーションであれば、手っ取り早くもっとも簡単に設定できる「cookie」を選択することもあるかもし

元記事を表示

こんなご時世に、旅行者向けのアプリ開発したやつがいるんですよ~

まじでやっちまったな。

# はじめに

こんにちは、やぐちはるおです。

新卒で入ったSIerを退職し、**大学時代の友達の家を売却した資金**で起業して[^1]
コロナ禍で冷え切った旅行業界を大いに盛り上げる旅行者のためのアプリとして
旅行プラン共有SNS「tripqot」のβ版を無料公開しました。

こちらアプリ画面です↓

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608452/501f5ebb-d1d4-4c76-44bd-ff7e24235ce1.png)

# 旅行の計画をラクにしてくれるアプリです

旅行するときって綿密か適当かはともかく、そこそこ計画を立てて(※1)行きますよね(※2, 3)

「今度旅行しよ!」みたいなことをグループLINEで誰かが言い出してみたものの
計画するのが面倒でポシャった

元記事を表示

RDSのアラートログで「Thread 1 cannot allocate new log」が出力された時の対応

# 目次
[1.前提](#1-前提)
[2.事象](#2-事象)
[3.とりあえずエラーメッセージで検索した結果](#3-とりあえずエラーメッセージで検索した結果)
[4.ログファイルサイズを大きくしたが](#4-ログファイルサイズを大きくしたが)
[5.困ってサポートに問い合わせた結果](#5-困ってサポートに問い合わせた結果)
[6.感想](#6-感想)

# 1. 前提
+ データベースエンジンはOracle 19c
+ 作成直後のRDSで、後述するエラー発生条件である膨大な更新処理などは実施していない

# 2. 事象
RDSのアラートログにおいて、5分おきに下記のエラーメッセージが出力されていました。
“`
Thread 1 cannot allocate new log, sequence XXXX Checkpoint not complete
“`
# 3. とりあえずエラーメッセージで検索した結果
クラスメソッド様の[こちら](https://dev.classmethod.jp/articles/rds-oracle-resize-redologfile/)の記

元記事を表示

【AWS】ec2 describe-volumesコマンドでVolumeIDが取得できなかった理由


# 目次

1. [はじめに](#はじめに)
1. [やりたかったこと](#やりたかったこと)
1. [実行環境](#実行環境)
1. [検証](#検証)
1. [ボリュームを復元](#スナップショットからボリュームを復元してみる)
1. [スクリプトの実行](#スクリプトの実行)
1. [さいごに](#さいごに)

# はじめに
大規模なアカウントの場合、膨大な量のスナップショットがアカウント内にあって、どれが不要なものなのかわからない時ってあるかと思います。
そんな時にスナップショットとEBSボリュームIDを紐づけできたらいいなと思ってスクリプトを作成しました。
そして、詰まった個所があったので情報共有します。

# やりたかったこと
「aws ec2 describe-snapshots」コマンドを使用して、スナップショットIDを一覧で取得し、「aws ec2 describe-volumes」コマンドでスナップショットの作成元であるボリュームIDを取得しようと考えていました。
例えば、1つのボリュー

元記事を表示

laravel8 vue3 を conoha から awslightsail に移転

# vue3 を conoha から awslightsail に移転してみた

特に移転する必要はなかったが、万が一のために移転の技術だけは身につけておかないとと思いやってみた。

2時間かからなかったな。
conoha 側はそのまま awslightsail 側にも同じのを作っちゃえば
データはmysql,redisに格納されるわけだから問題なく移転できる。

# (conoha) 移転前のサービス構築環境

・vue3
・laravel8
・redis (外部接続)
・mysql(接続元IP制限)
・gcp (鍵ファイル.json)

上記のような構成のサービスを conoha から lightsailに移動する。

# lightsail側の設定

・php8
・nginx

はインスコ済み
node.js と vue、laravelはインスコも設定は一切していない。

# ファイルを圧縮し、SCP接続で移動

conoha → lightsail
https://qiita.com/ma7ma7pipipi/items/1f1f75f1a4770d6c44c0

この際

元記事を表示

【AWS】ECSについて学んだことをまとめてみた。

こんにちは、k_uki512です。
現在「AWSではじめるクラウド開発入門」という書籍の6章を進めています。
ここでは、ECSとは何かについてまとめていきたいと思います。
## ECSとは?
### 結論
Dockerを使ってAWSに計算機クラスタを作成するためのツールのことです。
Dockerfileに記述した内容で計算機クラスタのインスタンスを操作することができます。
また、ECSでは計算の処理の単位をジョブといいます。

### ECSの動作の流れ
– タスクが投入されるとあらかじめ指定しておいたDockerイメージを外部レジストリからダウンロードしてきます。
(外部レジストリはDockerHubや、AWSが用意したDockerレジストリのECRなどがあります。)
– 計算負荷が小さい仮想的なインスタンスを選別し、その中にDockerイメージを配置することで計算タスクを実行します。
– クラスター内のインスタンスの計算負荷を監視し、負荷に応じてインスタンスを起動したり、停止したりします。この動作のことをスケーリングといい、インスタンスを立

元記事を表示

Amplify Consoleでドメインに紐付いているバージョンをCLIで変更する

AWS Amplify Consoleではドメインに対してデプロイの紐付けを行うことができます。
これにより複数のバージョンをビルド・デプロイしておき、関連付けを変えるだけでバージョンの差し替えが可能です。

ウェブコンソール上で簡単に変えることもできますが、複数のアプリを一括で変更したい際や、CIに組み込んで自動で変更を行いたい場合にはAWS CLIを利用すると可能になりました。

![Screen Shot 2022-04-22 at 15.10.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47327/c7ba56dd-9aeb-796d-ee3a-6b958b165713.png)

変更自体は下記のように `amplify update-domain-association` を呼ぶと可能です。 

“`console
$ aws amplify update-domain-association –app-id ${APP_ID} –domain-name ${DOMAIN} \

元記事を表示

MediaLive の Maintenance Window について

# はじめに
MediaLive Channel に Maintenance Window が導入されていたので、
情報を整理して共有します。

詳細はAWSドキュメントをご覧ください。

https://docs.aws.amazon.com/medialive/latest/ug/maintenance.html

大事なポイントとしては、
メンテナンス対象のChannelは、期日までに**再起動が必要**という点です。
# 確認方法
## 1. AWSコンソール
AWSコンソールのMediaLive Channelページにて、UIが変更されています。
(変更されていない場合は、順次AWSアカウントに適用されていくと思われます)

– Maintenance status
– Maintenance window

最右列に、これらの項目列が追加されています。
![Qiita_pic1_edited.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277934/9c409863-d331-fea5-

元記事を表示

AWS Cognito でLINEログインのボットリンク機能を使う

# 背景

AWS Amplify で作成するアプリに**LINEログイン**を組み込み、ボットリンク機能(LINEログイン時に公式アカウントを友だちに追加する機能)を有効にしようと思ったのですがすんなりと行きませんでした。

[ウェブアプリにLINEログインを組み込む | LINE Developers](https://developers.line.biz/ja/docs/line-login/integrate-line-login/)
[LINEログインしたときにLINE公式アカウントを友だち追加する(ボットリンク) | LINE Developers](https://developers.line.biz/ja/docs/line-login/link-a-bot/)

調査したところ、Cognito側でLINEの認可URLにパラメータを追加することができないようでした。詳しくは下記の記事を御覧ください。

[Amazon CognitoではLINEログインのボットリンク機能は…使えません!](https://zenn.dev/kecy/articles/7e8648dd

元記事を表示

Aurora Serverless v2を30分くらい触ってみた

Aurora Serverless v2がついにGAになったので早速触ってみました。
ホントにただ触ってみた感想なので役には立たないかも。

– v1からv2へのマイグレーションみたいなことができたら嬉しかったけどそんなものはなかった(しょぼり
– 非Serverlessと同じようにWriterインスタンスとReaderインスタンスが立ち上がる
– このインスタンスがリニアにスケールしまくるんだろうな
– Aurora Serverlessのv2というよりはAuroraのインスタンスにServerlessのスケールを組み合わせた感じという印象
– 普通にWriter←→Reader入れ換えのフェイルオーバーとかある。
– でもこれだとReaderインスタンスはさておき、Writerインスタンスは特定のAZに縛られちゃう気がする
– まぁ、既存のServerlessも内部的には1つのAZだけど、スケール時に別AZに移動するから各AZを満遍なく使うことになるのに対してv2だとフェイルオーバーしないと書き込み可能インスタンスがAZを移動しないことになるんじゃないかな
– AC

元記事を表示

AWSでVPCを構築する

本日はAWSでVPCを構築します。

その前に、そもそもVPCとは何か?を簡単にまとめたいと思います。

#

Amazon VPC(Virtual Private Cloud)は、AWS上でネットワークを提供する仮想ネットワークです。
AWSアカウントごとに論理的に区分けされた仮想ネットワーク空間を構築することができ、AWSで取り扱うさまざまなリソースが動く土台となります。

→簡単に言うと、AWSアカウントごとに仮想空間を設定できるサービスがVPC!

#

元記事を表示

AWS EC2でnode.jsのバージョンの下げ方

AWS EC2でnode.jsのバージョンが原因で、上手くいかない…。
そんな時の対処方法を記しておきます。
# 準備
SSHを使用してEC2に接続します。
“`
$ ssh ec2-user@255.255.255.255 -i .ssh/qiita-sample.pem
Last login: Wed Apr 20 20:13:54 2022 from qiita-sample.com

__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|

https://aws.amazon.com/amazon-linux-2/
19 package(s) needed for security, out of 33 available
Run “sudo yum update” to apply all updates.
“`
nvmはnode.jsのバージョン管理ツールです。
“`
$ nvm –version
$ nvm 0.34.0
“`
# nvmの使い方
現在

元記事を表示

【AWS】CloudFormationでセッションマネージャによる接続可能なEC2を構築してみた(VPCEndpoint編)


# 目次

1. [はじめに](#はじめに)
1. [セッションマネージャーとは](#セッションマネージャーとは)
1. [構築概要図](#構築概要図)
1. [スタックの作成](#スタックの作成)
1. [稼働確認](#稼働確認)
1. [よくある間違い](#よくある設定ミス)

# はじめに
CloudFormationでセッションマネージャ接続可能な検証用EC2を構築したい!ってことで第2弾です。
第1弾のNatGatewayを使用したCloudFormationテンプレートはこちらになります。
https://qiita.com/itkz1016/items/1c39f024a00b020c5bd7

1度作成したリソースをそのまま残しておけば検証は楽ですが、思わぬとこでコストがかかってしまったり、多額の請求につながってしまう恐れがあります。

簡単な検証をするためにいちいちサブネット作って、SGを設定して、エンドポイント作成したけど、セッションマネージャでうまく繋がらなかった時ってめちゃくちゃスト

元記事を表示

Lambda(golang)でFargate Spotの終了通知を受けたECSのタスクをNLBから切り離す

# 初めに
生産技術部で製品の検査工程を担当しているエンジニアです。今回は、Fargate spot上のECSに中断通知が来た時のELBに対するDeregisterTargetの実行が保証されない課題に対して取り組みました。

Fargate Spotを利用する目的は、以下の資料にあるように、コスト削減が可能になるからです。
また、Fargateで立ち上げたECSのCapacity ProviderにFargateとFargate Spotを併用することで、システムの安定性とコスト削減を両立した仕組みを実現します。

https://d1.awsstatic.com/webinars/jp/pdf/services/202109_AWS_Black_Belt_Containers303-ECS-Spot-Fargate.pdf

# Capacity Providerの導入
参考実装:

https://github.com/TomoyukiSugiyama/ElasticStack/pull/35/files#diff-e294b70d2a4a1e225aa9f6a19dc7fff8

元記事を表示

OTHERカテゴリの最新記事