- 1. 【AWS】【Wordpress】EC2=t2.microでwordpress環境を構築して困った話
- 2. サーバレスとAWS Lambdaについてまとめてみた
- 3. AWS Snowball Edge の高速化されたNFSサービスを試す
- 4. Cognitoとnuxtでメールの2段階認証を開発する方法
- 5. Amazon CognitoのHostedUIで認証を入れたReactアプリのMyテンプレート
- 6. CloudFormationで作成しようとしているECS ServiceでCapacity is unavailable at this time.と言われ続けいつまで経ってもECS Serviceの起動が完了しない場合の対処法
- 7. Amazon EBS gp3のコストとパフォーマンス
- 8. cdk-nag(python)で特定ルールを対象外(サプレス)とする方法
- 9. AWS Elastic Beanstalk デプロイ特性まとめ
- 10. 特定のAWSサービスからのみSQSへのアクセスを許可するアクセスポリシーの設定
- 11. AWS Cognitoを使用してログイン機能を実装する
- 12. AWSについての個人的メモ
- 13. AWS SAM with CDK
- 14. Amazon Cognitoのユーザープールでハマったこと
- 15. AWS CDKでエラーを発生させたい
- 16. aws-vault: error: exec: aws-vault sessions should be nested with care, unset $AWS_VAULT to force
- 17. 【実務6ヶ月】【AWS】EC2からも外部からもS3にアクセスする方法
- 18. AlteryxでAmazon Auroraと接続
- 19. CDK Pipelines でマルチアカウント CI/CD をやってみた (AWS CDK v2)
- 20. AWS Glue Data Catalog を理解する
【AWS】【Wordpress】EC2=t2.microでwordpress環境を構築して困った話
## 結論
t2.microでwordpress環境の構築・運用は厳しい## この記事を書いた理由
ネットでwordpressの環境について調べると、個人ブロガーがt2.microで大丈夫、的な記事が結構あったが、**ちょっと本格的なことをしようとすると全然ダメ**なのでお勧めできない、といいたい## 経緯
顧客の依頼で、wordpressで記事コンテンツに特化したサイトを作りたいので、環境を構築してほしいと依頼があった。不動産サービスサイトをうちで構築し提供しているが、それにドメインだけ同じようなものが欲しいとのこと。
不動産サービスサイトがAWS環境のため、同じVPC内で構築した
## 要件
– 不動産サービスサイトと同じドメインを利用(SEO対策+地続きのサイトとしてエンドユーザーに見せたい)
– 別途既存とは全く違うec2で、wordpress環境
(不動産サービスサイトはlaravel環境)– テーマは先方で有料のものを購入
– プラグイン+コンテンツ等は先方でwordpressをいじれる人がいるので、その人が導入、作成
– 構築中に費用が極力掛か
サーバレスとAWS Lambdaについてまとめてみた
# はじめに
このブログはサーバレスとAWS Lambaについて自身が学習した内容のまとめ記事となります。
自身が理解しやすいように平易な表現を使って構成しているため、著しく正確性に欠ける情報がありましたらご指摘いただけると筆者は大変喜びます。# サーバレスについて
釈迦に説法かもですが、Lambdaを理解する前にサーバレスについて大きくまとめました。
サーバレスという言葉で調べると「Google Cloud Functions」や「Azure Functions」など各社類似したサービスや説明がありますが、本記事では「AWSにおける」を枕詞として読み進めてください。## サーバレスとは
アプリ開発者がサーバーを意識せずにアプリを開発・運用できることを指します。
サーバレスでは、サーバーの構築・保守・負荷対策までをサーバーレスの提供会社が担います。実際にはサーバ自体は存在するため、サーバレスという言葉は「アプリ開発者」目線に立った表現という理解でいるとわかりやすいと思います。## 従来通りサーバを所有すると
通常アプリの開発・運用にはサーバを用意し、必要に応じたOSや
AWS Snowball Edge の高速化されたNFSサービスを試す
概要
======
AWS Snowball Edge は、S3インターエイスだと高速だけどNFS(ファイルインターフェイス)だと遅いのが問題でした。
これが高速化されたと聞いて、再び借りてみた話。
![s0.jpg](https://qiita-image-store.s3.amazonaws.com/0/96018/30bfa45d-1c79-9b5a-dbc5-f9223435b8b8.jpeg)これまでの経緯
======
最初に借りたのは2017年10月。
NFSサービスで日本語等のマルチバイト文字を含むファイル名のファイルを書き込むとフリーズするバグに遭遇しこれをフィードバック。返金となりました。
当時の記事はこちら。 https://qiita.com/zakky/items/9486147d4c7f85415f502回目は2018年11月。
前回のフィードバックが反映されNFSサービスのバグが修正されていました。
問題無く動作はするものの、転送速度が遅く結局S3インターフェイスで苦労しました。そして今回。
NFSサービスが高速になったと聞いて借りてみました。
Cognitoとnuxtでメールの2段階認証を開発する方法
## 前提知識
– nuxt
– Cognito
## フロント側
以下をコマンドプロンプトなどに入力し、amplifyのライブラリをインストールする。(引用サイト:amplifyAPI)
“`console
$ npm install aws-amplify @aws-amplify/ui-components
“`amplifyのAPIを使用し、Cognitoへユーザー名やパスワードなど必要な情報を送信する。
“`diff_javascript
import { Auth } from ‘aws-amplify’;async function signIn() {
try {
await Auth.signIn(username, password);
} catch (error) {
console.log(‘error signing in’, error);
}
}
“`
2段階認証では、1段階目の認証で作成したuserとバックエンド側で作成した認証コードを送信する。
“`diff_javascri
Amazon CognitoのHostedUIで認証を入れたReactアプリのMyテンプレート
# 概要
Cognito UserPoolの”Hosted UI”(ホストされたUI)という組み込みのログイン画面で認証を入れたReactアプリを構築する自分用テンプレート(バックエンド構築用のSAMテンプレート+シンプルなReactアプリ)を作成したので公開したものです。
ある程度AWSの知識がある方向けの記事となっております。
構築後の全体イメージとしては下記のようになります。
![draw-20221030.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2531623/57ecf1a8-02d4-b947-be16-15d9ca84df99.png)バックエンドをLambdaで処理するHTTP API(API Gateway)へのAPIリクエストを行うまでの最小限の実装を含んだテンプレートとなっています。
SAM(サーバーレスアプリケーションモデル)のCLIでビルドとデプロイすることでAWSのバックエンド側リソースが構築され、NodeJSがインストールされている環境で”npm start”
CloudFormationで作成しようとしているECS ServiceでCapacity is unavailable at this time.と言われ続けいつまで経ってもECS Serviceの起動が完了しない場合の対処法
# TL; DR
Graviton2 FargateでFargate Spotを使おうとして失敗した後に、テンプレートファイルを元に戻した状態で再度スタック更新しようとすると発生します。
# 内容
AWSにおけるCloudFormationで、ECSサービスとタスク定義のリソースをGraviton2 Fargateにより作成していました。
その際に発生したエラーと解決策です。## 問題
次のようなCloudFormationテンプレートをデプロイしていました。
内容は、ECSサービスとタスク定義をGraviron2 Fargateで起動する、というものです。“`yaml:元のtemplate.yaml
Resources:
# 説明に必要な項目のみ抜粋ECSTaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
RuntimePlatform:
CpuArchitecture: ARM64 # Graviton2であることを表す
R
Amazon EBS gp3のコストとパフォーマンス
# はじめに
Amazon EBS (Amazon Elastic Block Store)
・耐久性に優れたブロックレベルのストレージボリューム。
・EC2インスタンスにアタッチして利用する。# EBSの種類
[Amazon EBS ボリュームの種類 \- Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-volume-types.html)■ 汎用 SSD ボリューム
・汎用 SSD (gp2) ボリューム
・汎用 SSD (gp3) ボリューム — 最新世代の汎用 SSD ボリューム■ Provisioned IOPS SSD ボリューム
・Provisioned IOPS SSD (io2) ボリューム
・プロビジョンド IOPS SSD (io2) Block Express ボリューム
・Provisioned IOPS SSD (io1) ボリューム■ スループット最適化 HDD ボリューム
■ Cold HD
cdk-nag(python)で特定ルールを対象外(サプレス)とする方法
# はじめに
皆様、AWS CDK(以後、cdk)はご利用されているでしょうか。
AWS公式が出しているIaCということでリソースのアップデートも早く、便利ですよね。
そのcdkのチェックツールとして**cdk-nag**というツールがあります。cdkで作成するリソースがAWSのベストプラクティスなどのルールに則っているかをチェックしてくれるツールです。
(例:S3のバケットはSSEの暗号化がされていること)https://aws.amazon.com/jp/blogs/news/manage-application-security-and-compliance-with-the-aws-cloud-development-kit-and-cdk-nag/
このcdk-nagはcdk deployコマンドを打つと自動でチェックしてくれますが、どうしても**特定のルールはチェック外にしたい**ということがあると思います。そんなとき、python版のcdk-nagだとどのように記載すればよいかを調査しました。
# やりたいこと
– python版のcdk-nagで、IAM4のルー
AWS Elastic Beanstalk デプロイ特性まとめ
# はじめに
AWS Elastic Beanstalkにおけるデプロイポリシーの理解# Rolling
現在のインスタンスを利用して更新する
サービス停止が発生しない(が一時的に構成が弱くなる)
バッチサイズを指定する
デプロイしているインスタンスはサービス停止状態
新旧バージョンが混在するイメージとしてはシステムが止まらないようにインスタンスを一部に切り分けで順番にバージョンアップしていく
# Rolling with additional batch
新しいのインスタンスを利用して更新する
サービス停止が発生しない(新たなインスタンスを使用する為構成も弱くならない)
バッチサイズを指定する
新旧バージョンが混在するRolling比べて、デプロイ中の構成が弱くならないのが特徴(インスタンス増えるので料金は上がる)
# All at once
デプロイの時間が一番短い
サービスの停止時間が発生する
同時にすべてのインスタンスにデプロイをかける
特定のAWSサービスからのみSQSへのアクセスを許可するアクセスポリシーの設定
# はじめに
特定のサービスのみSQSへのアクセスを許可するポリシー設定についてまとめます。
![スクリーンショット 2022-10-30 22.19.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/988747/c9e917ce-89e6-d73a-2938-a29c2569d67e.png)# SQSのアクセスポリシー
今回は、EC2とSNSのみを許可した場合になります。
`Principal`内の`Service`と`Condition`内の`aws:SourceArn`にSQSがアクセスを許可するサービスを記載します。“`json
{
“Version”: “2008-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“Service”: [
“sns.amazonaws.com”,
“ec2.amazonaws.com
AWS Cognitoを使用してログイン機能を実装する
# はじめに
この記事では、AWS Cognitoを使用して以下の機能の実装方法を説明します。
– メアドとパスワードを使用したサインアップ、ログイン、ログアウト、アカウントの削除
– CognitoのUIを使用する場合
– 自分でUIを用意する場合(途中)
– パブリックサービスを使用したサインアップ、ログイン、ログアウト、アカウントの削除(まだ書いてません)# 前提知識
## フェデレーションとはhttps://blog.serverworks.co.jp/tech/2017/07/19/aws-federation/
## ユーザープールとIDプールの違い
CognitoにはユーザープールとIDプールという主な2つのコンポーネントがあります。両者の違いについて公式ドキュメントでは以下のように説明されています。> ユーザープールでは認証 (アイデンティティの検証) ができます。ユーザープールを使用すると、アプリユーザーはユーザープールを通じたサインインや、サードパーティーのアイデンティティプロバイダー (IdP) を介した連携ができます。
>
> I
AWSについての個人的メモ
# はじめに
あくまで個人的メモです。特に記事を1つ作るほどでもないけど、覚えときたいことをちょこちょこメモする用です。# 役立つ資料
https://dev.classmethod.jp/articles/aws-summary-2022/
https://docs.aws.amazon.com/ja_jp/index.html
https://dev.classmethod.jp/articles/aws-beginner-docs/
https://speakerdeck.com/iselegant/sustainable-pcidss-operation-on-aws
## ハンズオン
### サーバーレスをサクッと作る
– Lambda、API Gateway、DynamoDBを勉強したい人におすすめhttps://aws.amazon.com/jp/builders-flash/202011/hajimete-serverless-handson/?awsf.filter-name=*all
https://aws.amazon.com/jp/build
AWS SAM with CDK
## 概要
先日`AWS CDK Conference Japan 2022`でCDK開発にSAMを取り入れている方がいらっしゃいました。SAMはなくなんとなーく知っている程度だったのですが、CDKのローカルテストに使うことができたりと面白そうだなと思ったのでサービスの概要からCDKで作成したテンプレートをSAM CLIでテストするまでの流れについて調べてみました。## AWS SAMとは
結論から言うとSAMはCloudFormationのTransform機能です。これを聞いて納得した方はこの章はスキップしてください。以下ではもう少し噛み砕いて説明します。
AWS SAMとはServerless Application Modelと呼ばれるAWSが提供するIaCサービスです。SAMはサーバーレスサービスに特化したIaCでYAMLとJSON形式をサポートしています。例えばサーバーレスの代表格であるLambdaをデプロイしたいときは次のように書けばOKです。
“`yaml
AWSTemplateFormatVersion: 2010-09-09
Transform: AW
Amazon Cognitoのユーザープールでハマったこと
## 目的
Amazon Cognitoのユーザープールを触っていたときにSecretHash値のところでハマったのでメモとして書いています。なお、Amazon Cognitoのユーザープール全体の話は別の記事として書きます。## どこでハマったの?
Amazon Cognitoのサービスを使ったことがなかったので使ってみようと思いまして、まずはユーザープールを新規作成しました。その後、アプリクライアントを追加して、適当に新規ユーザーを作成しました。
![スクリーンショット 2021-12-12 215923.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1654639/4465735a-27e2-9eda-8ba4-432789a65584.png)
ただ、ユーザーの作成で作成したパスワードは仮のパスワードなので、ログイン後にパスワードを再設定する必要があります。ユーザーテーブルを見てみると、アカウントのステータスがFORCE_CHANGE_PASSWORDとなっていますね。現実のアプリでもパスワ
AWS CDKでエラーを発生させたい
## 概要
[AWS Cloud Development Kit](https://aws.amazon.com/jp/cdk/) (以下、CDK) は、どの言語を使用していますか。私はTypeScriptを使用しています。TypeScriptを使用していると型のチェックをしてくれるので色々便利ですが、undefinedを考慮する必要があるので困ることがあります。
そういったときに強制的にエラーを発生させる方法について調べました。
## 困ったこと
別のスタックあるいは手動作成したDynamoDBテーブルに対してDynamoDB Streams => Lambdaといったアーキテクチャを持つスタックを新規で作成したいとします。
DynamoDBテーブルの情報を取得するために`Table.fromTableAttributes()`を使用することで`tableStreamArn`へアクセスすることができます。
“`typescript:
// 作成されているTable情報を取得
const dynamoDBTable:ITable = Table.fromTable
aws-vault: error: exec: aws-vault sessions should be nested with care, unset $AWS_VAULT to force
## 解決策
aws-vault を使っているとたまにでるこのメッセージ。
“`bash
aws-vault: error: exec: aws-vault sessions should be nested with care, unset $AWS_VAULT to force
“`よくわからずこれが出るたびにターミナルを開き直している人もいるはず。
`unset AWS_VAULT`を実行すれば解決します。注意点としては`$`をつけないことです。
“`bash
unset AWS_VAULT
“`
【実務6ヶ月】【AWS】EC2からも外部からもS3にアクセスする方法
EC2からもDCからもS3にアクセスする方法を備忘として記録しておきます。
# プライベートからS3にアクセスする方法
プライベートサブネットにEC2を設置し、S3を作成します。次にEC2を設置しているVPC内にゲートウェイ型のエンドポイントを作成します。
![スクリーンショット 2022-10-30 11.32.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1828177/b43daf41-6342-5154-2b19-765de67caf1d.png)
[VPC]-[エンドポイント]-[サービス]
エンドポイントの検索欄に「s3」と入力します。画面右にスライドさせると「タイプ」の一覧に「Gatteway」が表示されている「com.amazonaws.ap-northeast-1.s3」を選択します。![スクリーンショット 2022-10-30 11.42.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.
AlteryxでAmazon Auroraと接続
# はじめに
Alteryxで、色々なデータソースとつないでみています。
https://qiita.com/a_b_/items/4c58e6bf7f4761273b36
https://qiita.com/a_b_/items/7c9243b5aa9ab6c7bbc2
https://qiita.com/a_b_/items/83e900dcd4dd89a270b7
今回はAWSのAmazon Auroraと接続してみました。
Alteryx上ではAuroraは他データソースと別扱いになっていますが、前回のRDSと変わらない使用感でした。# Amazon Aurora
## 環境構築### VPC
前回のRDSと同じものを使います。https://qiita.com/a_b_/items/83e900dcd4dd89a270b7
### 作成
標準作成を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/81650f8b-f17c-9cb3-6
CDK Pipelines でマルチアカウント CI/CD をやってみた (AWS CDK v2)
# はじめに
[前回の記事](https://qiita.com/sugimount-a/items/3c1bd1a47c37f3fe3425)では、CDK v2 を使って単一の AWS アカウントにデプロイする方法を確認しました。今回の記事では、CDK Pipeline を使って複数の AWS アカウントに対して CI/CD パイプラインを構成する方法を整理していきます。
前回は、手動で cdk コマンドを実行することでデプロイを行いました。この方法は開発するエンジニアが少ないうちは問題ないと思いますが、人数が多くなってくると運用が難しくなります。cdk を使ったデプロイを同時に行うことはできないので、特定の人が特定の環境でコマンド実行することになります。この問題点は、特定の人がボトルネックになりデプロイのスピードが落ちること、また、環境が壊れたときの復旧が面倒なことが挙げられます。
そこで、Git をつかった CI/CD を使って解決しようというのが、今回の記事の内容です。CDK Pipeline を使うことで、CDK の CI/CD パイプラインを比較的簡単に構築が出来ます
AWS Glue Data Catalog を理解する
# AWS Glue Data Catalog を理解するために
初めてクラウドサービスを使用する&初めてAWS Glue で ETL 処理のジョブを作って色々やってみようとするとき、不意に登場するのが AWS Glue Data Catalog ではないだろうか。
**「何のために Data Catalog は存在するのだ?」**
**「Data Catalog はなくても ETL できるんじゃないの?」**
こんな思いをした皆さんにこの記事が参考になれば幸いです。
本来はより詳細な Data Catalog の技術記事を紹介しようと思いましたが、今回は「Data Catalog は重要なのね」と理解することがゴールになります。また、ただのツール説明ではなく、データエンジニアリングやデータ基盤を構築するデータエンジニアとしての視点を交えて書いてみました。とりあえず AWS Glue Data Catalog の存在意義を知るなら AWS Glue というサービスの全体を理解する必要がありそうです。
## はじめに AWS Glue のサービスを理解しよう