- 1. TerraformをインストールしてTerraformでAWS上にEC2作ってみる
- 2. SSM Run Commandを使ってEC2(Windows OS)上でAWS CLIを実行しようとしたときにつまずいた話
- 3. AWS CodeCommitへの接続方法一覧(2022年度版)
- 4. Docker Desktop の代わりになるかも。AWS が OSS として公開した「Finch」を使ってみた。
- 5. AWS AmplifyでNext.jsを12から13に上げた際のトラブルシューティングメモ
- 6. 自己学習記録:Lambda で DynamoDB 連携
- 7. AWS Graviton とは
- 8. CloudFormationでVPC/Subnetを構築する方法
- 9. AWS クラウドプラクティショナー学習記録
- 10. [小ネタ]CDKで作成するAWSリソースに共通タグを付与する方法
- 11. AWSのインスタンスタイプのEOL対応方法
- 12. 50歳近いおっさんがAWS Solutions Architect Associate (SAA-C03)を一発合格するまでのおはなし
- 13. [初心者向け]たった50行のコードでTwitter Botを作成してみる
- 14. VPC内のAWS WranglerでSTSのEndpointに繋がらない場合の対応
- 15. 別スタックで作成したAWSリソースの情報を取得する
- 16. [翻訳記事] AWSで作る、マイクロフロントエンドアーキテクチャ構築
- 17. EC2 上の docker にアクセスする方法
- 18. 【AWS】冗長性のあるLAMP環境の構築(アーキテクチャ図・作業概要・参考文献)
- 19. 変更セットじゃなくて、スタックを消して0から作り直したらできた
- 20. QuickSightからAurora PostgreSQLにネットワークエラーで繋がらないと思ったら原因が違った
TerraformをインストールしてTerraformでAWS上にEC2作ってみる
# はじめに
Terraformの勉強を始めたので備忘録を兼ねて行ったことを投稿しようと思います。# Terraformの実行環境構築
Terraformはtfenvでバージョン管理ができるようなので今回はtfenvでTerraformをインストールします。### tfenvのインストール
macなのでbrewコマンドでインストールします。
“`
brew install tfenv
“`### tfenvでTerraformをインストール
最新バージョンのterraformをインストールします。
“`bash
tfenv install latest
“`### インストールしたTerraformのバージョンを確認します
“`bash
❯ tfenv list
1.3.5
No default set. Set with ‘tfenv use‘
“`### インストールしたTerraformのバージョンがデフォルトバージョンとなるように設定します
“`bash
❯ tfenv use 1.3.5
Switching defa
SSM Run Commandを使ってEC2(Windows OS)上でAWS CLIを実行しようとしたときにつまずいた話
## 環境
“`
OS:Windows Server 2016 Datacenter
SSM Agentバージョン:2.3.542.0
“`## やりたかったこと
SSM Run Commandを実行してEC2(Windows OS)上にあるファイルをS3にアップロードしたい。
実行したドキュメントはAWSが用意している `AWS-RunPowerShellScript`
commandsパラメータとして
“`
“aws s3 cp s3://hogehoge/fugafuga.csv {file_to_path}/fufafuga.csv”
“`を渡して、`{file_to_path}/fufafuga.csv`を S3バケット `hoghoge`上にアップロードしたいという非常にシンプルなもの。
## 事前準備
EC2上でRun Commandを実行するために必要な
1. SSエージェントのインストール
1. EC2への権限の付与などは
[【AWS】【SSM】Systems Manager の SSM エージェントをインストールその他設定して
AWS CodeCommitへの接続方法一覧(2022年度版)
## はじめに
AWS CodeCommit利用にあたって複数の接続方法が存在しているため、
それぞれ違い/利点をまとめた記事になります。## AWS CodeCommitとは
Gitベースのリポジトリを安全にホストする、
フルマネージドサービス型のソース管理サービスこと**CodeCommit**### CodeCommitのメリット
– 認証情報にIAMユーザが利用できるため、余分な認証情報の保持が不要となり認証制御が円滑に行える
– フルマネージドサービスにつきインフラの管理が不要
– 自動的に保管時/転送時にデータ暗号化
– セキュリティリスク低下/運用コスト低下## 前提知識のおさらい
### Gitについて
Gitはオープンソースのソースコード管理システム。Gitではブランチと呼ばれるリポジトリ(データの格納場所)のコピーが作成できる。
ブランチを使用することで、マスターバージョンのコードからコピーして自分の変更を加えることが可能になります。
ブランチのコードを変更したら、コミットという操作を行い差分として変更を登録したり、
共同作業者に変更点を通知して
Docker Desktop の代わりになるかも。AWS が OSS として公開した「Finch」を使ってみた。
# 概要
* 2022/11/23 に唐突に公開された [Finch](https://github.com/runfinch/finch) なるOSSがAWSより公開されました。
* どうやら、Docker Desktopの代わりとなりそうな、ローカルマシン上に仮想環境とコンテナランタイム、ビルドツールなど一式を楽〜に導入できるツールっぽいので試してみたという内容です。Today we are happy to announce a new open source project, Finch. ?
Finch is a command line client for building, running, and publishing Linux containers.
Learn more in this blog from @estesp and @ChrisShort ➡️ https://t.co/5qDdio806E#AWSCloud #containers #opensource pic.twitter.com/TDfcYlwwIs
— AWS Open Source (@AWSOpen) November 22, 2022
# Finchとは
* つい先日(2022/10/27)に、Docker社が、Docker の Team プラン、Business プランを値上げするニュースが発表された。期限も短く、急いで対応に追われた企業も多いのではないでしょうか・・・
https://www.itmedia.co.jp/news/articles/2210/18/news133.html
* まさかこのタイミングでという感じですが、AWS よりローカルマシン上に仮
AWS AmplifyでNext.jsを12から13に上げた際のトラブルシューティングメモ
# 要約
– Amplify の platformがWEB_DYNAMICになっているので、WEB_COMPUTE に変更したらうまくいった
# 事象
Next.jsを12から13に更新後にデプロイで以下のようなエラーになる
“`
Error: Command failed with exit code 1: node_modules/.bin/next build
warn – Invalid next.config.js options detected:
– The root value has an unexpected property, target, which is not in the list of allowed properties (amp, analyticsId, assetPrefix, basePath, cleanDistDir, compiler, compress, crossOrigin, d
自己学習記録:Lambda で DynamoDB 連携
# 背景
業務で使うことになったので、ついていくために、おじいちゃんの自己学習記録。Node.js + AWS で少し見えてきた。
ということで、今度は DynamoDB + Lambda で少し遊んでみる
ゴールイメージは、
1. DynamoDB のテーブルAに値を追加すると
1. Lambda で追加内容に応じて、別テーブルに項目追加# まずは、DynamoDB のテーブル準備
[DynamoDB](https://ap-northeast-1.console.aws.amazon.com/dynamodbv2/home?region=ap-northeast-1#service) にて、テーブル作成とりあえず、適当に以下で作ってみた
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/b8aae7db-33ea-292d-abc9-6c93dd2bebdf.png)## 命名規則とデータ型
https://docs.aws.amazon.com/ja
AWS Graviton とは
## 勉強前イメージ
新しいサービス?
## 調査
### AWS Graviton とは
グラビトンと読み、ARMベースで作られているAWSが独自に設計したプロセッサになります。
ARMとはアームと読み、スマートフォンや携帯電話・タブレットでよく使われる小型かつ省電力のCPUのアーキテクチャになります。
詳細は [こちら](https://qiita.com/miyuki_samitani/items/25e9673136ad03f15ce2) をごらんください。元々パワーが必要なコンピュータにはインテルのx86が主流で、省電力なARMはスマートフォンなどで使われていました。
しかし、AppleのM1チップ(ARM)がインテルのCPUを上回るということで認知度が上がりました。
Apple同様、小型で省電力のCPUがサーバに使われるようになりました。AWSではEC2はもちろん、RDSやEMRなどでGravitonのCPUのインスタンスを選択することができます。
インスタンスでは `c6g.medium` や `t4g.medium` など `g` がついたインスタンスを
CloudFormationでVPC/Subnetを構築する方法
# CloudFromationとは
CloudFormationはプログラミング言語やYAML,JSONを使用してAWSリソースを構築出来るサービスです。
AWS環境をテンプレート化しておくことで、同じ環境を作成する時間を削減することができます。今回はYAMLで作成していきますので、JSONに変換したい方は次の記事をご参照下さい。
YAMLからJSONに変換する方法## 構成図
![スクリーンショット 2022-11-24 21.43.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/0d7177c5-e41b-4ca8-92fa-b023df5b5772.png)## 完成したテンプレート
“`:テンプレート
AWSTemplateFormatV
AWS クラウドプラクティショナー学習記録
# 用語集
|用語|意味|
|:-:|:-:|
|責任共有モデル|AWSの提供側と利用者側の、責任範囲を明確にする為の考え方|
[小ネタ]CDKで作成するAWSリソースに共通タグを付与する方法
## 概要
AWSリソースには付加情報としてタグを付与することができます。
タグは以下のようなケースで、請求金額の管理を行うためなどに利用されます。・同一アカウントで複数環境を作成している場合、作成したAWSリソースがどの環境のものかわかるようにする
・同一アカウントで複数の部署がAWS環境を触っている場合、作成したAWSリソースがどの部署のものかわかるようにする
・同一アカウントで複数のシステムを作成している場合、作成したAWSリソースがどのシステムのものかわかるようにする## 試してみた
では、実際にCDKでタグを付与してみます。
Stack APPのCDKは以下になります。
“`bin/cdk.ts
#!/usr/bin/env node
import ‘source-map-support/register’;
import * as cdk from ‘@aws-cdk/core’;
import { SalesPlanningStack } from ‘../lib/stack_sales_planning’;
import { Development
AWSのインスタンスタイプのEOL対応方法
みなさんが経験したことあるだと思いますがAWSがどんどんリソースを新しくにしてますが、古いリソースがいずれなくなってます、それのせいで前から稼働してるリソースを上げるしかないです。
今年の12月1日はいくつのインスタンスタイプがなくなります
:::note warn
前世代のノード T1、M1、M2、M3、R3 は、2022 年 12 月 1 日にサポート終了 (EOL) になります。2022 年 12 月 1 日より前に、新しい世代のノード タイプにアップグレードすることをお勧めします。
:::その世代はRDSだけではなくて、Elaticacheも影響されてます。なくなるなので自分で新しい世代を変更しなきゃ行けない。
## 普通のやり方
一番やりしやすいは普通にDBを変更する!AWSは次の世代のオススエしてまして、
| Previous Generation Node type | Recommended Node Type |
|:———–|————:|
| cache.m1.small | cache.t3.small
50歳近いおっさんがAWS Solutions Architect Associate (SAA-C03)を一発合格するまでのおはなし
合格できた嬉しさのあまり久々に書いています
### 自己紹介
* 元Web系エンジニア、一年前に転職して現在はシステム発注側の中の人
* 現在の職掌がセキュリティ・インフラ面の担当なのだが、とくにインフラ面がよわよわなのでなんとかせんと感
* あと、開発チックなことがやや恋しい・・・### スペック
* 前職はおもにオンプレのバックエンド側のもろもろを担当していた
* 業務でAWSを触ったことはまったくナシ
* 当時は社内物理サーバ内に構築された仮想環境(xen)を利用して、SSH経由でWebサーバやDBサーバをインストールして設定して、などはやっていた。
なのでEC2を起動してあれしてこれしては比較的理解しやすかったが、それ以外は何ソレ?状態### 教材と利用方法
|No|教材|ジャンル|利用方法|
|:–:|:–|:–|:–|
|1|[AWS認定資格試験テキスト AWS認定ソリューションアーキテクト – アソシエイト 改訂第2版](www.amazon.co.jp/dp/4815607389)|書籍|これだけでは合格は正直無理なのでは?ただ、自分のようにAWS
[初心者向け]たった50行のコードでTwitter Botを作成してみる
## 目次
0. 概要
1. プログラミング初心者のアプリケーション開発の悩みとTwitter Botを題材にした理由
2. 今回、使用する各種サービスの説明とシステム全体の構成図(登場する用語の解説や構成の全体像の解説)
3. 実装
4. まとめ## 1. 概要
### 記事の目的
本記事は、プログラミング初心者向けに、Twitter Botアプリケーションの作り方を紹介します。記事の目的としては、`とにかくアプリケーションを動かしたい人に対して、簡単にアプリケーションが実装できることを理解してもらう`ことにあります。
この記事を通して、アプリケーション開発の第1歩目を踏み出してもらえたらと思います。
### 想定読者
多少言及がありましたが、想定読者は、`プログラミング初心者でアプリケーションとして動くものを作りたい人`としています。### 説明しないこと
– 利用したサービスの選定理由や使用する技術に対する詳細な解説
– 今回のアプリケーションに必要なアカウントの作成手順(参考にできそう記事を添付します)### 説明すること
– 今回使用する各種サービスの
VPC内のAWS WranglerでSTSのEndpointに繋がらない場合の対応
VPC内でAWS Wranglerを利用したところSTSエンドポイントに繋がらないエラーが発生したので、その対応を書いておきます。
# 事象
VPC上のPythonプログラムにて `AWS Wrangler` (現 `aws-sdk-pandas` )を利用しところ、以下のようなエラーが発生。
>botocore.exceptions.ConnectionClosedError: Connection was closed before we received a valid response from endpoint URL: “https://sts.amazonaws.com/”.
[ERROR] Exception: Connection was closed before we received a valid response from endpoint URL: “https://sts.amazonaws.com/”.# 対応方法
以下の2点対応することで解決できました。– 対応➀ VPCエンドポイント作成します
– 対応➁ STS Endpoint
別スタックで作成したAWSリソースの情報を取得する
## 概要
CloudFormationまたはCDKでのAWS環境構築は、スタックと呼ばれるAWSリソースの集合を作成することによって行われます。
スタック作成の粒度は開発者によって様々ですが、別スタックで作成したリソースの情報を利用したい場合があります。
例:
・スタックAでS3バケットを作成
・スタックBで作成するLambdaの環境変数に、スタックAで作成したバケット名を設定この場合、スタックAで作成したバケット名をスタックBで使用するためには以下のような方法が考えられます。
1. エクスポート値を使用しない-1
CloudFormationのAWSコンソールで、スタックAのリソース名を確認。取得したバケット名をスタックB作成のテンプレートにべた書きしてデプロイ2. エクスポート値を使用しない-2
CloudFormationのAWSコンソールで、スタックAのリソース名を確認。取得したバケット名をスタックB作成時に外から注入してデプロイ3. エクスポート値を使用する
スタックA作成時にエクスポート値としてS3バケット名を出力。スタックB作成時にエクスポート値をイ
[翻訳記事] AWSで作る、マイクロフロントエンドアーキテクチャ構築
※こちらの記事は、元ネタの翻訳&サマリーとなっております。
詳細は元ネタをどうぞ。元ネタ
[AWS기반 마이크로 프론트엔드 아키텍처 구축하기 (YouTube)](https://www.youtube.com/watch?v=FUPlSphkPPs)—-
## マイクロフロントエンドとは?
> 個別に開発・デプロイ可能な、複数の小さなWEBアプリケーションを組み合わせて、一つのWEBアプリケーションを作る開発方法論
例:ECサイ
EC2 上の docker にアクセスする方法
EC2 に接続して docker をみてみたい状況ありますよね。
EC2 のインスタンス上で docker を用いて Adminer や nginx などのコンテナを起動した時、そのコンテナのポートにローカルのブラウザからアクセスする方法をお伝えします ?– [TL;DR](#tldr)
– [ローカルの docker 版](#ローカルの-docker-版)
– [EC2 インスタンスの docker 版](#ec2-インスタンスの-docker-版)
– [EC2上から疎通確認](#ec2上から疎通確認)
– [ローカルから疎通確認](#ローカルから疎通確認)
– [最後に](最後に)# TL;DR
重要なのは **SG** の設定です!
## ローカルの docker 版
まずはローカルの docker でコンテナを起動した時、そこにブラウザからアクセスするためには`http://localhost:`にアクセスすると思います。
この際に必要なのは **ポートフォワーディング** です。
これは簡単にいうとローカルとコンテナのポートの紐付けを行うイ
【AWS】冗長性のあるLAMP環境の構築(アーキテクチャ図・作業概要・参考文献)
AWS EC2を用いた冗長性のあるインフラ(LAMP環境)を構築する機会がありましたので、その時に使用したアーキテクチャ図・作業手順・参考文献を記載します。作業手順については、概要のみの記載となっております。機会があれば、作業手順の詳細を公開できたらとは思います。
# アーキテクチャ図
![20220524_AWS-LAMP-WP-Draft.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1201852/f8bb7abd-8287-9a62-1de4-a5b58524ea44.png)
# 作業概要
* 0.AWSシステム構成図を作成する
* 1.VPCで仮想ネットワークを構築
* サブネットとアベイラビリティゾーンの作成
* インターネットゲートウェイの構築
* NATゲートウェイの構築
* ルートテーブルの構築
* セキュリティグループの作成* 2.EC2(踏み台サーバ)の構築
* 3.EC2(Webサーバ)の構築
* LAMP環境
変更セットじゃなくて、スタックを消して0から作り直したらできた
# 経緯
AWSで新しくEC2を追加するのに、CloudFormationを利用することになりました
仕様は下記です
– VPC、サブネット、セキュリティグループは既存のEC2で利用しているものを使う
– 固定プライベートIPを指定する
– EBSのボリュームは2つ
– EBSはAmazon Data Lifecycle Manager を利用してスナップショットをバックアップする当初は AWS::EC2::Instance だけで作成していたのですが、これだと EBSのボリュームは2つ作れますが、Tagが付けられません
TagがないとAmazon Data Lifecycle Managerが利用できません
AWS::EC2::Volume と AWS::EC2::VolumeAttachment でTagが付けられますが、ルートデバイスボリュームにできません
困っていましたが、AWS::EC2::LaunchTemplate を使えばルートデバイスボリュームのEBSにTagがつけられることがわかったので、これを使っていました
というのを、CloudFormationのテンプ
QuickSightからAurora PostgreSQLにネットワークエラーで繋がらないと思ったら原因が違った
タイトルの事象にぶつかって少し詰まったので書いておきます。
# 事象
QuickSightからAurora PostgreSQLに繋ごうとしたところ以下のようなネットワークエラーが出ました。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116068/672fe80c-a110-8902-353e-8c5fa1691199.png)
>sourceErrorCode: DATA_SOURCE_TIMEOUT
sourceErrorMessage: Connection to the data source timed out before validation is complete.![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116068/7628e993-2f29-6cfb-eeef-7ec2a84771d4.png)
# 原因調査
VPCネットワーク内の話であ