- AWS-tiliä yhdessä organisaatiossa
- 8
- Terraform-repositoriota
- 40+
- palvelua alustalla
- ~20
Lähtötilanne
Alusta alkoi yhdestä vanhasta AWS-tilistä, jossa .NET-, Node.js- ja Next.js-palvelut, maksut ja Kafka-kuluttajat kasvoivat rinnakkain. Käyttöoikeuksia oli vaikea katselmoida, ja jokainen ympäristö oli rakennettu hieman eri tavalla.
Mitä rakensimme
- Koodina määritelty AWS Organization. Omat tilit jokaiselle ympäristölle sekä keskitetylle identiteetille, verkoille ja jaetuille palveluille. Palvelunhallintakäytännöt (SCP) rajaavat käytettävät alueet ja estävät pitkäikäiset IAM-käyttäjät.
- Pääsy IAM Identity Centerin kautta. Oikeudet myönnetään vain ryhmien kautta, ja portaat kehittäjästä ylläpitäjään ovat selkeät.
- Hub-and-spoke-verkko. Tuotannolle ja muille ympäristöille omat Transit Gatewayt sekä erilliset aliverkkotasot työkuormille ja datalle.
- Palveluiden vakiomoduuli. Yksi Terraform-moduuli luo konttipalvelun IAM-oikeuksineen, tietoturvaryhmineen, automaattisine skaalauksineen ja hälytyksineen ja estää oletuksena liikenteen internetiin. Moduulia käyttää neljätoista palvelurepositoriota.
- Avaimeton toimitus. GitHub Actions tunnistautuu AWS:ään OIDC:llä, jokainen muutos suunnitellaan pull requestissa, ja tuotantoon vienti odottaa hyväksyntää. Jokainen pull request voi saada oman väliaikaisen ympäristön.
- Modernisointi. Vanhat .NET/IIS-sovellukset siirrettiin Windows-kontteihin Amazon ECS:ään CI/CD:n kanssa.
Tulos
Uuden palvelun käyttöönotosta tuli konfiguraatiomuutos projektin sijaan, tiimi vie muutokset tuotantoon yhtä katselmoitua reittiä, ja sama koodi mahdollisti myöhemmin koko alustan nopean siirron uudelle alueelle.